Herdr UI
Herdr의 TUI가 뛰어나며, 창을 통해 추가되는 기능
NVIDIA CUDA를 Rust에 적용한 플랫폼으로 호스트 런타임 크레이트와 Tile·SIMT 커널 모델을 제공합니다
NVIDIA's CUDA platform for Rust. Host runtime crates plus Tile (cutile-rs) and SIMT (cuda-oxide) kernel programming models in idiomatic Rust.
개발 도구Rust · PythonGitHub @NVIDIA직접 설치운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗CUDA Rust is NVIDIA's CUDA platform for Rust. It provides host-side crates for working with the CUDA driver and device-side crates and tools for writing GPU kernels in idiomatic Rust.
cuda-bindings, cuda-core
(with cuda-core-derive), and cuda-async
provide a shared runtime: driver bindings, contexts, streams, device buffers,
events, and lazy, composable device operations.Both kernel programming models extend Rust's ownership rules across the GPU launch boundary: mutable buffers are partitioned into disjoint pieces before launch, immutable buffers are shared, and launchers keep those borrows alive while GPU work is in flight.
CUDA Rust is an early-stage research project. Expect bugs, incomplete features, and API breakage. That said, we hope you'll try it in your own work and help shape its direction by sharing feedback on your experience.
| cuda-oxide (SIMT) | cutile-rs (Tile) | |
|---|---|---|
| Feels familiar to | CUDA C++ programmers: threads, blocks, shared memory | NumPy or PyTorch programmers: ndarray / tensor operations on multi-dimensional tiles |
| Safety | Data-race freedom for disjoint slice accesses; you control thread synchronization and shared memory | Data-race freedom by construction within a kernel: no explicit thread indexing, shared memory, or synchronization |
| Indexing | Explicit thread/block indices | Implicit via partitions |
| Compiles | Ahead of time, Rust → PTX | JIT at first launch, Rust → Tile IR → cubin |
| Toolchain | Pinned stable Rust (1.99.1), managed by cargo oxide | Stable Rust 1.89 or newer |
| Portability | Produces PTX that the driver compiles for compatible GPUs; you control tuning per GPU | CUDA architecture-agnostic; the compiler tunes per GPU |
| Reach for it when | You need direct control over threads, warps, shared memory, TMA, or cluster ops | Your problem is naturally expressed as tensor computations and you want the compiler to handle scheduling details |
Choose between Tile and SIMT based on each kernel's requirements. Tile can simplify development when its abstractions fit the workload, while SIMT provides direct control over individual threads. An application can use both.
Here are some recommendations that may evolve as CUDA Rust matures:
Kernels from both models interoperate: a cutile-rs Tile kernel and a cuda-oxide SIMT kernel can run on the same stream over shared device buffers.
cuda-rust/
├── cuda-bindings/ runtime — CUDA driver API bindings
├── cuda-core/ runtime — contexts, streams, memory, modules, events, launch
├── cuda-core-derive/ runtime — derive macros for cuda-core
├── cuda-async/ runtime — lazy ops, futures, streams, graphs
├── cuda-oxide/ SIMT model — compiler, device crates, cuda-oxide-book
└── cutile-rs/ Tile model — compiler, tile crates, cutile-book
Start with the CUDA Rust docs. cutile-rs and cuda-oxide each have a book with installation instructions, guides, and reference material. The runtime crates (cuda-bindings, cuda-core, cuda-async) are documented in the cutile-rs book.
See CONTRIBUTING.md for commit sign-off requirements, pull requests, and CI. Both components build on stable Rust and pin their toolchains in their respective rust-toolchain.toml files (with rustc-dev and llvm-tools for cuda-oxide, managed via cargo oxide); each book covers its own setup.
CUDA Rust is licensed under the Apache License 2.0. The root
LICENSE covers the whole repository: cuda-oxide, cutile-rs, and the shared
host crates. Every published crate declares license = "Apache-2.0".
Third-party attributions are listed in
cuda-oxide/THIRD_PARTY_NOTICES.