¿Qué Es CUDA?

por Fred Oh

CUDA es una plataforma de computación paralela y un modelo de programación creado por NVIDIA. Con más de 20 millones de descargas hasta la fecha, CUDA ayuda a los desarrolladores a acelerar sus aplicaciones aprovechando el poder de los aceleradores de GPU.

Además de acelerar la computación de alto rendimiento (HPC) y las aplicaciones de investigación, CUDA también se ha adoptado ampliamente en los ecosistemas industriales y de consumo.

Por ejemplo, las compañías farmacéuticas utilizan CUDA para descubrir nuevos tratamientos prometedores. Los coches utilizan CUDA para aumentar la conducción autónoma. Tanto las tiendas físicas como las tiendas en línea utilizan CUDA para analizar las compras de los clientes y los datos de los compradores para hacer recomendaciones y colocar anuncios.

Entonces, ¿Qué Es CUDA?

Algunas personas confunden CUDA, lanzado en 2006, con un lenguaje de programación, o tal vez una API. Con más de 150 bibliotecas basadas en CUDA, SDK y herramientas de creación de perfiles y optimización, representa mucho más que eso.

Estamos innovando constantemente. Miles de aplicaciones aceleradas por GPU se basan en la plataforma de computación paralela NVIDIA CUDA. La flexibilidad y la capacidad de programación de CUDA la han convertido en la plataforma elegida para investigar e implementar nuevos algoritmos de deep learning y computación paralela.

CUDA también facilita a los desarrolladores el aprovechamiento de las últimas innovaciones en arquitectura de GPU, como las que se encuentran en nuestra arquitectura de GPU NVIDIA Ampere.

De izquierda a derecha, de arriba a abajo: la GPU NVIDIA Ampere, MIG, Tensor Cores, RT Cores, dispersión estructural y NVLink.

¿Cómo Se Usa CUDA?

Con CUDA, los desarrolladores escriben programas utilizando una lista cada vez mayor de lenguajes compatibles que incluye C, C++, Fortran, Python y MATLAB, e incorporan extensiones a estos lenguajes en forma de unas pocas palabras clave básicas.

Estas palabras clave permiten al desarrollador expresar cantidades masivas de paralelismo y dirigir al compilador (o intérprete) a esas partes de la aplicación en aceleradores de GPU.

El ejemplo simple a continuación muestra cómo se puede acelerar un programa C estándar usando CUDA.

Sample code - standard C code on the left, C with CUDA extensions on the right.

Primeros Pasos con CUDA

Aprender a programar usando el modelo de programación paralela CUDA es fácil. Hay videos y ejercicios de autoaprendizaje en el sitio web de NVIDIA Developer.

El Kit de Herramientas CUDA incluye bibliotecas aceleradas por GPU, un compilador, herramientas de desarrollo y el tiempo de ejecución de CUDA. Además de los kits de herramientas para C, C++ y Fortran, hay toneladas de bibliotecas optimizadas para GPU y otros enfoques de programación, como los compiladores basados en directivas OpenACC.

Para aumentar el rendimiento en múltiples dominios de aplicaciones, desde IA hasta HPC, los desarrolladores pueden aprovechar NVIDIA CUDA-X, una colección de bibliotecas, herramientas y tecnologías basadas en CUDA.

Échale un vistazo y comparte cómo estás usando CUDA para avanzar en tu trabajo.