Repolode
NVIDIA

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

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

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.

Backend e APIs#concurrent-programming#multithreading#parallel-computing
12,2 mil+8 esta semana1,4 milC++OtherAtualizado há 22 dias