On Sept. 8, Nvidia’s developer blog published “Introducing CUDA Rust: Two Tracks for Writing GPU Kernels,” by Sri Koundinyan, Melih Elibol and Jonathan Bentz. Within a week the Hacker News thread had 874 points and 345 comments, most of them arguing over whether the CUDA moat had finally cracked.

Both camps are arguing about the wrong layer. The tell is right there in the title: two tracks. Nvidia is not offering one thing with two interfaces. It is offering a product and an alibi, and the difference between them is a compiler toolchain.

cutile-rs Ships. cuda-oxide Waits.

cutile-rs, the tile-model track, is published on crates.io, targets stable Rust 1.89 or later, and is already running in code Nvidia does not own — Hugging Face’s Grout and mistral.rs. cuda-oxide, the SIMT track, the one that compiles Rust’s MIR through LLVM to PTX and would let you write something recognizable as a CUDA kernel in a language you would actually choose, requires a pinned nightly toolchain and is, by Nvidia’s own description, early alpha.

One of those is a shipping artifact with outside users. The other is a research preview that needs a compiler no serious team will standardize on. Nvidia says it will mature both into 2027 and beyond. In September it has shipped one and a half.

It should surprise no one which of them speaks CUDA Tile IR.

“Architectural Portability” Is Carrying a Lot of Weight

Nvidia’s earlier CUDA Tile work — the CUDA Tile IR backend for OpenAI Triton, posted to its developer blog in February, plus cuTile.jl for Julia in March — repeats a phrase worth reading slowly: architectural portability. Tiled code, the argument goes, divides data into blocks, survives a hardware generation, and gets lowered by an MLIR-based compiler to PTX with native Tensor Core support.

That is portability across Nvidia’s own generations. It is not portability across vendors, and nobody at Nvidia has pretended otherwise. What Nvidia has done is volunteer to be the backend for the abstraction layer everyone else is converging on. Triton, Julia, Rust — the shared vocabulary is being standardized, and it lowers to Nvidia’s intermediate representation. That is not a moat being breached. That is a moat being relocated, from the C++ dialect competitors have spent a decade chipping at, to an IR where almost nobody fields a competing compiler.

“Two tracks is one product and one recruiting brochure,” said an engineer at a mid-size inference company, waiting in the hallway outside the RustConf session in Montréal — Elibol’s “Fearless Concurrency on the GPU,” Sept. 8 to 11 — with a carry-on already packed for the flight home.

Rust Earned This. It Did Not Earn What You Think.

Here is the part that should make Rust’s loudest supporters shift in their seats. Ownership-based aliasing checks are real, and catching an aliasing bug at compile time rather than at 3 a.m. is a genuine gain. Nvidia’s post presents that compile-time aliasing detection as a headline benefit of both tracks, and the claim is true as far as it goes.

But production GPU code rarely dies of aliasing. It dies of performance cliffs, numerics that drift, and reductions that are silently wrong — failure modes Rust’s type system was never designed to catch. Rust became the default in browsers and operating-system kernels by making the dominant failure mode structurally impossible. On a tensor core, the dominant failure mode is a different animal. Nobody buying a GPU hour cares that your kernel is memory-safe if it runs at half the throughput.

Which is the other half of the two-track problem. Read the post as a Rust developer and ask what you have been offered. The supported path leads into an abstraction level whose semantics Nvidia defines. The unsupported path leads toward the low-level control you actually wanted, gated behind a nightly compiler and a warning label. That is not a gift. It is a sorting mechanism, and it is working.

Nobody Made Them Do This

Note what is absent from the Sept. 8 announcement: any regulator. No deadline, no mandate, no consent decree, no rulemaking. Nvidia holds better than 90 percent of the data-center GPU market, per recent coverage in The Motley Fool, and it is not fending off an assault on its toolchain. It is changing dialects because the developers it needs to hire and keep asked it to.

That should bother anyone whose theory of corporate behavior requires a government to move first. It should equally bother anyone whose theory requires every technical decision out of a large company to be compliance theater in a lab coat. Neither reflex survives contact with this blog post. The memory-safety argument in Washington proceeds as though the world’s consequential code were sitting around waiting for permission to change languages. It changed by itself, on developer demand, and nobody wrote a rule about it.

The thing to watch is not whether Rust stays on the GPU. It is whether cuda-oxide leaves the nightly toolchain. If, in 2027, writing a real kernel in Rust still means pinning a compiler version that expires in six weeks, then “two tracks” was never a product strategy. It was a hedge with a conference talk attached.

Sources