1 · Livres et cours¶
Ce qui se lit sur des semaines.
1.1 Les livres¶
Programming Massively Parallel Processors: A Hands-on Approach¶
Wen-mei W. Hwu, David B. Kirk, Izzat El Hajj — 5e édition, publiée le 27 février 2026, Elsevier/Morgan Kaufmann.
C'est le manuel du domaine. Il couvre les concepts fondamentaux de la programmation parallèle et de l'architecture GPU, avec des techniques d'optimisation détaillées et des études de cas allant de la pensée computationnelle au programme parallèle efficace.
La 5e édition ajoute des chapitres sur les algorithmes de front d'onde, l'API multi-GPU et les optimisations avancées de la multiplication matricielle, ainsi qu'une couverture élargie du parcours de graphes et de l'apprentissage profond.
| Public | débutant à intermédiaire |
| Prérequis | C ou C++ |
| Ce qu'on y trouve | le modèle CUDA complet, les motifs (réduction, scan, histogramme, convolution, tri), les études de cas |
| Ce qu'on n'y trouve pas | TMA, wgmma, tcgen05 en profondeur ; les megakernels |
| ISBN | 978-0-443-43900-1 |
Le conseil de lecture
Lisez les chapitres 1 à 6 en parallèle des parties 1 à 3 de ce document, puis piochez selon vos besoins. Les chapitres sur les motifs parallèles (réduction, scan, convolution) sont les meilleurs qui existent sur le sujet.
Les éditions antérieures (3e et 4e) restent excellentes pour les principes ; seul le matériel décrit vieillit.
Modern GPU Programming for MLSys¶
Communauté MLC, issu de la série de cours Machine Learning Systems de Carnegie Mellon. En accès libre sur mlc.ai.
C'est probablement la meilleure ressource actuelle sur le GPU moderne. Elle cible explicitement Blackwell et progresse « du matériel au modèle de programmation jusqu'aux noyaux complets », avec des exemples exécutables dans le DSL Python TIRx.
Son sommaire :
Partie I — Comprendre le GPU
· Modèle d'exécution GPU
· Ce qui rend un noyau rapide
· Disposition des données et sa notation
· L'évolution des dispositions de tensor cores
· Mouvement asynchrone : TMA
· Tensor core Blackwell : tcgen05.mma
· Tensor Memory (TMEM)
· Coordination asynchrone : mbarrier
· Ordonnancement avancé : Cluster Launch Control
Partie II — TIRx
Partie III — GEMM : du pavage à l'état de l'art
Partie IV — FlashAttention 4
Annexes — référence du langage, mesure de performance, internes du
compilateur, débogage des noyaux warp-specialized
| Public | intermédiaire à avancé |
| Prérequis | CUDA de base |
| Ce qu'on y trouve | tout le CUDA moderne, expliqué et exécutable |
| Coût | gratuit |
C'est le complément naturel de la partie 4 de ce document.
CUDA by Example¶
Jason Sanders, Edward Kandrot, Addison-Wesley, 2010.
Ancien, et toujours le meilleur livre pour les cent premières pages : très progressif, avec des exemples courts. Le matériel décrit est obsolète.
À emprunter, pas à acheter.
The CUDA Handbook¶
Nicholas Wilt, Addison-Wesley, 2013.
Beaucoup plus détaillé sur les mécanismes du pilote, la gestion mémoire, les flux et les contextes. Excellent pour comprendre comment CUDA fonctionne au niveau système. Là aussi, le matériel décrit est daté.
Professional CUDA C Programming¶
John Cheng, Max Grossman, Ty McKercher, Wrox, 2014.
Bon niveau intermédiaire, avec beaucoup d'exercices de profilage.
1.2 Les documentations normatives¶
Ce sont les sources de vérité. Elles ne se lisent pas linéairement mais se consultent constamment.
| Document | Ce qu'on y cherche |
|---|---|
| CUDA C++ Programming Guide | le modèle, les APIs, les compute capabilities, le modèle mémoire |
| CUDA C++ Best Practices Guide | les recommandations d'optimisation, avec leur justification |
| PTX ISA | les instructions : mma, wgmma, tcgen05, TMA, mbarrier |
| Hopper Tuning Guide | les spécificités de sm_90 |
| Blackwell Tuning Guide | les spécificités de sm_100 / sm_120 |
| Nsight Compute Profiling Guide | l'interprétation de chaque métrique |
| CUTLASS documentation | CuTe, les layouts, les collectifs |
| ROCm documentation | l'équivalent AMD |
Comment lire le PTX ISA
Il fait plus de mille pages et ne se lit pas. On y cherche une instruction précise :
- trouver la section de la famille (
mma,cp.async,mbarrier) ; - lire la syntaxe et les contraintes ;
- lire les tables de disposition de registres — c'est là que sont les informations critiques et les erreurs coûteuses.
C'est la référence quand une bibliothèque ne fait pas ce que vous attendez.
1.3 Les cours universitaires en accès libre¶
CMU 15-779 — Advanced Machine Learning Systems (Zhihao Jia)¶
Le cours du principal auteur de Mirage MPK. Ses supports sont publics, dont la lecture 7 : Advanced CUDA Programming — Mega-Kernel.
C'est la meilleure présentation pédagogique des megakernels par leurs auteurs.
Stanford CS149 — Parallel Computing¶
Excellent sur les principes du parallélisme, avant même de parler de GPU : modèles d'exécution, cohérence, synchronisation, ordonnancement. Supports en accès libre.
UIUC ECE408 / CS483¶
Le cours dont est issu Programming Massively Parallel Processors. Supports et enregistrements partiellement accessibles.
CUDA Programming for NVIDIA H100s¶
Un cours dédié à Hopper, disponible sur cudacourseh100.github.io.
Oak Ridge / NERSC — formations HPC¶
Les centres de calcul américains publient leurs supports de formation sur la programmation GPU pour le HPC : OpenACC, OpenMP target, Kokkos, portage de codes Fortran. Très utile pour le calcul scientifique.
1.4 Les curriculums communautaires¶
GPU MODE — resource-stream¶
github.com/gpu-mode/resource-stream
Une liste maintenue de ressources, d'actualités et de liens sur la programmation GPU. Le point d'entrée de la communauté.
gpu-perf-engineering-resources¶
github.com/wafer-ai/gpu-perf-engineering-resources
Se présente comme « un curriculum pour apprendre l'ingénierie de performance GPU, de zéro à ce que font les laboratoires d'IA de pointe ». Structure voisine de ce document, avec un angle plus orienté ingénierie de performance.
cuda-learning¶
github.com/rkinas/cuda-learning
Collection de ressources, tutoriels et exemples pratiques, du débutant à l'optimisation.
1.5 Les exercices¶
Mojo GPU Puzzles¶
34 puzzles progressifs, chacun un petit noyau à compléter, validé par des
tests automatiques. La progression va de la manipulation mémoire bas niveau aux
abstractions TileTensor.
Ils enseignent « les motifs réels utilisés dans Triton, FlashAttention et les noyaux de production », et la plupart fonctionnent sur Apple Silicon via Metal — ce qui les rend accessibles sans carte NVIDIA.
C'est probablement la meilleure ressource d'exercices existante, même si vous n'utilisez jamais Mojo.
GPU Puzzles (Sasha Rush)¶
14 puzzles en Python pur avec un simulateur NumPy. Aucun GPU nécessaire. Excellent pour les tout premiers pas : ils forcent à raisonner sur l'indexation et la mémoire partagée sans se battre avec la chaîne d'outils.
Triton Puzzles¶
Une adaptation des précédents à Triton, par la même communauté. Bon pont entre les concepts et le DSL.
KernelBench¶
github.com/ScalingIntelligence/KernelBench
250 charges PyTorch en quatre niveaux de complexité, avec implémentations de référence et cadre d'évaluation correction + performance. Conçu pour évaluer les LLM, et parfaitement utilisable comme banc d'exercices humain.
1.6 Un ordre de lecture suggéré¶
Débutant complet
1. GPU Puzzles (Sasha Rush) — une soirée, sans GPU
2. PMPP chapitres 1-6 — deux semaines
3. Ce document, parties 1-3 — trois semaines
4. Mojo GPU Puzzles 1-15 — une semaine
Intermédiaire
5. PMPP chapitres 7-12 (motifs) — deux semaines
6. Simon Boehm, worklog GEMM — un week-end
7. Ce document, parties 5-7 — trois semaines
8. GPU MODE, conférences ciblées — au fil de l'eau
Avancé
9. Modern GPU Programming for MLSys — trois semaines
10. Tutoriels Colfax (CUTLASS) — deux semaines
11. Ce document, parties 4 et 8 — deux semaines
12. Les papiers de la partie 8 — au fil de l'eau
Chapitre suivant : 2 · Vidéos et conférences