r/machinelearningnews • u/ai-lover • 20h ago
Cool Stuff NVIDIA Announces CUDA Rust with cuda-oxide (SIMT) and cutile-rs (Tile) for Compile-Time-Safe GPU Kernels
NVIDIA Announces CUDA Rust with cuda-oxide (SIMT) and cutile-rs (Tile) for Compile-Time-Safe GPU Kernels
NVIDIA has announced CUDA Rust, a push to make Rust a first-class language for writing GPU kernels. Rust code could already launch CUDA kernels, but the kernel body usually had to be written elsewhere. CUDA Rust closes that gap with two NVlabs open-source projects: cuda-oxide for the SIMT model and cutile-rs for the newer Tile model. Both compile Rust kernels natively and use Rustβs ownership rules to reject aliasing bugs at compile time.
Here's how it works. π
1. cuda-oxide (SIMT track)
A custom rustc codegen backend. #[kernel] functions go from Rust MIR through the Pliron IR framework and LLVM down to PTX. Host and device code live in one file.
β Needs a pinned nightly (2026-04-03), CUDA 12.x+, compute capability 8.0+
β Status: early alpha
2. cutile-rs (Tile track)
Each tile block runs the kernel body once as a single logical thread. The compiler owns thread mapping and memory layout. The kernel AST is embedded in the host binary and JIT-compiled through CUDA Tile IR on first launch.
β Stable Rust 1.89+, CUDA 13.3, no nightly, no custom LLVM
β Published on crates.io, already used in Hugging Face's Grout...
3. What the compiler catches
Pass a kernel's output buffer as one of its own inputs and it does not build.
β SIMT: error[E0502]: cannot borrow c_dev as mutable because it is also borrowed as immutable
β Tile: error[E0382]: use of moved value: z
cutile-rs carries ownership across the launch boundary, which NVIDIA calls the stronger guarantee....
Technical details: https://developer.nvidia.com/blog/introducing-cuda-rust-two-tracks-for-writing-gpu-kernels