martes, 8 de septiembre de 2026

CUDA Rust permite escribir núcleos de GPU en Rust con dos enfoques

NVIDIA lleva Rust a la programación de GPU

NVIDIA presentó CUDA Rust, una iniciativa para escribir núcleos de GPU directamente en Rust. La propuesta se apoya en dos proyectos: cuda-oxide, orientado al modelo SIMT, y cutile-rs, basado en programación por tiles.

Hasta ahora, era posible lanzar núcleos desde Rust, pero el núcleo en sí solía escribirse en otro lenguaje. CUDA Rust busca cerrar esa brecha al permitir compilar código Rust de forma nativa a PTX, el lenguaje intermedio que utiliza NVIDIA para sus GPU.

Ilustración de una tarjeta gráfica NVIDIA rodeada por código Rust y dos rutas que representan los enfoques SIMT y Tile

Dos rutas para programar en GPU

NVIDIA no propone un único camino. Cada proyecto corresponde a un modelo de programación distinto, con diferentes niveles de control y requisitos técnicos.

Característica cuda-oxide cutile-rs
Modelo SIMT Tile
Unidad de trabajo Hilos individuales Bloques de datos o subtensores
Control del programador Alto, sobre hilos y memoria Menor, el compilador gestiona el mapeo
Compilación Rust nightly, LLVM y PTX Rust estable con CUDA Tile IR y JIT
Estado Alfa temprana Publicado en crates.io y usado en proyectos externos

Según NVIDIA, cutile-rs es la opción recomendada para comenzar, porque el compilador decide cómo se asignan los tiles a la arquitectura de la GPU. cuda-oxide es más adecuado cuando se necesita control fino sobre hilos, memoria o rendimiento.

cuda-oxide para núcleos SIMT

cuda-oxide sigue el modelo tradicional de CUDA: el desarrollador describe lo que hace un hilo y el sistema lanza miles de hilos en paralelo. Es un backend personalizado de rustc que procesa funciones marcadas con #[kernel] y las lleva hasta PTX mediante Rust MIR, el framework Pliron IR y LLVM.

Este proyecto incorpora tipos como DisjointSlice y contratos de lanzamiento. Su objetivo es evitar errores clásicos de concurrencia, como que varios hilos escriban sobre la misma posición de memoria sin coordinación.

Sus requisitos son más exigentes: Linux, una GPU con capacidad de cómputo 8.0 o superior, CUDA Toolkit 12.x o posterior, clang con libclang y una versión específica de Rust nightly.

Relevancia para estudiantes y desarrolladores

Para estudiantes e ingenieros de Latinoamérica, CUDA Rust puede ser una oportunidad para aprender programación paralela sin abandonar un lenguaje cada vez más usado en sistemas, infraestructura de IA y herramientas de desarrollo. NVIDIA señala que Rust detecta clases completas de errores en tiempo de compilación sin sacrificar rendimiento.

Aun así, no es una vía para cualquier usuario de Windows o Android: por ahora, los requisitos documentados incluyen Linux, GPU NVIDIA compatible y conocimientos de Rust. Quien ya programa en CUDA C++ puede evaluar cutile-rs para prototipos, pero debería tratar ambos proyectos como herramientas experimentales.

Fuente: NVIDIA Technical Blog .

No hay comentarios.:

Publicar un comentario