// HEISE ONLINE — HARDWARE & GADGET
Nvidia CUDA Rust: Native GPU-Kernel in Rust schreiben
GPU-Kernel ließen sich bislang aus Rust starten, aber man konnte damit nicht schreiben. Nvidia schließt diese Lücke nun mit CUDA Rust.
This article is also available in
English.
It was translated with technical assistance and editorially reviewed before publication.
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.
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.
Beide Rust-Projekte setzen neben Linux eine GPU ab Compute Capability 8.0 voraus, cuda-oxide erfordert zusätzlich mindestens CUDA 12.x, clang samt libclang-Headern und eine festgelegte Nightly-Toolchain. Das benötigte LLVM bringt die Toolchain mit, alternativ lässt sich eine im System installierte Version ab LLVM 21 verwenden. Wer auf diese Abhängigkeiten verzichten möchte, ist mit cutile-rs besser bedient: Es braucht weder Nightly-Rust noch eine eigene System-LLVM und läuft mit einem stabilen Rust ab Version 1.89 und CUDA 13.3.
montags und donnerstags - alles von heise developer
Ausführliche Informationen zum Versandverfahren und zu Ihren
Widerrufsmöglichkeiten erhalten Sie in unserer
Datenschutzerklärung.
Immer informiert bleiben: Klicken Sie auf das Plus-Symbol an einem Thema, um diesem zu folgen. Wir zeigen Ihnen alle neuen Inhalte zu Ihren Themen.
Mehr erfahren.