NVIDIA ha presentado
CUDA Toolkit 13.4, una actualización que amplía las plataformas compatibles y añade nuevas herramientas para desarrolladores de aplicaciones aceleradas por GPU.
Entre las novedades más importantes se encuentran el soporte para Windows on Arm, la compatibilidad preliminar con la arquitectura de GPU Rubin, un control más preciso de GPU compartidas y mejoras en CUDA Python, CCCL y las herramientas NVIDIA Nsight.
Qué es CUDA Toolkit
CUDA Toolkit es el conjunto de herramientas de NVIDIA para desarrollar aplicaciones que utilizan sus GPU como aceleradores de cálculo. Se emplea en inteligencia artificial, aprendizaje automático, simulación científica, análisis de datos, gráficos y computación de alto rendimiento.
El paquete incluye compiladores, bibliotecas, APIs, depuradores, analizadores de rendimiento y herramientas para trabajar con diferentes arquitecturas de GPU.
Gracias a CUDA, un programa puede descargar determinadas tareas desde el procesador principal hacia la GPU, donde miles de núcleos ejecutan operaciones en paralelo.
Windows on Arm recibe soporte oficial
CUDA Toolkit 13.4 extiende el soporte de CUDA a Windows on Arm. Hasta ahora, las aplicaciones CUDA ya podían ejecutarse en plataformas Arm mediante Linux, pero esta versión amplía la compatibilidad al sistema operativo de Microsoft para equipos con procesadores Arm.
El cambio puede beneficiar a portátiles y estaciones de trabajo basados en Arm que incorporen una GPU NVIDIA compatible. También abre nuevas posibilidades para desarrolladores que desean compilar o portar aplicaciones aceleradas sin depender exclusivamente de Windows sobre procesadores x86.
Para que una aplicación funcione correctamente, no basta con instalar CUDA Toolkit. También deben ser compatibles el controlador, la GPU, las bibliotecas utilizadas y el entorno de compilación.
Ventajas para los desarrolladores
- Permite ampliar aplicaciones CUDA a Windows sobre Arm.
- Facilita la creación de software multiplataforma.
- Mejora las opciones para portátiles Arm con GPU NVIDIA.
- Reduce la dependencia de una única arquitectura de procesador.
- Ofrece nuevas posibilidades para herramientas de inteligencia artificial y cálculo científico.
El soporte llega con bibliotecas matemáticas y herramientas de desarrollo actualizadas, aunque los desarrolladores deben verificar las plataformas y versiones específicas soportadas por cada componente.
Soporte preliminar para NVIDIA Rubin
CUDA Toolkit 13.4 incorpora soporte funcional preliminar para la arquitectura NVIDIA Rubin, identificada con la capacidad de cómputo 107.
La compatibilidad se ofrece como una vista previa para que los desarrolladores comiencen a portar y probar sus aplicaciones antes de que el soporte llegue a una versión generalizada del Toolkit.
Rubin es la siguiente generación de arquitectura de GPU de NVIDIA para centros de datos y cargas de inteligencia artificial. El soporte preliminar permite detectar con anticipación problemas de compatibilidad, dependencias o rendimiento.
Al tratarse de una función de vista previa, los resultados pueden cambiar y no todas las características estarán necesariamente disponibles o optimizadas.
Multi-Process Service V3
Una de las novedades más importantes para entornos compartidos es Multi-Process Service V3, conocido como MPS V3. Esta tecnología permite administrar mejor el uso de una GPU entre varios procesos o aplicaciones.
La nueva versión incorpora un sistema de control más moderno y automatizable, con funciones como:
- Interfaz de línea de comandos programable.
- Instancias de servidor identificadas por nombre.
- Namespaces para organizar cargas simultáneas.
- Archivos de configuración en formato TOML.
- Control de particiones de streaming multiprocessors.
- Límites de memoria GPU integrados con cgroups.
- Mejor integración con contenedores.
Estas funciones permiten definir qué cantidad de cómputo, memoria y prioridad recibe cada proceso. El objetivo es aumentar el aprovechamiento de la GPU sin perder aislamiento entre las cargas de trabajo.
Por qué es importante compartir una GPU
En un centro de datos, una GPU puede quedar parcialmente desaprovechada si una sola aplicación no utiliza todos sus recursos. MPS permite ejecutar varios procesos al mismo tiempo para mejorar la utilización del hardware.
Por ejemplo, una organización podría dividir una GPU entre diferentes trabajos de inferencia, procesos de análisis o sesiones de desarrollo. Cada carga tendría límites y prioridades definidos, reduciendo el riesgo de que una aplicación consuma todos los recursos disponibles.
Esta función es especialmente útil en:
- Clusters de inteligencia artificial.
- Plataformas de aprendizaje automático.
- Infraestructura basada en contenedores.
- Servicios de inferencia compartidos.
- Laboratorios de investigación.
- Entornos de desarrollo con varios usuarios.
CUDA Compute Fabric Transport
CUDA 13.4 incorpora CUDA Compute Fabric Transport, una interfaz orientada a aplicaciones avanzadas y bibliotecas de comunicación que necesitan mover datos a través de una red NVIDIA NVLink.
En lugar de asignar cada memoria remota al espacio de direcciones virtuales de un proceso, las aplicaciones pueden utilizar puntos finales lógicos identificados mediante un ID y un desplazamiento.
El sistema permite ejecutar operaciones asíncronas de:
- Escritura de datos.
- Lectura de datos.
- Reducciones.
- Comunicación unicast.
- Comunicación multicast.
También informa sobre la finalización y los errores, lo que permite detectar transferencias fallidas, repetirlas o redirigirlas.
Esta función está disponible mediante la Driver API y está pensada principalmente para desarrolladores de bibliotecas de comunicación. La mayoría de las aplicaciones puede seguir utilizando soluciones de alto nivel como NCCL o NVSHMEM.
Locality domains
La nueva versión expone acceso programático a los llamados locality domains. Un dominio de localidad es una parte de la GPU que contiene determinados streaming multiprocessors y memoria del dispositivo.
Una aplicación puede asignar memoria en un dominio y crear un contexto de ejecución utilizando recursos de cómputo cercanos. Esta proximidad puede reducir el costo de acceder a los datos en GPUs que utilizan más de un dominio de localidad.
La función está orientada a cargas de trabajo sensibles a la latencia y al ancho de banda. Permite que los desarrolladores tengan mayor control sobre dónde se colocan los datos y dónde se ejecutan los cálculos.
Consulta de la ubicación de Unified Memory
CUDA 13.4 añade APIs para consultar dónde se encuentra físicamente la memoria unificada. Esta información permite saber si los datos están en la GPU, en la memoria del sistema o en otra ubicación.
La memoria unificada simplifica el desarrollo de aplicaciones heterogéneas, pero puede generar migraciones de páginas y accesos remotos que afectan al rendimiento.
Con la función cudaMemGetLocationInfo, las bibliotecas y los runtimes pueden tomar decisiones más inteligentes sobre:
- Cuándo mover datos a la GPU.
- Dónde ejecutar una operación.
- Cómo evitar migraciones innecesarias.
- Cómo reducir accesos remotos.
- Cuándo utilizar memoria del sistema.
El controlador ya no viene incluido en el instalador
CUDA Toolkit 13.4 separa el controlador NVIDIA del instalador principal del SDK. Los desarrolladores deben instalar el controlador apropiado de forma independiente mediante el gestor de paquetes correspondiente.
La separación permite administrar por separado el Toolkit y el controlador, algo útil en servidores, contenedores y sistemas donde diferentes aplicaciones requieren versiones específicas.
Antes de actualizar, es importante comprobar la compatibilidad entre la versión del controlador, el Toolkit, la GPU y las bibliotecas utilizadas por la aplicación.
Gestión de memoria coherente
En plataformas NVIDIA coherentes como Grace Hopper, Grace Blackwell y Vera Rubin, CUDA 13.4 establece como opción predeterminada la gestión de memoria basada en Coherent Driver-based Memory Management, conocida como CDMM.
El modo NUMA continúa disponible y puede seleccionarse mediante un parámetro del módulo del kernel. NVIDIA recomienda elegir la modalidad antes de actualizar porque el cambio puede requerir recargar el controlador o reiniciar el sistema.
Mejoras en compiladores
La compatibilidad de compiladores se amplía con GCC 16 y Clang 22 en las plataformas compatibles. Además, se incorpora el objetivo de arquitectura SM_107 para compilar aplicaciones destinadas a GPU Rubin.
La selección correcta del compilador es importante para evitar problemas de ABI, incompatibilidades con bibliotecas o errores durante la compilación de extensiones de Python y frameworks de inteligencia artificial.
CUDA Python 1.1
CUDA Python amplía el acceso desde Python a APIs y algoritmos de CUDA. La versión cuda.core 1.1.0 incorpora funciones para trabajar con texturas, superficies, memoria administrada y gráficos CUDA.
La API también incluye información de tipos para ayudar a los entornos de desarrollo y a los agentes de programación basados en inteligencia artificial.
Texturas y superficies
El nuevo módulo cuda.core.texture proporciona APIs de Python para trabajar con memoria de texturas y superficies.
Entre sus componentes se encuentran:
OpaqueArray para representar asignaciones organizadas por hardware.
MipmappedArray para matrices con mipmaps.
TextureObject para lecturas filtradas por hardware.
SurfaceObject para cargas y almacenamientos tipados desde kernels.
Estas funciones pueden ser útiles en procesamiento de imágenes, gráficos, simulaciones y algoritmos que necesitan accesos especializados a la memoria.
Memoria administrada consciente de NUMA
La gestión de memoria administrada incorpora controles para indicar dónde se prefieren colocar los datos y qué procesadores pueden acceder a ellos.
Los desarrolladores pueden configurar:
- Datos de solo lectura frecuente.
- Ubicación preferida.
- Procesadores con permiso de acceso.
- Prefetch de datos hacia la GPU.
- Movimiento posterior de resultados hacia la memoria del sistema.
Este control puede mejorar el rendimiento de aplicaciones que trabajan con sistemas de varios nodos NUMA o plataformas con CPU y GPU estrechamente integradas.
Mejores flujos de desarrollo en Python
CUDA Python 1.1 añade archivos de definición de tipos .pyi para las APIs públicas. Esto permite obtener autocompletado, firmas de funciones, tipos de retorno y ayuda contextual en los editores compatibles.
También se amplían los flujos de trabajo con CUDA Graphs. La propiedad GraphBuilder.graph_definition permite exponer un gráfico capturado como una definición que puede inspeccionarse o ampliarse.
Esta posibilidad facilita combinar la captura de streams con la construcción explícita de gráficos CUDA.
CCCL 3.4
CUDA Toolkit 13.4 incorpora CCCL 3.4, las bibliotecas de componentes básicos de CUDA. La actualización incluye mejoras en CUB, algoritmos paralelos de la biblioteca estándar de C++ y operaciones de reducción.
Escaneos más rápidos en Blackwell
La implementación de cub::DeviceScan para GPU Blackwell utiliza el Tensor Memory Accelerator para solapar el movimiento de datos con el cálculo y reducir la sincronización.
En las pruebas de NVIDIA, la implementación alcanza hasta un 92 % de utilización del ancho de banda de memoria en determinados trabajos, frente a valores de alrededor del 50 % en una implementación anterior.
El rendimiento depende del tipo de dato, el tamaño de la operación, la arquitectura y el resto de la aplicación. La cifra no debe interpretarse como una mejora garantizada para todas las cargas.
APIs de una sola llamada
Muchas operaciones de CUB requerían llamar primero al algoritmo para calcular el espacio temporal necesario, reservar esa memoria y ejecutar después la operación real.
Las nuevas sobrecargas de una sola llamada pueden obtener memoria temporal desde un recurso de memoria suministrado en el entorno de ejecución. Esto reduce código repetido y centraliza el control de streams y pools de memoria.
Las APIs tradicionales de dos fases siguen disponibles para aplicaciones que necesitan administrar manualmente el almacenamiento temporal.
Algoritmos paralelos de C++ en la GPU
CUDA 13.4 introduce el modelo de algoritmos paralelos de la biblioteca estándar de C++ en cuda::std. Los desarrolladores pueden utilizar operaciones conocidas como:
copy_if.
find_if.
merge.
- Reducción.
- Transformación.
- Scan.
La política de ejecución cuda::execution::gpu permite dirigir estas operaciones hacia la GPU, utilizando las implementaciones internas de CCCL y CUB.
CUDA Tile IR y lanzamientos dependientes
La compatibilidad con Programmatic Dependent Launch llega a CUDA Tile IR. Esta función permite que un kernel dependiente comience a ejecutarse antes de que termine completamente el kernel anterior, siempre que se cumplan las condiciones necesarias.
El objetivo es mejorar el solapamiento entre kernels y reducir tiempos muertos en aplicaciones con cadenas de operaciones relacionadas.
CUDA Tile C++ también añade nuevas vistas para cargar y almacenar datos:
- Strided view: trabaja con bloques separados por un paso definido.
- Gather scatter view: permite acceder a bloques no contiguos o dispersos.
Mejoras en NVIDIA Nsight
CUDA Toolkit 13.4 actualiza varias herramientas NVIDIA Nsight para mejorar la medición, el análisis y la optimización del rendimiento.
Nsight Python
Nsight Python 1.0 proporciona una interfaz de Python para perfilar kernels. Incluye un decorador y un gestor de contexto que permiten automatizar:
- Comparación de configuraciones de kernels.
- Recopilación de métricas de arquitectura.
- Prevención de limitaciones térmicas de la GPU.
- Visualización del rendimiento.
La herramienta busca reducir la cantidad de código necesario para analizar configuraciones y no limitarse a comparar únicamente el tiempo total de ejecución.
Nsight Compute
Nsight Compute 2026.3 incorpora soporte para Tile IR y permite inspeccionar su código fuente, el código CUDA Tile y el código generado.
También mejora la información sobre derrames de registros en cargas OptiX y añade funciones a Nsight Copilot.
Nsight Systems
Nsight Systems 2026.5.1 amplía la visibilidad sobre CUDA, CPU, redes, almacenamiento y frameworks de inteligencia artificial. La versión incorpora soporte para CUDA 13.4, GPU Rubin y Windows on Arm.
Entre las novedades se encuentran:
- Información adicional de formas de tensores en trazas de PyTorch.
- Análisis de retrasos en operaciones colectivas de NCCL.
- Resumen de accesos S3.
- Perfilado de métricas de red mediante DOCA Telemetry Service.
- Mejor análisis de almacenamiento y cargas distribuidas.
- Exportación de datos NVTX en formatos relacionales, Arrow y Parquet.
Compute Sanitizer
Compute Sanitizer mejora la detección de accesos fuera de límites en memoria compartida mediante parches en tiempo de compilación para arquitecturas Hopper y posteriores.
Initcheck incorpora soporte para operaciones de copia asíncrona por lotes, mientras que Racecheck añade filtrado por bloque de clúster.
Estas herramientas ayudan a identificar errores de memoria y condiciones de carrera que pueden producir resultados incorrectos o fallos difíciles de reproducir.
Bibliotecas matemáticas
Las bibliotecas matemáticas principales reciben soporte funcional para Rubin y Windows on Arm. Entre las mejoras de cuBLAS se incluyen:
- Mejoras de rendimiento en doble precisión mediante emulación de punto fijo Ozaki-II.
- Planificación dinámica de operaciones Grouped GEMM en GPU Blackwell.
- Mejor distribución del trabajo en cargas Mixture of Experts.
- Nuevos modos experimentales de escalado para tensores FP8.
Estas optimizaciones están especialmente orientadas a cargas de inteligencia artificial, álgebra lineal y entrenamiento o inferencia de modelos.
Qué deben comprobar los desarrolladores
Antes de actualizar a CUDA Toolkit 13.4, conviene revisar la compatibilidad completa del entorno:
- Modelo y arquitectura de la GPU.
- Versión del controlador NVIDIA.
- Sistema operativo.
- Versión del compilador.
- Framework de inteligencia artificial.
- Bibliotecas CUDA utilizadas.
- Compatibilidad de extensiones personalizadas.
- Dependencias de contenedores.
También es recomendable probar la actualización en un entorno separado antes de cambiar servidores de producción. Las funciones Rubin, MPS V3, CUDA Compute Fabric Transport y algunos componentes de CUDA Python pueden requerir cambios en el código.
Conclusión
CUDA Toolkit 13.4 amplía el ecosistema de NVIDIA con soporte para Windows on Arm, compatibilidad preliminar con Rubin y nuevas herramientas para administrar GPU compartidas.
MPS V3 ofrece mayor control sobre memoria, prioridad y recursos de cómputo, mientras que CUDA Compute Fabric Transport proporciona una interfaz especializada para comunicación sobre NVLink.
La actualización también mejora CUDA Python, CCCL, CUDA Tile, Nsight, Compute Sanitizer y las bibliotecas matemáticas. Para los desarrolladores de inteligencia artificial y computación de alto rendimiento, el soporte de Windows on Arm y Rubin puede facilitar el trabajo de portabilidad y preparación de aplicaciones futuras.
Aun así, CUDA 13.4 no es una actualización que deba instalarse sin revisar dependencias. Las aplicaciones de producción deben validarse con el nuevo controlador, el Toolkit y las GPU utilizadas antes de realizar una migración completa.
Fuente de referencia:
blog técnico oficial de NVIDIA sobre CUDA Toolkit 13.4
.