CUDA 13.3 acerca la programación GPU a C++ y Python con nuevas herramientas de rendimiento

NVIDIA ha lanzado CUDA 13.3, una actualización relevante para desarrolladores que trabajan con computación acelerada por GPU, inteligencia artificial, simulación científica, análisis de datos y cargas de alto rendimiento. La nueva versión no se limita a añadir mejoras de librerías: introduce cambios que buscan simplificar la forma en la que se escriben kernels, estabilizar el uso de CUDA desde Python y ajustar el compilador a cargas concretas mediante autotuning.

El movimiento llega en un momento en el que la programación GPU ya no es un terreno reservado a especialistas en HPC. La expansión de la IA generativa, los modelos de lenguaje, la inferencia en producción, el análisis científico y el procesamiento masivo de datos han aumentado la presión sobre herramientas que permitan sacar más partido al hardware sin obligar siempre al desarrollador a gestionar cada detalle de bajo nivel.

CUDA Tile llega a C++ y reduce parte de la complejidad

La novedad más llamativa de CUDA 13.3 es la llegada de CUDA Tile a C++. Este modelo de programación permite desarrollar kernels basados en tiles, una forma de organizar el trabajo en bloques de datos que resulta natural en muchas cargas modernas, desde operaciones de matrices hasta atención en modelos de inteligencia artificial.

Hasta ahora, una parte importante de la programación CUDA exigía gestionar de forma manual detalles como la distribución de hilos, el movimiento de memoria, la sincronización y el uso eficiente de memoria compartida. CUDA Tile intenta elevar ese nivel de abstracción. El objetivo es que el desarrollador pueda expresar mejor la operación que quiere realizar y que el entorno se encargue de optimizar detalles de ejecución para distintas arquitecturas de GPU de NVIDIA.

La llegada a C++ es importante porque abre este enfoque a una base de código muy amplia. Muchas aplicaciones científicas, industriales y de inteligencia artificial mantienen kernels críticos escritos en C++ o CUDA C++, por lo que una vía más directa para adoptar un modelo tile-based puede facilitar la modernización de código existente. NVIDIA señala que CUDA Tile en C++ está soportado en NVCC y NVRTC, y que CUDA 13.3 amplía el soporte a GPUs con Compute Capability 9.0, es decir, NVIDIA Hopper, además del resto de arquitecturas admitidas.

Este cambio no elimina la necesidad de entender el hardware. Programar bien para GPU sigue requiriendo conocer memoria, ocupación, latencia y patrones de acceso. Pero sí puede reducir el coste de entrada para escribir kernels portables y mantenerlos a lo largo del tiempo, algo relevante en equipos que deben soportar varias generaciones de GPU en centros de datos, laboratorios o plataformas cloud.

CUDA Python 1.0: una API más estable para producción

La otra gran pieza de CUDA 13.3 es CUDA Python 1.0. NVIDIA lo presenta como un paso hacia una superficie de API más estable, con versionado semántico y un compromiso más claro sobre cambios incompatibles. Para los equipos que usan Python como lenguaje principal en ciencia de datos, machine learning o automatización de flujos GPU, esta estabilidad puede ser más importante que una nueva función aislada.

CUDA Python 1.0 agrupa componentes como cuda.binding, cuda.core, cccl-cuda y cuda-pathfinder. cuda.core ofrece una interfaz más natural para gestionar dispositivos, streams, programas, linkers, memoria y grafos de CUDA desde Python. Esto acerca a Python funciones que antes solían gestionarse desde C/C++ o mediante capas más específicas de frameworks de IA.

Entre las novedades aparecen los green contexts, que permiten dividir los multiprocesadores de streaming de una GPU en particiones separadas con sus propios contextos y streams. La idea es proteger kernels sensibles a la latencia frente a trabajos largos de alto rendimiento que conviven en el mismo proceso. En entornos de inferencia, análisis interactivo o sistemas multiusuario, este tipo de separación puede ayudar a predecir mejor el comportamiento de ciertas cargas.

CUDA Python 1.0 también incorpora process checkpointing en Linux. Esta función permite capturar el estado completo de CUDA en un proceso en ejecución, incluidas asignaciones de memoria en dispositivo, streams y contexto, para restaurarlo más tarde. Es una capacidad interesante para trabajos largos, migración, recuperación ante fallos o arranques más rápidos de workers de inferencia. Además, NVIDIA destaca el soporte de intercambio de memoria entre procesos sin copiar por CPU, útil en pipelines de machine learning y servicios multiproceso.

La parte Python se completa con cuda.compute, que acerca algoritmos paralelos de CCCL a Python: reducciones, scans, ordenación, transformaciones, histogramas, top-k y búsqueda, entre otros. Para muchos equipos, esto puede evitar tener que reescribir operaciones comunes desde cero cuando necesitan bloques de alto rendimiento fuera del flujo habitual de un framework.

Novedad en CUDA 13.3Qué aporta
CUDA Tile en C++Kernels tile-based con mayor nivel de abstracción
CUDA Python 1.0API estable con versionado semántico
Green contextsSeparación de recursos dentro de una GPU
Process checkpointingCaptura y restauración del estado CUDA en Linux
CompileIQAutotuning del compilador para kernels concretos
C++23 en NVCC/NVRTCCompatibilidad con estándares modernos de C++
CCCL 3.3Interoperabilidad tensorial y nuevos algoritmos
Numba CUDA MLIRBackend experimental con menor latencia de compilación

CompileIQ y C++23: más rendimiento sin tocar tanto el código

CUDA 13.3 introduce también CompileIQ, un framework de autotuning del compilador que busca configuraciones específicas para cada kernel mediante algoritmos evolutivos y genéticos. NVIDIA afirma que puede lograr hasta un 15 % de mejora en kernels críticos como GEMM y atención, dos cargas que pesan mucho en la inferencia de modelos de lenguaje.

La promesa debe leerse con prudencia, porque las ganancias dependerán del kernel, del hardware y del punto de partida. Aun así, el enfoque es relevante. Muchos kernels optimizados ya están cerca del límite práctico, y encontrar mejoras adicionales exige explorar combinaciones de flags, heurísticas y decisiones de compilación que no siempre son evidentes. Automatizar parte de esa búsqueda puede ahorrar tiempo a equipos que trabajan en librerías, motores de inferencia o pipelines de alto rendimiento.

El soporte oficial de C++23 en NVCC y NVRTC es otro avance importante para bases de código modernas. No es una función llamativa de cara al usuario final, pero facilita mantener consistencia entre proyectos C++ actuales y código acelerado por GPU. También ayuda a reducir diferencias entre compilación estática y runtime compilation, algo útil en aplicaciones que generan o ajustan kernels en tiempo de ejecución.

En librerías, CUDA 13.3 trae cambios en cuBLAS, cuSPARSE y cuSOLVER. Hay mejoras en multiplicaciones FP4 para Blackwell Ultra, TF32 en Blackwell y Blackwell Ultra, soporte de green contexts en cuBLAS, nuevas capacidades en operaciones sparse y mejoras de rendimiento en descomposiciones y cálculo de autovalores. CCCL 3.3 añade interoperabilidad con DLPack y mdspan, lo que facilita mover tensores entre frameworks como PyTorch, JAX o CuPy y código CUDA C++ sin perder estructura de dimensiones y strides.

También aparece un nuevo backend Numba CUDA MLIR, compatible con el modelo @cuda.jit, que promete menor latencia de compilación JIT y menores costes de lanzamiento en algunos kernels. Para quienes usan Python en prototipado y quieren acercarse a rendimiento GPU sin abandonar del todo ese flujo de trabajo, puede ser una pieza a vigilar.

Más control para entornos compartidos y producción

CUDA 13.3 incorpora además mejoras pensadas para entornos donde varias cargas comparten GPU. MPS añade aislamiento parcial de errores, de modo que el driver pueda atribuir un fallo a una partición o cliente concreto y terminar ese trabajo sin afectar necesariamente a otros clientes que no han causado el problema. En plataformas compartidas, clusters y servicios multiusuario, esta clase de mejora puede reducir el impacto de errores localizados.

La nueva API para recapturar CUDA Graphs sobre un grafo existente también apunta a cargas repetitivas en producción, donde los grafos ayudan a reducir overhead y mejorar la eficiencia. Además, el soporte de mmap() para mapear memoria de GPU discreta desde CPU puede ofrecer una alternativa de baja latencia en escenarios donde no conviene instalar drivers adicionales como GDRCopy.

CUDA 13.3 no cambia por sí sola el equilibrio del mercado de aceleración, pero sí muestra la dirección de NVIDIA: más abstracción para escribir kernels, más estabilidad para Python, más herramientas para ajustar rendimiento y más control para operar GPU en producción. Para desarrolladores, administradores de plataformas de IA y equipos de infraestructura, la actualización merece atención porque toca varias capas a la vez: lenguaje, compilador, librerías, runtime y operación.

La lectura de fondo es clara. A medida que la GPU se convierte en infraestructura general para IA y computación intensiva, el reto ya no es solo tener hardware más potente. También importa que los equipos puedan programarlo, depurarlo, compartirlo y explotarlo con menos complejidad. CUDA 13.3 avanza en esa dirección, aunque la adopción real dependerá de la madurez de cada proyecto, del parque de GPU disponible y del esfuerzo necesario para migrar o adaptar código existente.

Preguntas frecuentes

¿Qué es CUDA 13.3?
CUDA 13.3 es una nueva versión del toolkit de NVIDIA para desarrollar, compilar y ejecutar aplicaciones aceleradas por GPU.

¿Cuál es la principal novedad de CUDA 13.3?
Una de las novedades más destacadas es CUDA Tile en C++, que permite escribir kernels basados en tiles con mayor nivel de abstracción.

¿Qué aporta CUDA Python 1.0?
CUDA Python 1.0 ofrece una API más estable para usar CUDA desde Python, con versionado semántico y nuevas capacidades como green contexts, checkpointing e IPC.

¿Qué es CompileIQ?
CompileIQ es un framework de autotuning del compilador que busca configuraciones específicas para mejorar el rendimiento de kernels GPU concretos.

vía: developer.nvidia

Suscríbete al boletín SysAdmin

Este es tu recurso para las últimas noticias y consejos sobre administración de sistemas, Linux, Windows, cloud computing, seguridad de la nube, etc. Lo enviamos 2 días a la semana.

¡Apúntate a nuestro newsletter!


– patrocinadores –

Noticias destacadas

– patrocinadores –

¡SUSCRÍBETE AL BOLETÍN
DE LOS SYSADMINS!

Scroll al inicio
×