elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Informática
| |-+  Hardware
| | |-+  DUDA Estado del Arte actual de la Computacion en GPU's
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: DUDA Estado del Arte actual de la Computacion en GPU's  (Leído 2,114 veces)
FreeCellnet

Desconectado Desconectado

Mensajes: 123


NON PLUS ULTRA


Ver Perfil
DUDA Estado del Arte actual de la Computacion en GPU's
« en: 8 Mayo 2019, 01:00 am »

Hola, llevo tiempo utilizando plataformas, desde el 2008 con el SETI, el cual enviaban cachitos de Arrecibo, (Una antena gigante que recoge señales del espacio), y que mandaban a nuestro ordenadores para procesarlas y enviar el sonido procesado de nuevo, luego mas tarde, se aprocecho la potencia de las targetas graficas en realizar los calculos, ya que las targetas son mas capaces por terner mas nucleos de proceso y coprocesadores integrados que cualquier CPU del mercado.

Del Estandar C99 se liberó Open CL para las targetas ATI, y CUDA para Nvidia (no tan libre o flexible).

Hay muchas plataformas por internet como BOINC, Folding@home con una caterba de proyectos para la medicina y la ciencia en general, etc etc.

Actualmente no me explico como puede haber tal desajuste competencial entre ATI y Nvidia, me explico...

Normalmente, una tarjeta grafica no ha sido diseñada y por tanto pensada para hacer complejos calculos aritmeticologicos de grandes decimales, y portando de doble precision, o como dicen procesos de doble coma flotante, o como dice ATI FP64, y se les otorge mas potencia en simple precision para calculo vectorial, propio de renderizado.

Aqui viene el desajuste...

Es normal que la tarjeta mas potente de Nvidia, por ejemplo la RTX2080Ti tenga mas de 20Teraflops de simple precision , pero no alcance ni 0.5Teraflops en doble precision ni por asomo, y cueste mas de 1000€ en el mercado...? Y en cambio la ATI Raedon VII tenga 3.5Teraflops de doble precision, siendo de precision simple de igual potencia que la RTX2080TI y costando solo 700€???

Dicen que las potencias se compensan porque el lenguaje CUDA es mas eficiente, pero tambien dicen que a la larga si hay que hacer modificaciones Open CL es mas abierto.


Que pensais vosotros? Partiendo de la base, de que los drivers y el lenguaje de programacion implementados para una tarea a realizar cumplan las espectativas entre las dos targetas, es decir, no haya codigo redundante, y sea de eficiente lectura para ambas.

Actualmente utilizo Folding@home con la RTX 570 de la arquitectura Polaris, luego esta la FijiXT, la Vega 10 y finalmente la Vega 20 que salio recientemente



Me apasiona la arquitecura de las targetas graficas, la que mejor considero es la arquitectura de  la Vega 20 (puesta en la Raedon VII, y pienso que a la larga para el 2020 haran la dual, como hicieron con la RX295) Dos nucleos.

https://linustechtips.com/main/applications/core/interface/imageproxy/imageproxy.php?img=http://www.legitreviews.com/wp-content/uploads/2015/06/fiji-block-diagram.jpg&key=3e14c817b5360a91aff478fdcc1da2066d32710181ef67e1e5aba69370796b83


https://wccftech.com/amd-radeon-instinct-mi60-first-7nm-vega-20-gpu-official/

Me descarge el libro de programacion en Open CL 2.0 y luego empeze a mirar los bloques de procesamiento de las ATI, por ver si pillaba algo. Es alucinante que aprovechen una GPU aparte de para los juegos.


« Última modificación: 8 Mayo 2019, 01:22 am por FreeCellnet » En línea

Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.391


Ver Perfil
Re: DUDA Estado del Arte actual de la Computacion en GPU's
« Respuesta #1 en: 8 Mayo 2019, 01:31 am »

Cuando se tiene que emular un tipo de datos que no está nativo, el costo es bastante más que simplemente multiplica rpor 2 ó 3 , basado en la idea de que 'doble precisión ='doble de bytes'...

No es difícil programar una multiplicación de un tipo de dartos byte, por otro para simular una multiplicación de un entero de 2 bytes por otro de 2 bytes... y verás que el costo es bastante mayor. Naturalmente también depende de la eficiencia del código y de la cantidad de registros que queden libres y que se puedan utilizar como memoria intermedia sin necesidad de recurrir a cada instante a memoria.

Tampoco es suficiente con hecharle la culpa al tipo de datos nativo en la GPU, a veces si se reqieren ahcer determinadas operaciones el simple hecho de que un procesador no disponga de tal instrucción nuevamente exige implementarla recurriendo a un cúmulo de otras...

En particular, lo más probable que esté sucediendo, no es tanto lo que señalas si no diferencia de instrucciones de paralaje, es decir que no son concurrentes entre sí... y deban hacerse en serie, que ahí es donde se notaría mucho la eficiencia. Tampoc cabría hecarle alegremente la culpa a la GPU, si no tal vez a la programación específica para cada GPU, si en una está desarrollada a alto nivel y la otra programada a bajo nivel, pués aprovechará mejor la potencia que ofrecen las instrucciones específicas de dicha GPU, al programar a alto nivel se acaba por ignorar instrucciones más eficientes para ahcer lo mismo de forma aún más óptima.

En definitiva, sin una serie de tests exhasutivos, no es posible achacarlo a una cosa concreta, por mucho que a uno le parezca... lo que no quita que si se puedan señalar posibilidades.


En línea

FreeCellnet

Desconectado Desconectado

Mensajes: 123


NON PLUS ULTRA


Ver Perfil
Re: DUDA Estado del Arte actual de la Computacion en GPU's
« Respuesta #2 en: 8 Mayo 2019, 01:50 am »

Una parte del problema que comentas del lenguaje a alto nivel tanto CUDA como Open CL utilizan alto nivel en programacion, y por supuesto se intenta paralelizar lo maximo posible, estos lenguajes estan desarrollados para paralelizar las tareas.

Pero tampoco se puede programar en Ensamblador, llevaria años, pero me encantaria hacerlo, para conocer mas a fondo la architectura de estas targetas, por ejemplo, con el xdbg, debugear un programa, me volví loco, pero imagino que seria de la CPU.

Tengo el Code XL Debugger para las ATI, pero todavia no he podido debugear un proceso de Folding at home, por saber que hace exactamente mi tarjeta.



« Última modificación: 8 Mayo 2019, 01:57 am por FreeCellnet » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines