CUDA 13.2 presenta una actualización significativa: NVIDIA CUDA Tile ahora es compatible con dispositivos de arquitecturas de capacidad de cómputo 8.X (NVIDIA Ampere y NVIDIA Ada) y 10.X y 12.X (NVIDIA Blackwell). En una próxima versión del Toolkit CUDA, todas las arquitecturas de GPU comenzando desde Ampere serán completamente compatibles. Si utilizas arquitecturas de GPU Ampere, Ada o Blackwell, consulta la guía cuTile Python Quickstart para comenzar con CUDA Tile.
Este artículo explora el lanzamiento de CUDA 13.2, que mejora la productividad de los desarrolladores con una variedad de nuevas adiciones en Python, incluyendo perfiles en CUDA Python y depuración de núcleos Numba. Las bibliotecas matemáticas ofrecen un soporte ampliado para bibliotecas emuladas de alto rendimiento, y las Bibliotecas de Cálculo de Núcleo CUDA (CCCL) continúan añadiendo mejoras en rendimiento y características, proporcionando a los desarrolladores en C++ una interfaz moderna y de alto rendimiento para la programación en GPU.
cuTile Python
cuTile Python, la expresión DSL Python del modelo de programación CUDA Tile, lanza varias mejoras de características. Estas incluyen un mejor soporte del lenguaje para:
- Funciones recursivas
- Cierres con captura (funciones anidadas, funciones lambda)
- Funciones personalizadas de reducción y escaneo
- Permitir asignaciones con anotaciones de tipo
- Mejor soporte de arreglos para
Array.slicepara crear una vista en un subarreglo
Además, hemos proporcionado un camino de instalación sencillo. El siguiente comando de pip instalará cuTile Python y traerá todas las dependencias necesarias sin requerir una instalación del Toolkit CUDA a nivel del sistema.
pip install cuda-tile[tileiras]
Mejoras principales
Las mejoras principales en CUDA 13.2 se detallan en esta sección.
memcpy con atributos
Una versión anterior de CUDA (12.8) introdujo APIs de memcpy por lotes. Estas permiten especificar lotes de transferencias de memoria a ser llamadas con una sola llamada a función. También puedes especificar atributos para controlar y optimizar mejor las transferencias de memoria.
Estas APIs permiten un mayor control sobre tus transferencias de memoria. Sin embargo, si solo tienes una transferencia única y también deseas usar las características de atributo, necesitas llamar a una API por lotes y luego usar un tamaño de lote de 1. Esto puede ser un poco engorroso.
Para simplificar este caso de uso, se han añadido dos nuevas funciones de API, cudaMemcpyWithAttributesAsync y cudaMemcpy3DWithAttributesAsync. Estas funciones te permiten aprovechar el uso de atributos en tus llamadas de memoria, sin requerir el uso de la interfaz por lotes más compleja. cudaMemcpyAsync también se puede seguir utilizando si deseas atributos, ya que está sobrecargado con la misma lista de argumentos que cudaMemcpyWithAttributesAsync.
La memoria local (LMEM) en GPUs se asigna por hilo y se utiliza para el desbordamiento de registros, variables de pila, entre otros. Desde CUDA 13.2 y el controlador CUDA R595, ejecutándose en Windows en modo de controlador WDDM, el uso de LMEM se ha reducido significativamente. Los efectos de este cambio se verán principalmente en entornos vGPU con restricciones de memoria.


