Aller au contenu

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.