NVIDIAElizabeth GoodmanAnnouncement
Introducing CUDA Rust: Two Tracks for Writing GPU Kernels
Summary
NVIDIA’s CUDA Rust effort targets the GPU-kernel gap in Rust-based systems, where host code can be Rust but kernels often require another language. It presents two tracks: cuda-oxide compiles #[kernel] functions through Rust MIR, Pliron, and LLVM IR to PTX for SIMT programming, while cutile-rs expresses computations as tiles and JIT-compiles embedded ASTs through CUDA Tile IR. The SIMT example uses DisjointSlice, typed thread indices, and launch contracts to constrain per-thread output access and validate launch configuration; Tile leaves thread mapping and shared-memory management to its compiler. The post recommends starting with Tile because the compiler decides tile mapping per architecture, and using SIMT when explicit thread or memory control is needed. Both projects are early-stage, with cuda-oxide in early alpha and cutile-rs further along but still incomplete and subject to API changes.
Context
Rust can launch GPU kernels, but the kernel itself often has to be written in another language. The work addresses that gap as more systems-layer AI software is written in Rust and seeks compile-time protection for GPU memory access and concurrency.
Approach / What changed
CUDA Rust offers two Rust-native kernel tracks. cuda-oxide uses a custom rustc codegen backend that routes kernel functions through Rust MIR, Pliron, and LLVM IR to PTX for SIMT execution. cutile-rs embeds a kernel module’s AST and JIT-compiles it through CUDA Tile IR, letting the compiler determine the mapping of tiles to GPU threads.
Takeaways
cuda-oxide uses DisjointSlice, typed thread indices, and launch contracts to make per-thread output access and launch configuration checks explicit; its shared-memory path currently requires unsafe code.
cutile-rs treats each tile block as one logical thread and lets the compiler manage real thread mapping and shared memory, trading away the explicit control available in SIMT programming.
Both projects are early-stage: cuda-oxide is described as early alpha, while cutile-rs is published and used outside NVIDIA but still has incomplete coverage and moving APIs.
Source and freshness
- Source
- developer.nvidia.com
- Published
- Added to Yomu
Summaries are generated from the original by a language model. Check the original before relying on it.
Keep reading
Related reading
The Good Stuff
Paid picks we use ourselves. Links carry a referral code — a subscription through one earns us a commission at no extra cost to you.
The best engineering reads, once a week
One useful email. Unsubscribe anytime.