Cada versión del CUDA Toolkit de NVIDIA agrega funcionalidades y mejoras de rendimiento que ayudan a los desarrolladores a sacarle más partido a las GPU de la marca y a la plataforma de software que las rodea.
CUDA Toolkit 13.4 suma soporte para Windows on Arm. Las aplicaciones CUDA llevaban tiempo funcionando en plataformas Arm a través de Linux; esta entrega extiende esa capacidad a la plataforma Windows sobre Arm.
La versión también introduce soporte preliminar para desarrolladores de la arquitectura de GPU NVIDIA Rubin, capacidades ampliadas de gestión de GPU, más funcionalidad en CUDA Python y CCCL, y actualizaciones transversales en las herramientas NVIDIA Nsight y en las bibliotecas matemáticas centrales.
Mejoras de CUDA 13.4
¿Qué tan lista está la arquitectura Rubin?
CUDA Toolkit 13.4 agrega soporte funcional para la arquitectura NVIDIA Rubin (capacidad de cómputo 107) en calidad de vista previa. Eso permite a los desarrolladores empezar a portar aplicaciones antes de que el soporte de CUDA para Rubin llegue a disponibilidad general en una versión futura del kit. Rubin es la arquitectura de GPU de próxima generación que impulsa la era de la IA agéntica.
Multi-Process Service V3
El servicio multiproceso (MPS) V3 introduce una capa de control modernizada para CUDA MPS, que simplifica la automatización y la gestión de recursos de GPU compartidos. La actualización entrega a desarrolladores y capas de orquestación una interfaz de línea de comandos programable, instancias de servidor con nombre y espacios de nombres para organizar cargas concurrentes.
También agrega soporte de configuración en TOML, controles de partición de multiprocesadores de streaming (SM) y límites de memoria de GPU integrados con cgroups. Estas capacidades permiten un particionado preciso, donde el rendimiento de cómputo, los límites de memoria y la prioridad de ejecución se definen de forma programática. La entrega asegura que MPS se integre en entornos de contenedores, maximizando el uso del hardware y manteniendo un aislamiento estricto de recursos para cada proceso. Para partir con MPS V3 están disponibles la guía rápida y la documentación completa.
CUDA Compute Fabric Transport
CUDA Compute Fabric Transport (CFT) introduce una forma centrada en el transporte para que aplicaciones avanzadas y bibliotecas de comunicación muevan datos a través del fabric NVLink de NVIDIA a gran escala. En lugar de mapear cada asignación remota de GPU al espacio de direcciones virtuales de un proceso, el software puede apuntar a puntos finales lógicos con nombre usando un identificador de punto final y un desplazamiento, para después emitir operaciones asíncronas de escritura, lectura y reducción directamente desde la GPU.
El enfoque reduce la presión sobre las direcciones virtuales en sistemas multi-GPU grandes, admite patrones de comunicación unicast y multicast, e informa el estado de finalización y error para que las aplicaciones puedan detectar, reintentar o redirigir transferencias fallidas.
CFT está disponible únicamente a través de la API del driver de CUDA y apunta a quienes desarrollan bibliotecas de comunicación con necesidades muy específicas que no cubren las bibliotecas de más alto nivel. La mayoría de los desarrolladores de aplicaciones estará mejor servida con bibliotecas como NCCL o NVSHMEM. Los detalles están en la guía de programación de CUDA.
Dominios de localidad
CUDA 13.4 expone acceso programático a los dominios de localidad. Un dominio de localidad es una porción de una GPU que contiene multiprocesadores de streaming y memoria de dispositivo. Una aplicación puede asignar memoria de dispositivo en un dominio de localidad y crear un green context con recursos de SM en el mismo dominio. Ubicar el cómputo cerca de la memoria que utiliza puede mejorar el rendimiento en dispositivos con más de un dominio de localidad. La forma de consultarlos y usarlos está en la guía de programación de CUDA.
Consultar dónde vive la memoria unificada
El soporte de API para consultar información de residencia de la memoria unificada da a bibliotecas y entornos de ejecución sensibles al rendimiento una vía directa para saber dónde residen actualmente los datos gestionados o asignados por el sistema. La memoria unificada simplifica la programación heterogénea, pero el software de alto rendimiento todavía necesita conciencia de localidad para evitar migraciones de página innecesarias, accesos a memoria remota o rutas de preparación ineficientes. Con las consultas de residencia, las aplicaciones y bibliotecas CUDA toman mejores decisiones sobre dónde y cuándo programar cómputo y movimiento de datos. La referencia está en cudaMemGetLocationInfo.
El driver se separa del toolkit
Los instaladores del SDK de CUDA ya no incluyen el driver de NVIDIA. Hay que instalar por separado el paquete nvidia-open correspondiente o los paquetes cuda-toolkit, con el gestor de paquetes que se prefiera.
CDMM pasa a ser el modo por omisión en plataformas coherentes
En plataformas coherentes de NVIDIA como Grace Hopper, Grace Blackwell y Vera Rubin, el driver ahora usa por omisión la gestión de memoria coherente basada en driver (CDMM) en vez de NUMA. El modo NUMA sigue plenamente soportado y puede seleccionarse con un parámetro del módulo del kernel. Quien planee usarlo debe hacer el cambio antes de actualizar: es un ajuste de alcance de nodo que requiere recargar el driver o reiniciar. Hay más información en el artículo Understanding Memory Management on Hardware-Coherent Platforms y en el documento técnico.
Compiladores y NVCC
La compatibilidad con compiladores anfitriones ahora incluye GCC 16 y Clang 22 en las plataformas soportadas. El nuevo objetivo de arquitectura SM_107 habilita la compilación para GPU Rubin.
CUDA Python
CUDA Python amplía el acceso pythónico a las API centrales de CUDA y a algoritmos de alto rendimiento, con actualizaciones en herramientas de desarrollo, gestión de memoria, flujos de trabajo de grafos y portabilidad de aplicaciones.
cuda.core
Tras la liberación de CUDA Python 1.0, cuda.core 1.1.0 amplió la API pythónica estable de CUDA con programación de texturas y superficies, control más rico de memoria gestionada, mejor integración de grafos CUDA e información de tipos completa para herramientas de desarrollo y agentes. La lista completa de cambios está en las notas de la versión 1.1.0.
Programación de texturas y superficies
El nuevo módulo cuda.core.texture entrega API de Python de primera clase para memoria de textura y de superficie de CUDA. OpaqueArray y MipmappedArray representan asignaciones de GPU con disposición de hardware, mientras TextureObject habilita lecturas de kernel filtradas por hardware sin binding, y SurfaceObject habilita cargas y almacenamientos tipados del lado del kernel. El siguiente ejemplo crea un arreglo CUDA opaco y lo asocia a un objeto de textura:
from cuda.core import Device
from cuda.core.texture import (
OpaqueArrayOptions,
ResourceDescriptor,
TextureObjectOptions,
)
from cuda.core.typing import ArrayFormatType, FilterModeType
dev = Device()
dev.set_current()
stream = dev.create_stream()
with dev.create_opaque_array(
OpaqueArrayOptions(
shape=(1024, 1024),
format=ArrayFormatType.FLOAT32,
num_channels=1,
)
) as array:
array.copy_from(image, stream=stream)
resource = ResourceDescriptor.from_opaque_array(array)
options = TextureObjectOptions(filter_mode=FilterModeType.LINEAR)
with dev.create_texture_object(
resource=resource,
options=options,
) as texture:
# Pasar texture.handle a un kernel CUDA C++.
run_kernel(texture.handle)Memoria gestionada consciente de NUMA
ManagedMemoryResource.allocate() ahora devuelve un ManagedBuffer con una interfaz basada en propiedades para las recomendaciones de memoria de CUDA. Las aplicaciones pueden configurar datos de lectura mayoritaria, ubicación preferida y acceso por procesador. El nuevo tipo Host complementa a Device al especificar ubicaciones de memoria: puede representar cualquier memoria de anfitrión, un nodo NUMA particular o el nodo NUMA asociado al hilo que llama.
Mejores flujos de desarrollo y de grafos
cuda.core 1.1 entrega archivos de tipos .pyi para cada API pública, lo que da a los entornos de desarrollo autocompletado y a los agentes de programación acceso a información de tipos, firmas de funciones y tipos de retorno.
Entre las mejoras a los flujos de trabajo con grafos CUDA, GraphBuilder.graph_definition expone un grafo capturado como GraphDefinition. Con eso se puede combinar la captura de stream con la construcción explícita de grafos, incluyendo inspeccionar o extender un grafo capturado.
Otras incorporaciones son la enumeración de NVLink específica por dispositivo, configuración ampliada de colas de trabajo de green context, entradas tipo ruta para Program y ObjectCode, y una propiedad pública Buffer.size. La versión también refuerza la validación de IPC, la corrección de Python sin GIL y la restauración de puntos de control de procesos CUDA.
cuda.compute
cuda.compute entrega acceso pythónico a los algoritmos de GPU personalizables y de alto rendimiento de las bibliotecas CCCL, entre ellos ordenamiento, scan, reducción y transformación.
cuda.compute 1.1 habilita la compilación anticipada de objetos de algoritmo para múltiples arquitecturas de GPU, incluso en sistemas de compilación sin GPU. ProxyArray y ProxyValue describen tipos de argumentos sin asignar memoria de dispositivo, mientras serialize() crea un artefacto que puede almacenarse y desplegarse. En el sistema de destino, deserialize() restaura el algoritmo sin recompilar y carga la versión que corresponde a la arquitectura de GPU presente.
import numpy as np
from cuda.compute import (
OpKind,
ProxyArray,
ProxyValue,
make_reduce_into,
serialize,
)
reducer = make_reduce_into(
d_in=ProxyArray(np.int32),
d_out=ProxyArray(np.int32),
op=OpKind.PLUS,
h_init=ProxyValue(np.int32),
compute_capability=[80, 90], # Compilar para sm_80 y sm_90.
)
with open("reduce.cclb", "wb") as file:
file.write(serialize(reducer))CCCL 3.4
CUDA 13.4 se despacha con CCCL 3.4, que trae un cub::DeviceScan más rápido en GPU NVIDIA Blackwell, API de llamada única en los algoritmos de dispositivo de CUB, reducciones por warp en lote y algoritmos paralelos familiares de la biblioteca estándar de C++ dentro de cuda::std.
Para los barridos de dispositivo en Blackwell hay una nueva implementación de cub::DeviceScan especializada por warp, que usa el acelerador de memoria tensorial (TMA) para solapar movimiento de memoria y cómputo, reduciendo la sobrecarga de sincronización.
¿A quién le sirve esta actualización?
El punto más relevante para el desarrollador latinoamericano es el soporte de Windows on Arm: hasta ahora, quien tuviera un equipo Arm con Windows debía pasar por Linux para trabajar con CUDA. La separación entre driver y toolkit apunta en la misma dirección práctica, porque desacopla la actualización del entorno de desarrollo de la del controlador gráfico, algo que suele ser el punto de fricción al montar un servidor de inferencia.
Los desarrolladores que trabajan con hardware modesto también tienen algo acá: la compilación anticipada de cuda.compute para varias arquitecturas sin GPU presente permite preparar artefactos en un servidor de integración continua barato y desplegarlos después sobre el equipo con tarjeta.




