Partie 5 · L'écosystème¶
Neuf façons d'écrire un noyau GPU en 2026, et la question qui compte vraiment : laquelle choisir pour quoi.
Le gradient¶
productivité ↑ contrôle ↓
─────────────────────────────────────────────────────────────────
torch.compile → Helion → Triton → Gluon/TLX → CuTe DSL →
→ CUTLASS C++ / ThunderKittens → CUDA C++ → PTX → SASS
La règle : descendez d'un cran uniquement quand le profileur vous dit pourquoi. Chaque cran multiplie le temps de développement par trois ou quatre, pour un gain qui décroît.
Ce que vous allez apprendre¶
- Le tableau de décision : quel outil pour quel problème.
- Triton en profondeur, parce que c'est le point d'entrée réaliste de la plupart des gens.
- Ce que sont CUTLASS, CuTe et le CuTe DSL, et pourquoi FlashAttention-4 est écrit dedans.
- ThunderKittens, Helion, Mojo : les alternatives et leurs arguments.
- L'état réel de HIP/ROCm en 2026.
- La famille portable : SYCL, OpenCL, Vulkan, WebGPU, Metal — et le prix de la portabilité, mesuré.
Ordre de lecture¶
Le chapitre 1 est obligatoire. Les autres se lisent à la carte, selon vos cibles.
1 · Panorama des langages¶
Le tableau de décision, les critères, et une recommandation argumentée par profil.
2 · Triton et Gluon¶
Le modèle de tuiles, la syntaxe, ce que le compilateur fait pour vous, et Gluon — la couche basse qu'OpenAI a dû ajouter.
3 · CUTLASS et CuTe DSL¶
L'algèbre de layouts de CuTe, la structure de CUTLASS, et le passage en Python avec CUTLASS 4.x.
4 · ThunderKittens¶
Les tuiles 16×16 comme type de base. La bibliothèque avec laquelle les megakernels de Stanford ont été écrits.
5 · Helion et torch.compile¶
Le haut du gradient : ce que torch.compile fusionne tout seul, et le DSL de
Meta qui compile vers Triton.
6 · Mojo¶
Le pari de Modular : un langage unique du système au noyau.
7 · Les bibliothèques NVIDIA¶
cuBLAS, cuDNN, CUB/Thrust, cuFFT, cuSPARSE, cuSOLVER, RAPIDS, NCCL, NVSHMEM. Ce qu'il ne faut jamais réécrire.
8 · AMD, HIP et ROCm¶
L'état réel en 2026 : ce qui marche, ce qui ne marche pas, et comment porter.
9 · Portable : SYCL, OpenCL, Vulkan, WebGPU, Metal¶
Les options multi-fournisseurs, leurs domaines de pertinence, et le coût mesuré de la portabilité.
Le tableau court¶
Si vous ne lisez qu'une chose de cette partie :
| Votre situation | L'outil |
|---|---|
| Modèle PyTorch trop lent | torch.compile d'abord |
| Fusion élémentaire, softmax, normalisation | Triton |
| Attention custom, forme inhabituelle | Triton, puis ThunderKittens |
| GEMM de pointe | CUTLASS / CuTe DSL — n'écrivez pas la vôtre |
| Megakernel | CUDA C++ + ThunderKittens |
| Calcul scientifique multi-fournisseur | SYCL ou Kokkos |
| Cible AMD uniquement | HIP (ou Triton, qui a un back-end ROCm) |
| Navigateur | WebGPU / WGSL |
| Apple | Metal ou MLX |
| Un seul langage du système au noyau | Mojo |
Ce paysage bouge vite
Cette partie décrit l'état d'août 2026. Deux repères de calendrier : le CuTe DSL est en bêta publique et doit en sortir « d'ici la fin de l'été 2026 » ; Helion est passé en bêta publique lors de la PyTorch Conference 2025. Vérifiez les versions avant de bâtir dessus.