¿Qué es CUDA?

¿Qué es CUDA?
18 de enero, 2009

Las tarjetas gráficas llevan varios años siendo programables. En el origen de los chips gráficos está “T&L” o “Transform & Lightning” (Transformación e iluminación), una tecnología en la cual los chips gráficos sólo se encargaban de realizar transformaciones geométricas básicas junto con una iluminación muy sencilla de las escenas.

En todo caso se trataba de operaciones fijas, donde no había cabida para la programación. Tuvimos que esperar a Direct X 8 y DirectX 9 para que se empezara a hablar de los Shaders, o mini programas que se podían ejecutar en el propio hardware gráfico para realizar operaciones definidas por los programadores de juegos. Así, llegamos al concepto de motion blur, objetos procedurales que se construyen a partir de un programa en vez de texturas gráficas, etcétera.

Estos shaders originales estaban limitados por la longitud de dichas secuencias de instrucciones, así como por la precisión de los cálculos, de modo que nunca se llegó a un estándar realmente. Tanto NVIDIA como ATI usaban ligeras variaciones de los estándares DirectX que bastaban para que no hubiese un verdadero acuerdo.

Con la llegada de DirectX 10, las tarjetas gráficas ya integran todo lo necesario para ejecutar secuencias de código con suficiente entidad como para conseguir efectos a la medida de la imaginación de los desarrolladores. Pero no sólo desarrolladores de juegos, sino también de aplicaciones de propósito general en el ámbito científico o multimedia.

NVIDIA, a la vista del potencial mercado existente, desarrolló una especie de lenguaje C para gráficos (“Cg”), que luego evolucionaría hasta llegar a CUDA, un completo API de programación y una arquitectura que permite a los programadores crear aplicaciones que se aprovechen de la potencia de cálculo de las tarjetas gráficas sin tener que aprender un lenguaje de programación nuevo ni tener que empezar desde cero.

El aumento del rendimiento es espectacular en muchos casos, pero con un coste muy inferior al de una estación de trabajo convencional basada en potencia de cálculo de procesadores. Sin ir más lejos, NVIDIA comercializa bajo el nombre Tesla estos superordenadores con distintas configuraciones e incluso da indicaciones para fabricar uno a partir de sus componentes individuales.

De todos modos, lo que interesa en este caso es poder aplicar esta potencia de procesamiento en un entorno doméstico. Con el precio que exhiben las tarjetas gráficas de gama alta, lo cierto es que cualquier aplicación que contribuya a amortizar la inversión realizada siempre es bien recibida. No sólo para juegos, sino para acelerar tareas cotidianas como la recodificación de vídeo para adaptar películas y contenidos multimedia a los distintos formatos demandados por los reproductores multimedia portátiles. Analicemos si Badaboom es un buen ejmplo de ello.

Contenido del especial

Analizamos Badaboom, de NVIDIA

Equipo de pruebas y conclusiones

¿Qué es CUDA?

Tests de rendimiento

  • Share This