Un lenguaje de programación integrado en Python que compila kernels numéricos con JIT para ejecutarlos en CPU y GPU, como CUDA, Vulkan y Metal.
NVIDIA/cuda-rust
La plataforma de NVIDIA para CUDA en Rust, con crates de runtime para el host y modelos SIMT y Tile para escribir kernels de GPU en Rust.
- Estrellas
- 3,987
- Forks
- 360
- Issues abiertos
- 234
- Último commit
- ayer
¿Qué es?
CUDA Rust permite a los desarrolladores de Rust controlar GPU de NVIDIA. Incluye crates para el host que cubren la API del driver de CUDA, con contextos, streams, buffers de dispositivo, eventos y operaciones asíncronas, componibles y de evaluación diferida, además de dos modelos de programación de kernels para el dispositivo.
El componente cuda-oxide está orientado al modelo SIMT tradicional, en el que se escribe código para cada hilo y se gestionan manualmente los hilos, los bloques y la memoria compartida. Está implementado como un backend personalizado de generación de código de rustc que compila Rust a PTX antes de la ejecución. El componente cutile-rs está orientado al modelo Tile, en el que los kernels operan sobre tiles completos de tensores multidimensionales y el compilador se encarga de asignar el trabajo a cada arquitectura. Es un plugin de proc-macro que compila con JIT en el primer lanzamiento.
Ambos modelos extienden las reglas de propiedad de Rust a través del límite de lanzamiento de la GPU: antes del lanzamiento, los buffers mutables se dividen en partes disjuntas y los inmutables se comparten. El proyecto se describe como una investigación en fase inicial, así que cabe esperar funciones incompletas y cambios en la API.
Funciones clave
- 01Bindings del driver para el host, contextos, streams, buffers de dispositivo y eventos en Rust.
- 02Modelo de kernels SIMT con índices explícitos de hilos y bloques, compilado a PTX antes de la ejecución.
- 03Modelo de kernels Tile que opera sobre tiles de tensores y se compila con JIT en el primer lanzamiento.
- 04Reglas de préstamo basadas en la propiedad aplicadas a los buffers de dispositivo durante los lanzamientos de kernels.
- 05Los kernels de ambos modelos pueden ejecutarse en el mismo stream y usar buffers de dispositivo compartidos.
Casos de uso
- Escribir kernels de GPU personalizados en Rust cuando se necesita un control preciso de los hilos, los warps y la memoria compartida.
- Expresar cargas de trabajo con tensores densos o cálculos numéricos como operaciones sobre tiles y dejar que el compilador se encargue de la planificación.
- Crear pipelines asíncronos de GPU con operaciones de dispositivo componibles basadas en los crates de runtime compartidos.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es cuda-rust?
- La plataforma de NVIDIA para CUDA en Rust, con crates de runtime para el host y modelos SIMT y Tile para escribir kernels de GPU en Rust. CUDA Rust permite a los desarrolladores de Rust controlar GPU de NVIDIA. Incluye crates para el host que cubren la API del driver de CUDA, con contextos, streams, buffers de dispositivo, eventos y operaciones asíncronas, componibles y de evaluación diferida, además de dos modelos de programación de kernels para el dispositivo.
- ¿cuda-rust es gratuito? ¿Qué licencia tiene?
- cuda-rust es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿cuda-rust sigue mantenido?
- Mantenimiento activo. El último commit de cuda-rust fue el 5 nov 2026.
- ¿Para qué puedo usar cuda-rust?
- Escribir kernels de GPU personalizados en Rust cuando se necesita un control preciso de los hilos, los warps y la memoria compartida. Expresar cargas de trabajo con tensores densos o cálculos numéricos como operaciones sobre tiles y dejar que el compilador se encargue de la planificación. Crear pipelines asíncronos de GPU con operaciones de dispositivo componibles basadas en los crates de runtime compartidos.
- ¿Dónde consigo cuda-rust?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/NVIDIA/cuda-rust
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Biblioteca C++ de solo cabecera para crear programas paralelos mediante grafos de tareas, con soporte para multihilo en CPU y GPU CUDA.
Un profiler de Python que informa el uso de CPU, GPU y memoria por línea, con sugerencias opcionales de optimización generadas por IA.
Servidor de inferencia de LLM en C++ para GPU de consumo y equipos con hardware AMD y NVIDIA, con speculative decoding, speculative prefill y kernels personalizados.
Biblioteca de arrays compatible con NumPy/SciPy que ejecuta código Python existente en GPU NVIDIA CUDA o AMD ROCm.
Biblioteca de plantillas de CUDA C++ y DSL de Python para escribir kernels GEMM y de álgebra lineal de alto rendimiento en GPU NVIDIA.