Guerra GPGPU: CUDA vs OpenCL

Guerra GPGPU: CUDA vs OpenCL
24 de mayo, 2010

Dos de las tres tecnologías protagonistas en el terreno de la computación GPGPU -falta ATI Stream- han sido enfrentadas por la Universidad de Cornell para comprobar su rendimiento en la actualidad. Mientras que CUDA es la solución de NVIDIA para la aplicación de las GPUs de tarjetas gráficas a problemas de propósito general, OpenCL es un estándar universal que tiene como objetivo convertirse en el único modelo a seguir tanto por NVIDIA como por ATI, algo que a priori parece complicado.

 

Tanto ATI como NVIDIA han apoyado la aparición de OpenCL, pero a pesar de ello las dos empresas siguen empeñadas en apoyar sus propias propuestas de tecnologías GPGPU, y de hecho los mayores esfuerzos de NVIDIA y ATI no están en el desarrollo de OpenCL, sino de CUDA y de ATI Stream respectivamente.

 

Lo demuestra este estudio (disponible en PDF) de la Universidad de Cornell que ha comparado el rendimiento de CUDA 2.3 y de la implementación propia que NVIDIA ha hecho del estándar OpenCL, también en la versión 2.3.

 

En las pruebas han utilizado una NVIDIA GeForce GTX 260 y para el análisis han realizado una serie de procesos que permitían medir el número de operaciones realizadas por la GPU por unidad de tiempo, y también los tiempos que tardaron ambas tecnologías en completar las tareas.

 

 

El resultado, tal y como podría esperarse, favorece a la tecnología CUDA, que está totalmente ligado a las GPUs de NVIDIA y saca todo el partido a este tipo de microchips.

 

No obstante, los responsables del estudio indican que el desarrollo es básicamente el mismo cuando se trata de programar aplicaciones para CUDA o para OpenCL, ya que ambas interfaces de programación disponen de funcionalidades similares y trasladar el código del kernel entre una y otra necesita pocas modificaciones cuando se utilizan las herramientas para desarrolladores proporcionadas por NVIDIA.

 

  • Share This