CUDA es una plataforma y lenguaje de programación de NVIDIA que permite a los desarrolladores de software aprovechar la capacidad de procesamiento paralelo de las tarjetas gráficas NVIDIA para acelerar aplicaciones de cómputo.
La versión 12.0 del CUDA Toolkit es una actualización importante que incluye nuevos modelos de programación y capacidades de aceleración para aplicaciones CUDA. Con CUDA 12.0, los desarrolladores pueden apuntar a funciones e instrucciones específicas de la arquitectura en las arquitecturas NVIDIA Hopper y NVIDIA Ada Lovelace con código personalizado CUDA, bibliotecas mejoradas y herramientas para desarrolladores.
CUDA 12.0 es compatible con la arquitectura NVIDIA Hopper y NVIDIA Ada Lovelace, lo que significa que las aplicaciones CUDA pueden aprovechar el mayor número de multiprocesadores (SM) de transmisión, el mayor ancho de banda de memoria y las mayores velocidades de reloj de estas nuevas familias de GPU.
La versión 12.0 también expone la funcionalidad programable para muchas características de estas arquitecturas, incluyendo operaciones de tensor, barreras de transacciones asincrónicas, caché L2 programático y colectivos SIMT. Además, CUDA 12.0 proporciona soporte para instrucciones de genómica y DPX en las GPU NVIDIA Hopper para proporcionar operaciones aritméticas matemáticas combinadas más rápidas.
Compatibilidad entre versiones
La compatibilidad con versiones secundarias de CUDA es una característica que permite a las aplicaciones vincularse dinámicamente con cualquier versión secundaria del CUDA Toolkit dentro de la misma versión principal.
Esto significa que si una aplicación está compilada con la versión 11.6 del CUDA Toolkit, puede vincularse con el tiempo de ejecución 11.8 y viceversa, siempre que ambas versiones estén dentro de la misma versión principal del CUDA Toolkit. Esto es útil porque permite a las aplicaciones aprovechar las mejoras y correcciones de errores de cualquier versión secundaria sin tener que volver a compilar la aplicación.
Sin embargo, cuando se lanza una nueva versión principal del CUDA Toolkit, como la versión 12.0, las garantías de compatibilidad se restablecen. Esto significa que las aplicaciones que usan la compatibilidad con versiones secundarias en la versión 11.x pueden tener problemas al vincularse con la versión 12.0.
Para evitar esto, los desarrolladores deberán volver a compilar sus aplicaciones contra la versión 12.0 o vincular estáticamente las bibliotecas necesarias dentro de la versión 11.x. De manera similar, las aplicaciones compiladas o integradas en la versión 12.0 se vincularán con versiones futuras de 12.x, pero no se vincularán con componentes de la versión 11.x del CUDA Toolkit.
Referencias
- [con]Neurona #26 - 18 de diciembre de 2023
- [con]Neurona #25 - 10 de diciembre de 2023
- [con]Neurona #24 - 2 de diciembre de 2023