Stream Computing, o cómo usar la GPU como una CPU
por : Javier Pastor: lunes 02 octubre 2006, 10:19
Muchos habréis oído hablar de ello: los procesadores gráficos son capaces de mucho más que mover los motores gráficos de los juegos más complejos. ATI lo ha demostrado, denominando el uso de las GPUs como procesadores genéricos con el término Stream Computing.
NVIDIA ya tenía Gelato desde hace bastante tiempo, una propuesta inicial que trataba de aprovechar este concepto. Ahora ATI ha demostrado que ha ido mucho más allá.
El pasado viernes ATI mostró varios ejemplos de cómo la denominada Stream Computing podría tener cabida en el mundo real.
Esta tecnología utiliza la GPU como un motor de computación en lugar de dedicarlo a los gráficos. Si dispones de un problema de cálculo que puedas enviar a la GPU, la diferencia con la potencia de la CPU será absolutamente increíble. La arquitectura de las GPUs está compuesta de un puñado de Shaders, decenas de ellos en la mayoría de los casos, y cada uno de ellos puede procesar un montón de cálculos, aunque eso sí, en muchos casos deben ser un tipo de cálculos específicos.
Esto es un pequeño problema para los desarrolladores. ¿Cómo diferencias el código de la CPU y el de la GPU? Si te equivocas, terminarás con un montón de datos yendo de atrás a delante sin que el verdadero trabajo se complete. Pero si lo haces bien, los datos se encauzan, son procesados, y se extraen del caudal del proceso con un trhoughput muy elevado. Esa es la noción que Dave Orton nos dio cuando presentó la llamada Stream Computing.
Hay varios segmentos en los que este tipo de funcionalidad es muy interesante, tales como la computación científica, la investigación climática y metereológica, prevención de riesgos y sistemas inteligentes, modelado sísmico o motores de búsqueda. Ninguna de estas tareas es lo que podría calificarse de ‘quehaceres diarios’, y muchas de ellas son muy dependientes del tiempo. No ayuda mucho que un algoritmo de identificación facial detecte al criminal cuando éste ya está en el avión, o que tu herramienta de análisis del mercado bursátil te dé los resultados de sus análisis cuando ya se ha cerrado la sesión diaria.
La Stream Computing puede ofrecer un aumento de entre 10 y 40 veces lo que ofrecería un procesador tradicional a este tipo de tareas… si es que están preparadas para tomar ventaja de tal técnica. Si el código no permite mapear bien esas funciones o no lo hace de manera eficiente, se perderá rendimiento. ATI mostró a cuatro empresas que hacen uso de dicha tecnología o lo harán en un futuro cercano.
De izquierda a derecha: Chas Boyd de Microsoft, Jeff Yates de Havok, Vijay Pande de la Universidad de Stanford, Michael Mullaney de Peakstream, y Dave Orton de ATI.
El primero en hablar del tema fue Vijay Pande de la Universidad de Stanford, uno de los responsables del proyecto Folding@Home. Al ejecutar esta aplicación distribuida en una GPU, y de forma más concreta, en una tarjeta X1900 de ATI, se consiguieron entre 20 y 40 veces los rendimientos obtenidos con el enfoque clásico. Esto significa que una GPU obtiene el mismo rendimiento que el que se consigue con un rack de servidores.
Peakstream es una empresa que desarrolla una capa middleware y herramientas para facilitar la aplicación de la Stream Computing. Michael Mullaney, su vicepresidente de márketing, mostró cómo sus herramientas podrían permitir que utilizásemos la GPU para cualquier tarea, desde la bolsa hasta los análisis para la explotación oetrolífera. El mayor avance es el que proporciona su profiler, una herramienta que puede analizar nuestro código para detectar cuellos de botella y errores que impedirán el buen funcionamiento de nuestro código con esta técnica. La empresa proporciona la API, y la puedes utilizar para cualquier aplicación.
Chas Boyd, arquitecto de la Graphics Platform Unit de Microsoft fue el siguiente en hablar acerca de cómo DX 10 y Vista utilizarían buena parte de estas tecnologías. Vista va más allá que sus predecesores utilizando una GPU para acelerar el escritorio, al menos así sucede en Aero Glass.
Jeff Yates de Havok dice tener la aplicación más valiosa para la Stream Computing, y como todos podemos deducir por la empresa para la que trabaja, esta es la computación de la física por parte de la GPU. Las demos que mostró no variarion desde las presentadas en Computex. Tornados llevándoselo todo por delante, pedruscos cayendo por laderas, y una nueva demo con castillos que se derrumban. La física es uno de los conceptos que probablemente más se beneficie a corto plazo de dichas técnicas.
Aunque por el momento no hay productos disponibles, la sensación es que esta tecnología no caerá en el olvido. Los primeros ejemplos de su potencia muestran mejoras de decenas de veces el rendimiento de la más rápida de las CPUs actuales, y todo ello a una fracción del coste de estas últimas. Si tu código sirve, Stream ofrecerá una capacidad realmente asombrosa. µ
vINQulos
Noticia original



Comentarios
“Chas Boyd, arquitecto de la Graphics Platform Unit de Microsoft fue el siguiente en hablar acerca de cómo DX 10 y Vista utilizarían buena parte de estas tecnologías. Vista va más allá que sus predecesores utilizando una GPU para acelerar el escritorio, al menos así sucede en Aero Glass.”
En este parrafo parece que es microsoft el más de lo más con su nuevo escritorio, que por supuesto está mal programado porque no usa bien la GPU. Este efecto lleva haciendose hace más de un con XGL (compiz y beryl) y seguro que ahora con los mac. Microsoft no ha hecho una puta mierda con su directX10, que está atrasado tecnologicamente y ni siquiera ha salido.
Beryl fue anunciado oficialmente el 19 de septiembre del 2006. La decision de hacer un escritorio 3D por parte de Microsoft ha sido tomada hace muchos, muchos años.
Publica un nuevo comentario