HeadlinesBriefing favicon HeadlinesBriefing.com

CUDA Rust : deux voies pour les kernels GPU

Hacker News •
×

En septembre 2026, NVIDIA a annoncé qu'il s'engageait résolument dans la programmation GPU native en Rust. CUDA C++ et CUDA Python sont des chaînes d'outils matures de niveau entreprise, et NVIDIA développera et fera mûrir CUDA Rust jusqu'en 2027 et au-delà. La couche systèmes de l'IA englobe les moteurs d'inférence, l'infrastructure de service, les pilotes et les runtimes d'agents, et elle change constamment. Une part croissante de celle-ci est écrite en Rust. NVIDIA fait partie de ce changement. Le pilote Nova Linux est écrit en Rust. NVIDIA Dynamo est construit sur un cœur Rust. NVTX dispose de liaisons Rust.

Le kernel GPU est l'exception. Vous pouvez lancer des kernels depuis Rust, mais le kernel lui-même doit souvent être écrit dans un autre langage. NVIDIA CUDA Rust comble cet écart. Les kernels GPU peuvent être écrits en Rust, compilés nativement en PTX, plutôt que d'être un wrapper autour de code venant d'ailleurs.

Il existe deux voies pour utiliser Rust, correspondant aux deux voies que CUDA possède lui-même. SIMT est le modèle que vous écrivez déjà en CUDA C++ ou numba-cuda. Tile est un modèle de programmation plus récent, également disponible en C++ et Python. Lorsque vous en choisissez un sur lequel bâtir, privilégiez d'abord Tile. Le compilateur décide comment les tiles sont mappés sur chaque architecture, de sorte que votre source n'encode pas de choix spécifiques à l'architecture, et vous redescendez vers SIMT lorsque vous avez besoin de ce contrôle.

Ci-dessous se trouve le même kernel sur chaque voie, qui effectue une addition élément par élément sur 1 024 flottants. La voie SIMT : cuda-oxide est un backend de génération de code rustc personnalisé. Il intercepte la compilation, achemine les fonctions #[kernel] via Rust MIR, le framework communautaire Pliron IR et LLVM IR jusqu'à PTX.

Entités clés : Entreprises : NVIDIA, NVlabs

FAQ : Quelle est la différence entre SIMT et Tile dans CUDA Rust ?

SIMT est le modèle que vous écrivez déjà en CUDA C++ ou numba-cuda. Tile est un modèle de programmation plus récent, également disponible en C++ et Python. Lorsque vous en choisissez un sur lequel bâtir, privilégiez d'abord Tile. Le compilateur décide comment les tiles sont mappés sur chaque architecture, de sorte que votre source n'encode pas de choix spécifiques à l'architecture, et vous redescendez vers SIMT lorsque vous avez besoin de ce contrôle.

Question FAQ : Quelle est la différence entre SIMT et Tile dans CUDA Rust ?

Réponse FAQ : SIMT est le modèle que vous écrivez déjà en CUDA C++ ou numba-cuda. Tile est un modèle de programmation plus récent, également disponible en C++ et Python. Lorsque vous en choisissez un sur lequel bâtir, privilégiez d'abord Tile. Le compilateur décide comment les tiles sont mappés sur chaque architecture, de sorte que votre source n'encode pas de choix spécifiques à l'architecture, et vous redescendez vers SIMT lorsque vous avez besoin de ce contrôle.