NVIDIA abre CUDA Rust: kernels de GPU en Rust con dos caminos
La compañía presenta cuda-oxide, un backend de rustc que compila kernels a PTX de forma nativa, y una ruta Tile para quien prefiera no gestionar hilos a mano.

NVIDIA ha presentado CUDA Rust, una vía para escribir kernels de GPU en Rust y compilarlos de forma nativa a PTX, sin envoltorios sobre código escrito en otro lenguaje. Hay dos caminos, los mismos que ya tiene CUDA: SIMT, el modelo de toda la vida, y Tile, el más reciente. La empresa dice que piensa madurar ambos durante 2027 y más allá.
El movimiento tiene su lógica. Buena parte de la capa de sistemas de la IA --motores de inferencia, infraestructura de serving, drivers, runtimes de agentes-- se reescribe en Rust según cambian los modelos, porque el compilador atrapa clases enteras de errores sin renunciar al rendimiento. El driver Nova Linux está en Rust, Dynamo lleva un núcleo en Rust y NVTX tiene bindings. El kernel era la excepción: se podía lanzar desde Rust, pero había que escribirlo en otro lenguaje. Esto cierra ese hueco.
cuda-oxide, un backend de rustc
El proyecto de la ruta SIMT se llama cuda-oxide y es un backend de generación de código para rustc. Intercepta la compilación y enruta las funciones marcadas con #[kernel] por Rust MIR, el framework de IR Pliron y LLVM IR hasta PTX; todo lo demás va al backend estándar. Los dialectos de GPU que se montan sobre Pliron son de NVIDIA, y dialectos y transformaciones se quedan en Rust hasta que entra el backend de LLVM.
Los requisitos no son triviales: Linux, una GPU con compute capability 8.0 o superior, toolkit CUDA 12.x o más nuevo, clang con sus cabeceras libclang y una toolchain nightly fijada. El subcomando cargo oxide doctor comprueba todo eso, incluido el LLVM del sistema si se quiere usar. Se instala desde el repositorio con cargo +nightly-2026-04-03.
El ejemplo que acompaña al anuncio es una suma elemento a elemento sobre 1.024 floats. El código de host y el de dispositivo viven en el mismo archivo, se construye con un comando y no hace falta un crate aparte para el kernel. La firma del kernel carga el argumento de seguridad: a y b son slices compartidos, y c es un DisjointSlice<f32> que da a cada hilo acceso exclusivo a su propio elemento y a nada más. El lanzamiento se prepara con una configuración de 4 bloques de 256 hilos y el programa imprime PASSED: all 1024 elements correct.
Cuál elegir
NVIDIA recomienda empezar por Tile cuando se construye algo nuevo: el compilador decide cómo se mapean los tiles a cada arquitectura, así que el código fuente no arrastra decisiones atadas a un modelo concreto de GPU. Se baja a SIMT cuando hace falta ese control o se quiere gestionar memoria e hilos uno mismo. Qué lenguaje usar es una pregunta distinta de qué modelo usar, y la compañía dice que prevé soportar interoperabilidad entre lenguajes para que la elección no encierre a nadie en una sola vía.
Lo relevante para quien mantiene infraestructura de cómputo es que la última pieza de la pila que obligaba a saltar a C++ o Python empieza a tener alternativa en Rust. Queda por ver el estado real de la ruta Tile en Rust --el anuncio se queda corto ahí-- y cuánto tarda esto en salir de la toolchain nightly.
