NVIDIA is delivering native GPU-kernel programming for Rust through two parallel tracks that map to existing CUDA models: a SIMT track for thread-centric kernels and a Tile track for higher-level, compiler-managed tiles. The push addresses a gap where Rust could launch kernels but not express kernel bodies natively, and it leans on Rust’s compile-time safety to reduce classes of bugs in the systems layer. NVIDIA recommends starting with Tile because the Tile compiler maps tiles to hardware automatically, letting a single source avoid architecture-specific choices; developers can drop to SIMT when they need explicit thread and memory control. Inter-language interoperability with CUDA C++ and CUDA Python is planned so choosing Rust won’t lock projects out of other toolchains.
The SIMT track, cuda-oxide, implements a custom rustc codegen backend that routes kernel functions through Rust MIR into the Pliron IR and LLVM to emit PTX. It enforces memory-safety primitives (DisjointSlice, launch_contract) and checked launches, but requires Linux, compute capability 8.0+, CUDA 12+, clang/libclang, and a pinned nightly Rust toolchain driven by cargo-oxide. The Tile track, cutile-rs, captures tile kernels in the host binary and JIT-compiles them via the CUDA Tile IR, runs on stable Rust 1.89+ with CUDA 13.3, is available on crates.io, and uses tensor partitioning and ownership to guarantee exclusive access. Both tracks include complete examples (elementwise vector add) showing host+device in one file and safe launch/partition workflows.
Summary generated by AI from the linked article. hn.today is not affiliated with Hacker News or Y Combinator.