El proyecto Rust-CUDA, una iniciativa de código abierto que busca permitir la programación de kernels CUDA dentro del lenguaje Rust, ha sido oficialmente reiniciado. Tras tres años de inactividad desde su última versión (v0.3 en febrero de 2022), los desarrolladores han retomado el trabajo y buscan colaboradores para impulsar el proyecto.
Llevando CUDA a Rust
Rust-CUDA se centra en compilar código Rust a NVVM IR de NVIDIA, una variante de LLVM IR optimizada para computación en GPU. Este código intermedio (IR) se convierte luego en PTX (Parallel Thread Execution), que puede ejecutarse directamente en GPUs de NVIDIA.
Con el reinicio del proyecto, los desarrolladores buscan modernizar la base de código, actualizar dependencias y alinearse con otros proyectos de Rust para computación en GPU, como:
- Rust GPU – Un proyecto similar que usa SPIR-V para GPUs con Vulkan.
- Backend PTX de Rustc – Una implementación experimental del compilador Rust para generar PTX CUDA.
- Cudarc – Un crate de Rust que ofrece una abstracción de alto nivel para la programación en CUDA.
Plan a corto plazo
Las prioridades inmediatas del proyecto incluyen:
- Fusionar solicitudes de extracción pendientes y revisar contribuciones.
- Cerrar problemas obsoletos en el repositorio.
- Actualizar dependencias para soportar las versiones más recientes de Rust y CUDA.
- Lanzar un nuevo sitio web con documentación y ejemplos actualizados.
Objetivos a medio plazo
Una vez estabilizado el proyecto, los desarrolladores planean explorar:
- Interoperabilidad entre Rust y C++, aprovechando nuevas capacidades de Rust para integrarse con bibliotecas en C++.
- Colaboración con el backend PTX de Rustc para evaluar la migración de NVVM IR a PTX puro.
- Unificación de API con Rust GPU para facilitar el desarrollo en CUDA y Vulkan dentro de un mismo ecosistema.
Visión a largo plazo
A futuro, Rust-CUDA busca:
- Integrarse con el compilador oficial de Rust, convirtiéndose en un backend oficialmente soportado.
- Unificar la programación en GPU dentro de Rust, eliminando diferencias entre plataformas.
- Evolucionar el lenguaje Rust para mejorar su compatibilidad con computación en GPU.
Llamado a colaboradores
El equipo de Rust-CUDA está buscando mantenedores, contribuyentes y usuarios que quieran ayudar a definir el futuro de la programación en CUDA con Rust. Los interesados pueden obtener más información en el blog de Rust-GPU en GitHub.
Con este relanzamiento, Rust-CUDA se posiciona como una herramienta clave para la computación en GPU con Rust, combinando rendimiento y seguridad en el desarrollo de software moderno.