CUDA Rust umfasst die Projekte cuda-oxide und cutile-rs, die die CUDA-Modelle SIMT und Tile nach Rust bringen. Produktionsreif ist noch keines der beiden Projekte aus der neuen Toolchain, Nvidia ruft Entwicklerinnen und Entwickler aber ausdrücklich zum Ausprobieren auf.

Das im frühen Alpha-Stadium steckende Projekt cuda-oxide nutzt das von CUDA C++ und numba-cuda bekannte SIMT-Modell (Single Instruction, Multiple Threads), ist ein eigenes rustc-Codegen-Backend und übersetzt die GPU-Kernel nativ nach PTX. Bei cutile-rs (cuTile Rust) beschreiben Entwickler dagegen Operationen auf Tiles statt auf Skalaren, während der Compiler über Thread-Mapping und Speicherlayout entscheidet.

cuda-oxide und cutile-rs erzwingen jeweils Speichersicherheit zur Compile-Zeit. Während cuda-oxide Aliasing mit DisjointSlice und Launch-Contracts verhindert, garantiert cutile-rs über Tensor-Partitionierung und Ownership dem jeweiligen Tile-Block exklusiven Schreibzugriff.

Nvidia empfiehlt cutile-rs

Rust-Programmierern empfiehlt Nvidia in seinem Blogbeitrag, nur dann zu cuda-oxide zu greifen, wenn sie Threads und Speicher selbst verwalten wollen. Bei cutile-rs braucht es dagegen keine architekturspezifischen Entscheidungen im Quellcode. Für das Tile-Projekt spricht außerdem der höhere Reifegrad. cutile-rs ist bereits auf crates.io veröffentlicht und bei der Inferenz-Engine Grout von Hugging Face sowie bei mistral.rs im Einsatz.