{"slug": "nvidia-announces-cuda-rust-with-cuda-oxide-simt-and-cutile-rs-tile-for-compile", "title": "NVIDIA Announces CUDA Rust with cuda-oxide (SIMT) and cutile-rs (Tile) for Compile-Time-Safe GPU Kernels", "summary": "NVIDIA announced CUDA Rust, a two-track initiative to make Rust a first-class language for writing GPU kernels, with NVlabs open-source projects cuda-oxide for the SIMT model and cutile-rs for the Tile model, both compiling Rust kernels natively and using Rust's ownership rules to reject aliasing bugs at compile time. cutile-rs is published on crates.io, runs on stable Rust 1.89+, and is already used in Hugging Face's Grout inference engine and mistral.rs, while cuda-oxide is early alpha and requires a pinned nightly toolchain. The projects are in alpha and not confirmed for production.", "body_md": "NVIDIA has [announced CUDA Rust](https://developer.nvidia.com/blog/introducing-cuda-rust-two-tracks-for-writing-gpu-kernels/), 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](https://github.com/NVlabs/cuda-oxide) for the SIMT model and [cutile-rs](https://github.com/NVlabs/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. \n\n**Is it deployable?** Partially. cutile-rs is [published on crates.io](https://crates.io/crates/cutile), runs on stable Rust 1.89+, and is already used in Hugging Face’s [Grout](https://github.com/huggingface/grout) inference engine and in [mistral.rs](https://github.com/EricLBuehler/mistral.rs). cuda-oxide is early alpha. The both projects are in alpha phase and not confirmed for production.\n\n## **Why Rust for the GPU Kernel**\n\nThe systems layer of AI, from inference engines to drivers and agent runtimes, is increasingly written in Rust. NVIDIA’s Nova Linux driver is in Rust, [NVIDIA Dynamo](https://www.nvidia.com/en-us/ai/dynamo/) has a Rust core, and NVTX has Rust bindings. The GPU kernel was the exception.\n\nThe two tracks mirror the two programming models CUDA already offers. **SIMT** is the model used in CUDA C++ and [numba-cuda](https://nvidia.github.io/numba-cuda/): you describe what one thread does and launch thousands of them. **Tile** is the newer model, also available in [C++](https://docs.nvidia.com/cuda/cuda-tile-cpp-api-reference/) and [Python](https://docs.nvidia.com/cuda/cutile-python/): you describe what one tile of data does, and the [Tile IR compiler](https://docs.nvidia.com/cuda/tile-ir/latest/index.html) handles thread mapping and memory layout. NVIDIA recommends Tile first, with SIMT for explicit thread and memory control. Planned inter-language interop means choosing Rust will not lock developers out of C++ or Python.\n\n## **The SIMT Track: cuda-oxide**\n\ncuda-oxide is a custom `rustc` codegen backend. It routes `#[kernel]` functions through Rust MIR, the community [Pliron](https://github.com/pliron-org/pliron) IR framework, and LLVM IR down to PTX, then hands everything else to the standard backend. NVIDIA wrote the GPU dialects on top of Pliron.\n\nRequirements: Linux, a GPU with compute capability 8.0 or later, CUDA 12.x or newer, clang with libclang, and a pinned nightly toolchain (`nightly-2026-04-03`). `cargo oxide doctor` checks the setup and `cargo oxide new` scaffolds a vector addition program, with host and device code in one file.\n\nThe safety argument sits in the kernel signature. Inputs `a` and `b` are ordinary shared slices. The output `c` is a `DisjointSlice<f32>`, a type that gives each thread exclusive access to its own element. A plain `&mut [f32]` would need every thread to hold the same mutable borrow, which Rust refuses. `c.get_mut(idx)` returns an `Option`, so out-of-bounds access becomes a handled branch. A `#[launch_contract]` attribute declares the block shape, and the generated `prepare_vecadd` method validates the launch configuration against it before the safe launch runs.\n\n## **The Tile Track: cutile-rs**\n\ncutile-rs works one level higher. Each tile block runs the kernel body once as a single logical thread over one sub-tensor, and the compiler decides how many real GPU threads back it. The `#[cutile::module]` macro embeds the kernel’s AST in the host binary and JIT-compiles it through CUDA Tile IR when the kernel is first launched.\n\nRequirements are lighter: compute capability 8.0 or later, CUDA 13.3, stable Rust 1.89 or newer, and Linux, with no nightly and no custom LLVM. Setup is `cargo new`, then `cargo add cutile`.\n\nThe host-side `.partition([128])` call does 3 jobs. It gives each tile exclusive ownership of its 128-element chunk, fixes the grid at 1,024 / 128 = 8 tiles, and supplies the const tile width `B`. Input tensors use `-1` as a dynamic dimension resolved at launch. The generated launcher takes ownership of all tensors and returns them when the GPU finishes. Nothing executes until `.sync_on(&stream)`; everything before it is a lazy description recorded in one chain.\n\n## **What the Compiler Catches**\n\nPassing the SIMT kernel’s output buffer as one of its own inputs fails with `error[E0502]: cannot borrow c_dev as mutable because it is also borrowed as immutable`. The same aliasing on the Tile side fails with `error[E0382]: use of moved value: z`. cuda-oxide checks each launch call; cutile-rs’s ownership follows tensors across the launch boundary, which NVIDIA calls the stronger guarantee.\n\nTile exposes no shared memory or thread indexing to misuse. SIMT keeps that control, but shared memory in cuda-oxide currently requires `unsafe`.\n\n## **Key Takeaways**\n\n- CUDA Rust adds 2 native GPU kernel tracks in Rust: cuda-oxide (SIMT) and cutile-rs (Tile).\n- cuda-oxide compiles Rust MIR through Pliron and LLVM to PTX; it needs a pinned nightly.\n- cutile-rs runs on stable Rust 1.89+ with CUDA 13.3 and JIT-compiles via CUDA Tile IR.\n- Both reject buffer aliasing at compile time using Rust’s borrow checker and ownership.\n- cutile-rs already powers Grout and mistral.rs; neither project is production-ready yet.\n\nCheck out the **[Technical details here](https://developer.nvidia.com/blog/introducing-cuda-rust-two-tracks-for-writing-gpu-kernels?)**. Also, feel free to follow us on **[Twitter](https://x.com/intent/follow?screen_name=marktechpost)** and don’t forget to join our **[150k+ML SubReddit](https://www.reddit.com/r/machinelearningnews/)** and Subscribe to **[our Newsletter](https://magic.beehiiv.com/v1/f5e63dd4-5653-4f09-83e2-321a8b1ba526?email={{email}})**. Wait! are you on telegram? [now you can join us on telegram as well.](https://t.me/machinelearningresearchnews)\n\nNeed to partner with us for promoting your GitHub Repo OR Hugging Face Page OR Product Release OR Webinar etc.? [Connect with us](https://forms.gle/wbash1wF6efRj8G58)\n\nAsif Razzaq is the CEO of Marktechpost Media Inc.. As a visionary entrepreneur and engineer, Asif is committed to harnessing the potential of Artificial Intelligence for social good. His most recent endeavor is the launch of an Artificial Intelligence Media Platform, Marktechpost, which stands out for its in-depth coverage of machine learning and deep learning news that is both technically sound and easily understandable by a wide audience. The platform boasts of over 2 million monthly views, illustrating its popularity among audiences.", "url": "https://wpnews.pro/news/nvidia-announces-cuda-rust-with-cuda-oxide-simt-and-cutile-rs-tile-for-compile", "canonical_source": "https://www.marktechpost.com/2026/09/08/nvidia-announces-cuda-rust-with-cuda-oxide-simt-and-cutile-rs-tile-for-compile-time-safe-gpu-kernels/", "published_at": "2026-09-08 19:51:54+00:00", "updated_at": "2026-09-08 20:25:43.127515+00:00", "lang": "en", "topics": ["developer-tools", "ai-infrastructure"], "entities": ["NVIDIA", "NVlabs", "cuda-oxide", "cutile-rs", "Hugging Face", "Grout", "mistral.rs", "Pliron"], "alternates": {"html": "https://wpnews.pro/news/nvidia-announces-cuda-rust-with-cuda-oxide-simt-and-cutile-rs-tile-for-compile", "markdown": "https://wpnews.pro/news/nvidia-announces-cuda-rust-with-cuda-oxide-simt-and-cutile-rs-tile-for-compile.md", "text": "https://wpnews.pro/news/nvidia-announces-cuda-rust-with-cuda-oxide-simt-and-cutile-rs-tile-for-compile.txt", "jsonld": "https://wpnews.pro/news/nvidia-announces-cuda-rust-with-cuda-oxide-simt-and-cutile-rs-tile-for-compile.jsonld"}}