Repolode
NVIDIA

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

#gpu#cuda#rust#high-performance-computing#nvidia#gpu-programming#async#compiler-backend#heterogeneous-computing#programming-languages

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.

Backend y APIs#concurrent-programming#multithreading#parallel-computing
12,2 mil+8 esta semana1,4 milC++OtherActualizado hace 22 días