Nuevo compilador permite escribir kernels para GPUs NVIDIA con Rust puro

Fuentes: The cuda-oxide Book#
Nuevo compilador permite escribir kernels para GPUs NVIDIA con Rust puro
Imagen generada con IA

cuda-oxide es un compilador experimental que permite escribir kernels (fragmentos de código ejecutados en paralelo por miles de hilos) para GPUs NVIDIA utilizando Rust puro, sin necesidad de aprender un lenguaje específico de dominio ni usar extensiones externas. Este proyecto funciona como un backend personalizado para rustc (el compilador de Rust) que traduce código estándar en Rust directamente a PTX (Parallel Thread eXecution), el lenguaje intermedio virtual de CUDA que luego se compila en código de máquina específico de la GPU. La propuesta de valor principal es traer el sistema de tipos y el modelo de propiedad de Rust al mundo de la programación GPU, ofreciendo seguridad de memoria sin sacrificar rendimiento. El código ejemplo muestra cómo definir un kernel de suma de vectores usando el atributo #[cuda_module], donde se accede al índice del hilo mediante thread::index_1d() y se manipulan buffers de dispositivo gestionados por CudaContext. El proyecto soporta programación asíncrona GPU con /.await y grafos lazy de DeviceOperation, permitiendo scheduler operaciones entre múltiples stream pools. Está en fase alfa temprana (v0.1.0), por lo que se esperan bugs, features incompletas y cambios-API. Los requisitos incluyen conocimiento de ownership, traits y genéricos en Rust, además de familiaridad con async/.await para capítulos avanzados. Los casos de uso ideales incluyen desarrolladores que buscan mayor seguridad en kernels GPU, investigadores en computación de alto rendimiento, y equipos de ML/científicos que quieren escribir kernels personalizados con garantías de seguridad de Rust.