Linguagem integrada ao Python que compila kernels numéricos com JIT para execução em CPUs e GPUs, como CUDA, Vulkan e Metal.
NVIDIA/cuda-rust
Plataforma Rust da NVIDIA para CUDA, com crates de runtime no host e os modelos SIMT e Tile para escrever kernels de GPU em Rust.
- Estrelas
- 3,987
- Forks
- 360
- Issues abertas
- 234
- Último commit
- ontem
O que é?
CUDA Rust permite que desenvolvedores Rust controlem GPUs da NVIDIA. Inclui crates para o host que oferecem acesso à CUDA driver API, com suporte a contexts, streams, buffers de dispositivo, events e operações assíncronas lazy e composáveis, além de dois modelos de programação de kernels no dispositivo.
O componente cuda-oxide tem como alvo o modelo SIMT tradicional, no qual você escreve código por thread e gerencia threads, blocks e shared memory por conta própria. Ele é implementado como um backend personalizado de codegen do rustc que compila Rust para PTX antes da execução. O componente cutile-rs tem como alvo o modelo Tile, no qual os kernels operam sobre tiles inteiros de tensores multidimensionais, e o compilador cuida do mapeamento do trabalho para cada arquitetura. Ele é um plugin de proc-macro que compila com JIT na primeira execução.
Ambos os modelos estendem as regras de ownership do Rust para além do limite de lançamento da GPU: buffers mutáveis são particionados em partes disjuntas antes do lançamento, e buffers imutáveis são compartilhados. O projeto é descrito como pesquisa em estágio inicial; portanto, espere recursos incompletos e mudanças na API.
Recursos principais
- 01Bindings do driver no host, contexts, streams, buffers de dispositivo e events em Rust.
- 02Modelo de kernel SIMT com índices explícitos de threads e blocks, compilado para PTX antes da execução.
- 03Modelo de kernel Tile que opera sobre tiles de tensores e é compilado com JIT na primeira execução.
- 04Regras de empréstimo no estilo ownership aplicadas aos buffers de dispositivo durante os lançamentos de kernels.
- 05Kernels dos dois modelos podem ser executados na mesma stream usando buffers de dispositivo compartilhados.
Casos de uso
- Escrever kernels de GPU personalizados em Rust quando você precisa de controle preciso sobre threads, warps e shared memory.
- Expressar cargas de trabalho com tensores densos ou cálculos numéricos como operações com tiles e deixar o compilador cuidar do agendamento.
- Criar pipelines assíncronos de GPU com operações de dispositivo composáveis, usando os crates de runtime compartilhados.
Em coleções
Tópicos
Perguntas frequentes
- O que é cuda-rust?
- Plataforma Rust da NVIDIA para CUDA, com crates de runtime no host e os modelos SIMT e Tile para escrever kernels de GPU em Rust. CUDA Rust permite que desenvolvedores Rust controlem GPUs da NVIDIA. Inclui crates para o host que oferecem acesso à CUDA driver API, com suporte a contexts, streams, buffers de dispositivo, events e operações assíncronas lazy e composáveis, além de dois modelos de programação de kernels no dispositivo.
- cuda-rust é gratuito? Qual é a licença?
- cuda-rust é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
- cuda-rust ainda é mantido?
- Manutenção ativa. O último commit de cuda-rust foi em 5 de nov. de 2026.
- Para que posso usar cuda-rust?
- Escrever kernels de GPU personalizados em Rust quando você precisa de controle preciso sobre threads, warps e shared memory. Expressar cargas de trabalho com tensores densos ou cálculos numéricos como operações com tiles e deixar o compilador cuidar do agendamento. Criar pipelines assíncronos de GPU com operações de dispositivo composáveis, usando os crates de runtime compartilhados.
- Onde consigo cuda-rust?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/NVIDIA/cuda-rust
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Biblioteca C++ header-only para criar programas paralelos por tarefas usando grafos, com suporte a multithreading em CPU e GPUs CUDA.
Um profiler para Python que mostra o uso de CPU, GPU e memória por linha e pode gerar sugestões de otimização com IA.
Servidor de inferência de LLM em C++ para GPUs de consumo e máquinas com AMD e NVIDIA, usando speculative decoding, speculative prefill e kernels personalizados.
Biblioteca de arrays compatível com NumPy/SciPy que executa código Python existente em GPUs NVIDIA CUDA ou AMD ROCm.
Biblioteca de templates CUDA C++ e DSL em Python para criar kernels GEMM e de álgebra linear relacionados, de alto desempenho, em GPUs NVIDIA.