por
pobrecito hablador
el Viernes, 31 Marzo de 2006, 08:57h
(#720963)
haber, tu metes una operacion que suma dos numeros en coma flotante en una CPU, y en una gpu metes una operacion que suma dos TABLAS de datos.
pasan tres ticks del reloj de la GPU, y te termina el calculo. acaba de sumar 2000 numeros.
tiempo despues acaba de trabajar la CPU, ha necesitado 11 ticks de su reloj.
¿Quien es mas rapido? la CPU.
¿Quien ha echo mas trabajo? la GPU brutalmente mas trabajo.
la cuestion es, ¿puede hacer un programa sencillo en C y que me haga los calculos con la GPU con ese nivel de paralelismo? (en la mayor parte de los casos la respuesta es no, pero es posible y seguramente hay librerias que intentan facilitar esto. Hay otras consideraciones aparte de la fuerta bruta.) No. Entonces usas de todos modos CPUs.
por
pobrecito hablador
el Viernes, 31 Marzo de 2006, 09:04h
(#720967)
¿En cuantos compiladores tienes la opcion de elegir la CPU "Geforce" o similar? Pues eso. Con lo que, si, son todos unos primos, pero como ninguna tarjeta grafica tiene especificaciones abiertas (en cuanto a sus instruccioes en codigo maquina) puse a usar CPU's "tradicionales", aunque algunos como el Earth Simulator (un supercomputador usado para algo util para variar) usan CPU mas parecidas a GPU's (vectoriales).
-txt powered (que pasa)
por
pobrecito hablador
el Viernes, 31 Marzo de 2006, 09:35h
(#720975)
Aqui lo tienes [osu.edu]
Es de un profesor mío de la universidad que investiga justamente sobre como aprovechar toda esa potencia de las GPUs sobre una aplicación de computación intensiva propósito general. En la grafica comparativa (Figura 3) se ve como una triste Geforce 5900 se come con patatas a un pentium 4, no quiero ni pensar lo q puede hacer una X1900 con esa misma aplicación.
El problema está en como traducir un problema típico de programación con su estructura de datos y demás en vertices, operaciones con shaders, etc.. Como ejemplo un código de 5 lineas de C llegó a tardar 1 mes en traducirlo a algo q se tragara la GPU. Y es q ahí se echan en falta algunas herramientas, alguna ayuda a nivel de API y de drivers para este propósito.
Un saludo
por
pobrecito hablador
el Viernes, 31 Marzo de 2006, 11:50h
(#721082)
Te equivocas. Ambas son EP (elementos de proceso), que es un concepto más amplio y genérico. El uso, en supercomputadores, de procesadores de propósito general pueden darse por muchos motivos: coste, ganancia minima con respecto al grueso etc... Ten en cuenta que aunque tu tengas una ganancia en proceso de punto flotante sea mejor en un EP vectorial o matricial que en un EP general puede perderse por la latencia intruducida por la red de interconexion (un dolor de cabeza), velocidad de acceso a memoria, etc... Depende mucho de la tecnología.
por
pobrecito hablador
el Sábado, 01 Abril de 2006, 00:43h
(#721428)
Una GPU y una CPU se parecen como la noche y el día. En términos de rendimiento, una CPU obtiene menos de 10GFLOPS, una GPU supera los 300GFLOPS. Lo que pasa que el modelo de programación de la GPU no se programa como una CPU, el stream processing que sigue la GPU es un poco peculiar y tiene algunas limitaciones (y extensiones) respecto al modelo generalista que siguen las CPUs. Lo que es seguro es que si necesitas realizar un conjunto de operaciones intensivas en cálculo en coma flotante sobre muchísimos datos diferentes, una GPU puede resultarte, fácilmente, entre 30 y 40 veces más rápida que la mejor CPU que puedas encontrar (con algoritmos muy bien afinados y que utilicen sus extensiones vectoriales y todo), como mínimo unas 15-20 veces más rápida sin demasiado esfuerzo. En términos arquitectónicos, a la "CPU" que más se parece una GPU es el Cell de IBM, aunque el Cell es algo más generalista, tiene menos elementos de proceso y también es algo más lento (en pico) que una GPU.
Re:Próximamente en las mejores pantallas
(Puntos:1, Informativo)pasan tres ticks del reloj de la GPU, y te termina el calculo. acaba de sumar 2000 numeros.
tiempo despues acaba de trabajar la CPU, ha necesitado 11 ticks de su reloj.
¿Quien es mas rapido? la CPU.
¿Quien ha echo mas trabajo? la GPU brutalmente mas trabajo.
la cuestion es, ¿puede hacer un programa sencillo en C y que me haga los calculos con la GPU con ese nivel de paralelismo? (en la mayor parte de los casos la respuesta es no, pero es posible y seguramente hay librerias que intentan facilitar esto. Hay otras consideraciones aparte de la fuerta bruta.) No. Entonces usas de todos modos CPUs.
Re:Próximamente en las mejores pantallas
(Puntos:0)-txt powered (que pasa)
Re:Próximamente en las mejores pantallas
(Puntos:1, Interesante)El problema está en como traducir un problema típico de programación con su estructura de datos y demás en vertices, operaciones con shaders, etc.. Como ejemplo un código de 5 lineas de C llegó a tardar 1 mes en traducirlo a algo q se tragara la GPU. Y es q ahí se echan en falta algunas herramientas, alguna ayuda a nivel de API y de drivers para este propósito. Un saludo
Re:Próximamente en las mejores pantallas
(Puntos:0)Re:Próximamente en las mejores pantallas
(Puntos:0)