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.
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