Nvidia hat CUDA Rust angekündigt, eine neue Toolchain, die es Entwicklern ermöglicht, native GPU-Kernel direkt in Rust zu schreiben — eine Fähigkeit, die es zuvor nicht gab. Bisher konnte Rust über bestehende CUDA-Bindings GPU-Kernel starten, aber Entwickler konnten die Kernel selbst nicht in Rust schreiben. CUDA Rust schließt diese Lücke.

Die Initiative umfasst zwei Projekte, die jeweils einen anderen Ansatz für Rust-natives GPU-Programmieren verfolgen. cuda-oxide, das als frühes Alpha-Stadium beschrieben wird, implementiert das vertraute SIMT-Modell (Single Instruction, Multiple Thread), das von CUDA C++ und numba-cuda verwendet wird. Es ist ein eigenes rustc-Codegen-Backend, das GPU-Kernel nativ nach PTX übersetzt.

cutile-rs (cuTile Rust) verfolgt einen höherstufigen Ansatz, bei dem Entwickler Operationen auf Tiles statt auf einzelnen Skalaren beschreiben, während der Compiler Thread-Mapping und Speicherlayout entscheidet. Nvidia empfiehlt cutile-rs als bevorzugten Weg für die meisten Entwickler, da es keine architekturspezifischen Entscheidungen im Quellcode erfordert.

Beide Projekte erzwingen Speichersicherheit zur Compile-Zeit — ein erheblicher Vorteil gegenüber CUDA C++, wo Speicherfehler schwer zu erkennen und in GPU-Kontexten gefährlich sein können. cuda-oxide verhindert Aliasing über DisjointSlice und Launch-Contracts, während cutile-rs Tensor-Partitionierung und Ownership verwendet, um exklusiven Schreibzugriff pro Tile-Block zu garantieren.

cutile-rs ist das reifere der beiden Projekte. Es ist bereits auf crates.io veröffentlicht und wird bei zwei bemerkenswerten Inferenz-Engines eingesetzt: Hugging Faces Grout und Mistral AIs mistral.rs. Es läuft mit stabilem Rust ab Version 1.89 und erfordert CUDA 13.3, aber weder nightly-Toolchain noch System-LLVM.

cuda-oxide erfordert mehr Toolchain-Infrastruktur — CUDA 12.x, clang mit libclang-Headern und eine bestimmte nightly-Rust-Toolchain — und wird hauptsächlich für Entwickler empfohlen, die explizite Kontrolle über Threads und Speicher wünschen.