Esta semana NVidia ha liberado una nueva versión de su kit de desarrollo, CUDA 4.1 (Compute Unified Device Architecture, Arquitectura de Dispositivos de Cómputo Unificado) que, como ya sabréis, se trata de una plataforma pensada para ejecutar algoritmos sobre las propias GPU de la marca. Quizá en el ámbito doméstico no tenga un uso masivo, pero me consta que a nivel profesional es muy utilizado en ciertos sectores.
La versión 4.1 de CUDA se lanzó ayer con tres novedades reseñables, todas ellas relacionadas con el software: un mejorado visual profiler, depurador de código; un nuevo compilador de bajo nivel LLVM – Low Level Virtual Machine – más rápido y eficiente; y nuevas librerías relacionadas con el procesamiento de imágenes y señales. Desde NVidia prometen grandes mejoras en el rendimiento de las aplicaciones, principalmente debido al nuevo compilador con el que, dicen, mejorarán hasta un 10% el rendimiento de las aplicaciones con simplemente recompilar el código ya existente bajo esta nueva versión.
CUDA está presente desde hace unos años en todas las tarjetas gráficas de NVidia, de forma que cualquier usuario de esta marca podrá beneficiarse de las mejoras proporcionadas por el software específico. Su principal competencia está liderada, cómo no, por AMD y su OpenCL, un software mucho más abierto pero cuya filosofía es la misma: hacer que la GPU actúe como núcleo de proceso para tareas de propósito general.
Lo que sí es cierto es que, al menos bajo mi punto de vista, NVidia está poniendo mucho más empeño en CUDA que AMD en OpenCL, algo que termina repercutiendo en el resultado final. Soy fiel partidario del software abierto y “sin barreras”, y con ello más favorable a OpenCL… pero CUDA está sabiendo hacerse un hueco en un mercado pequeño, muy concreto y profesional, pero con grandes expectativas de crecimiento en el futuro. No olvidemos que al fondo se asoma Microsoft y su alternativa DirectCompute. Al fondo, apenas es conocido… pero es Microsoft.
Por último os dejo con algunos ejemplos en vídeo de plugins para Photoshop CS5 funcionando con y sin CUDA:
Y si habéis llegado al final habréis comprobado que el ordenador de las pruebas no es ninguna bestialidad: Core i5, 2 GB DDR3 y una NVidia GeForce GT240, una gama doméstica básica. ¿Alguien por aquí que le haya metido mano a CUDA y nos pueda contar su experiencia?
Más información | NVidia.
Ver 41 comentarios
41 comentarios
klaus_k5
Una puntualización. OpenCL no es de AMD, OpenCL al igual que OpenGL es un estandar creado por el grupo Khronos. Que AMD lo apolle es distinto de que sea suyo, como parece mencionar el texto. Con OpenCL también puedes programar una targeta Nvidia, aunque el rendimiento sea menor
abidan87
Yo vi algo de CUDA en la universidad, en una asignatura de computacion paralela, el lenguaje tiene una API muy muy parecida a C, esta curioso, los bucles por ejemplo no se ejecutan desde 1 hasta X sino que cada thread de la grafica (los famosos shaders, o procesadores graficos), hace su parte y se ejecuta todo un bucle simultaneamente, esto lo podeis comprender muy muy facilmente como este video donde los cazadores de mitos explican la diferencia de como trabaja una CPU y una GPU, muy interesante http://www.youtube.com/watch?v=0k_Tm1Oi8Ws Por cierto AVATAR se hizo en CUDA!!! para que os imagineis la potencia que tiene.
alberto.rodriguezcam
Aquí uno con algo de experiencia en CUDA. Las conclusiones son que es muy útil en determinados tipos de problemas, no es algo mágico y que acelera cualquier problema que se le ponga por delante. En aquellos problemas que funcionan bien se obtiene en términos medios sobre un 20X de ganancia en la velocidad. Hay unos cuantos puntos a tener en cuenta a la hora de utilizarlo pero sobre todo un buen conocimiento de la arquitectura es un requisito fundamental, aunque día a día nVidia lo pones mas fácil con cada nueva versión.
ray22
Realmente CUDA se está usando muy poco, y muchos no notan los beneficios, ya que el software debe sacar ventaja de ello. OpenCL, aún peor. Sólo ciertos programas de ámbito profesional aprovechan CUDA con resultados realmente beneficiosos, como puede ser el caso de la suite Adobe.
Por poner un ejemplo, renderizar un video en After Effects CS5 con la CPU como haría cualquier mortal hasta hace poco, necesita 14 minutos para poder ver el resultado del filtro. Con CUDA, 14 segundos. Esto me hizo decantarme por nVidia sobre ATi, así que tampoco hablamos de una mera chorrada, es muy importante y beneficioso...aunque sólo para unos pocos.
Salu2
DrKrFfXx
Tengo una gráfica nVidia medianamente potente, y aún estoy por encontrarle utilidad a esto del CUDA.
DrKrFfXx
Repe.
@lex
Hace tiempo utilicé CUDA para convertir vídeos. La velocidad se nota mucho! También indirectamente al usar Photoshop.
Con el tema del vídeo me parece que es con lo que mas se nota. También busqué si existia algún motor de render que lo aprovechara. Cómo renderizar es una acción que se puede dividir entre muchas CPUs y el incrementro de rendimiento sería mas que notable.
Usuario desactivado
El compilador llvm está desarrollado bajo los auspicios de apple. Pero cuda es la alternativa a opencl. Me ha sorprendido que envidia usara esta tecnología...
josipe92
tegra 2 y tegra 3 también usan cuda???
j053
Pienso que cuando estas mejoras dejen de necesitar plugins e historias para funcionar entonces de verdad marcarán la diferencia.
Me sigue sorprendiendo que con una grafica de pena como son las integradas en un portatil trabajando autocad no tenga ningun problema, pero trabajando con la dedicada de nvidia GT540m de hasta problemas...
Un saludo ;)
b829310
Yo quiero que de una vez saque ATI un sistema como CUDA, que ahora tienen el Stream (no sabia nada del openCL) y solo dejan que lo usen los programas que tienen contrato con ellos, y yo lo que quiero es poder usarlo para comprimir los bluray.
¿Donde estan los hackers y los del software libre para hacer que las ATI hagan todo esto?.
Tisi1988
Acabo de finalizar mi proyecto final de carrera sobre CUDA comparando el rendimiento del cifrador AES en CPU y en GPU. En ese caso, la implementación es bastante trivial. En cifrar 512MB mi GTX550Ti CUDA tarda poco más de 2 segundos, en cambio mi CPU tarda 4min 47seg aprox. Pero el redimiento depende del diseño del algoritmo.
jonnyfcb
Yo estuve un tiempo usando el sencillo programa editor de vídeos que hace uso de CUDA llamado Badaboom 2.0 y lo usaba con una 8800GTS 512 que tiene 128 Cuda Cores o Shaders, es lo mismo, y me iba el doble de rápido que cuando editaba vídeos con el mismo programa usando un C2D E4300 a 3Ghz. Pero luego adquirí un 2500K@ 4,7Ghz y en el mismo programa el 2500K ganaba a la 8800GTS 512MB por bastante, unos 70-80fps en el mismo vídeo. A lo mejor usando el QuickSync en otro programa con el Sandy incluso habría más diferencia.
No probé más cosas por que me deshice de la 8800 al poco tiempo. Imagino que las GTX560/570/580 actuales deberán andar muy bien con este programa por tener 3 y 4 veces más Cuda Cores que mi añorada 8800 XD y también se zamparán al Sandy B.
darkyevon
Si se hicieran las cosas como es debido... el uso de cuda debería de ser transparente para el programador. Si se crean threads o procesos pesados y los procesadores de la grafica estan libres, pues que los use, que se encargue de gestionar ello el sistema operativo. Pero como les interesa tener un sistema cerrado y que te cambies de procesador cada 2x3 pues...Hoy en dia la gráfica debería de ser para el sistema operativo unos nucelos mas, que ejecutaran las instrucciones que pudieran.