Nvidia habla sobre el soporte de OpenCL en CUDA

NVIDIA, el nuevo socio de Apple en la fabricación de Chipsets, está trabajando duro para ofrecer un soporte limpio para OpenCL, la plataforma de Apple desarrollada para Snow Leopard para crear un estándar de GPU neutral a la hora de usar procesamiento en paralelo. Apple ha entregado su API de OpenCL al Khronos Group, que lo mantiene como un estándar abierto y libre de pagos que cualquier fabricante puede implementar. El primer sistema operativo en soportarlo será Mac OS X 10.6 Snow Leopard, que saldrá el próximo año. Khronos también mantiene el API OpenGL de programación gráfica, y OpenAL para audio.

¿Por qué OpenCL?

La frecuencia de reloj de las CPUs de uso general ya no aumenta rápidamente; Intel y otros fabricantes de CPUs están usando varios núcleos para acelerar sus procesadores. En contraste, las tarjetas GPU están ganando muchísimo poder de procesamiento además de de soporte para varios núcleos.

OpenCL está diseñado para permitir a los desarrolladores enviar las tareas que requieran de mucho procesamiento al GPU, que generalmente se encuentra inactivo- Adicionalmente, OpenCL trabaja con la tecnología Grand Central de Snow Leopard para soportar arquitecturas de múltiples núcleos y trabajar en parelelo tanto como sea posible.

Ventaja inicial para NVIDIA en OpenCL, a través de CUDA

NVIDIA tiene una ventaja al momento de soportar OpenCL por el trabajo que la compañía ha hecho para completar su interfaz de drivers CUDA, para implementar programación en paralelo y “GPGPU” (computación general en unidades de procesamiento de gráficos)

Manju Hegde, Administrador General de CUDA en NVIDIA, explicó que soportar OpenCL en una GPU requiere de ciertas capacidades de hardware como escritura scatter, al igual que cierta generalidad en el control de flujo. Ambas ya han sido implementadas en la arquitectura CUDA de NVIDIA.

CUDA ha sido diseñado para ofrecer al programador de múltiples puntos de entrada a la potencia de la GPU usando lenguajes estándar (C, Fortran, etc) así como a APIS como OpenCL. En vez de ser tecnologías que compiten entre ellas, OpenCL en realidad descansa sobre CUDA como una capa más de programación sobre el interfaz del driver.

¿OpenCL vs CUDA?

Cuando se le preguntó como se compara CUDA con OpenCL, y si NVIDIA planea soportar ambos en sus productos, Hedge explicó, “Sería mejor preguntar como se compara la C de CUDA a OpenCL- es una comparación de lenguaje contra lenguaje.”

Hegde agregó, “La respuesta es que ambos comparten la manera en que definen paralelismo de datos, que es generalmente la labor principal, así que el código será muy similar y los esfuerzos para llevarlo a OpenCL serán menores.”

Ya que OpenCL es otro método de acceder al GPU, lo soportaremos completamente. Se acomoda perfectamente sobre nuestra arquitectura CUDA y como tal, los desarrolladores que usen hardware de NVdia podrán elegir el lenguaje que prefieran“.

Respecto al soporte del producto, planeamos soportar OpenCL dentro de la arquitectura de CUDA, lo que significa que cualquier GPU de NVIDIA construido con la arquitectura CUDA soportará OpenCL. Esto significa que todo GPU a partir de la serie GeForce 8 soportará OpenCL. Esto lo da a los desarrolladores de OpenCL una base instalada de más de 10 millones de GPUs.

¿Será OpenCL compatible?

Le preguntamos a NVIDIA si cree que OpenCL es suficientemente completo para dar a los usuarios una experiencia completa cuando operen software OpenCL a través de las diferentes arquitecturas de GPU, o si anticipa que haya problemas e incompatibilidades entre las implementaciones de los diferentes vendedores.

Hegde respondió, “OpenCL es un estándar de varios vendedores y por lo tanto esperamos que si un vendedor tiene una implementación que cumpla con OpenCL, cualquier software escrito para OpenCL funcione correctamente“.


”NVIDIA ha seguido una estrategia muy consistente y segura con CUDA. El lenguaje de programación C de CUDA se enseña en más de 50 escuelas alrededor del mundo. Tenemos más de 25.000 desarrolladores trabajando actualmente en CUDA. Si echas un vistazo a www.nvidia.com/cuda, verás cientos de códigos y aplicaciones que usan nuestra arquitectura CUDA hoy en día. Además CUDA fue diseñado para soportar de manera nativa todas las interfaces de computación paralela y correrá OpenCL sin ningún problema.

El futuro de OpenCL

También preguntamos a NVIDIA si tenía ejemplos inmediatos de aplicaciones que tomen ventaja de Open CL en estos momentos, y qué potencial ve en el futuro para el estándar.

Hegde respondió, “Mientras que la especificación OpenCL fue anunciada hace un par de dias, hay pruebas de conformidad que necesitan ser desarrolladas y las implementaciones finales serán publicadas en el segundo trimestre de 2009. Por lo tanto, falta un tiempo antes de que tengamos aplicaciones que tomen ventaja de openCL hoy. Desde luego, C de CUDA ya está disponible para Mac OSX hoy, por lo que los desarrolladores que deseen empezar a desarrollar para el GPU pueden empezar ahora, y como dijimos, C de CUDA y OpenCL comparten formas muy similares de definir el paralelismo ded datos, por lo que llevar código a OpenCL será sencillo.

En términos de potencial, el beneficio es enorme“. El enorme poder de procesamiento en paralelo de las GPUs ha estado entregando de 20 a 200 veces más velocidad para algunos códigos, desde exploración petrolera hasta imágenes médicas y transcodificación de vídeo.

OpenCL para varias plataformas y otros estándares GPGPU

Cuando se le preguntó so se requiere soporte directo del sistemático operativo para operar OpenCL en otras plataformas, y si NVIDIA cree que se esté acelerando el respaldo tras OpenCL como el estándar GPGPU, Hegde notó que “si, el primer SO en soportar OpenCL será Snow Leopard.”

Hegde también dijo, “En el mundo de la computación paralela, hay un gran rango de estándares surgiendo, C de CUDA de NVIDIA, OpenCL de Khronos, DX11 Compute de Microsoft y más, a los desarrolladores les gusta tener opciones, y eligen el estándar que se acople a sus necesidades. Los desarrolladores usarán el estándar que más les acomode; el que soporte las librerías y sistemas operativos a los que estén acostumbrados.”

NVIDIA continuará invirtiendo en su arquitectura CUDA y en su ambiente de programación C de CUDA, y también se esforzará en ofrecer un robusto soporte para los nuevos estándares que surjan.”

Resumiendo, pensamos que OpenCL es genial y respaldamos cualquier iniciativa que libere el masivo potencial de los GPUs. Hemos trabajado muy cerca con Apple en la especificación OpenCL, desarrollado en GPUs NVIDIA y fuimos los primeros en demostrar código OpenCL operativo por lo que confiamos en que nuestra implementación será la mejor. La adición de OpenCL a nuestra caja de herramientas para GPUs significa que habrá una enorme cantidad de opciones para los desarrolladores.”

Fuente: AppleInsider

Artículos relacionados

OpenCL para el resto de nosotros

Apple solicita la marca “Grand Central”

La especificación OpenCL 1.0 de Apple ya está disponible

La especificación OpenCL terminada en tiempo record para Snow Leopard

0 0 votos
Article Rating
Subscribe
Notify of
2 Comments
Oldest
Newest Most Voted
Opiniones Inline
Ver todos los comentarios
Rob-y_Wan
Rob-y_Wan
15 years ago

Hola a todos:
Acabo de leer el artículo y me ha parecido detectar una pequeña errata en el final del párrafo de la introducción: creo que el estándar de sonido es OpenAL, no OpenCL, como decís. De todas formas no estoy completamente seguro, ya que OpenAL no es el que mantiene Khronos (que, en cuestión de sonido, solo tiene una librería para dispositivos móviles: OpenSL ES).
Un saludo.

Administrador
15 years ago

Si señor, bailo una tecla. Corregido, gracias.

2
0
Me encantaría saber tu opinión, por favor, deja un comentariox
()
x