Aller au contenu

Partie 1 · Fondations matérielles

Avant d'écrire la moindre ligne de code, il faut savoir à quoi ressemble la machine. Cette partie construit le modèle mental qui rend tout le reste prévisible.


Ce que vous allez apprendre

À la fin de cette partie, vous saurez répondre sans hésiter à :

  • Pourquoi un GPU a des milliers de « cœurs » alors qu'un CPU en a seize ?
  • Que se passe-t-il physiquement quand un thread lit une adresse mémoire ?
  • Pourquoi 32 threads exécutent-ils toujours la même instruction ?
  • Combien coûte, en cycles, un accès à la mémoire partagée ? à la mémoire globale ?
  • Qu'est-ce qu'un tensor core fait exactement, et pourquoi il est 30× plus rapide qu'une unité flottante ordinaire ?
  • Pourquoi tout le monde calcule en 8 bits maintenant, et ce que ça casse ?

Aucun code n'est écrit dans cette partie. C'est délibéré : la première erreur du débutant est d'écrire du CUDA avant de savoir ce qu'une instruction coûte.


Ordre de lecture

Strictement séquentiel. Chaque chapitre suppose le précédent.

1 · Pourquoi un GPU existe

Le compromis débit contre latence, l'histoire qui y a mené, et le raisonnement sur les transistors qui explique la forme de la puce. Le chapitre qui donne le modèle mental de base.

2 · Anatomie d'un GPU

Du die au thread : GPC, SM, partitions, ordonnanceurs de warps, cœurs CUDA, tensor cores, registres. Avec les chiffres réels d'un H100 et d'un B200.

3 · Le modèle SIMT

Warps, divergence, masques d'exécution, __shfl, et la façon dont Volta a changé les règles en donnant un compteur ordinal à chaque thread.

4 · La hiérarchie mémoire

Registres, mémoire partagée, L1, L2, HBM, mémoire hôte. Les tailles, les latences, les bandes passantes, et la seule règle qui compte : le coût d'un octet dépend d'où il vient.

5 · Les tensor cores

Ce que fait réellement une instruction MMA, l'évolution hmma → wgmma → tcgen05, la tensor memory de Blackwell, et l'équivalent AMD (MFMA).

6 · Les nombres flottants

FP64 à FP4, TF32, BF16, les formats à échelle par blocs (MXFP, NVFP4), ce que chacun garantit, et ce qu'on perd quand on descend.


Les six chiffres à retenir

Si vous ne deviez retenir qu'un tableau de cette partie, c'est celui-ci. Ordres de grandeur pour un H100 SXM ; le détail et les sources sont dans les chapitres.

Grandeur Ordre de grandeur
Latence d'un accès à la mémoire globale ~400 à 800 cycles
Latence d'un accès à la mémoire partagée ~20 à 30 cycles
Latence d'une opération flottante simple ~4 cycles
Threads résidents par SM jusqu'à 2 048
Bande passante HBM3 3,35 To/s
Ratio calcul/mémoire (BF16) ~295 opérations par octet

Tout l'art de la programmation GPU consiste à faire en sorte que la première ligne n'apparaisse jamais dans le chemin critique.


Ce que cette partie n'aborde pas volontairement

Les détails de l'implémentation matérielle (pipeline d'exécution, réseau d'interconnexion, gestion de l'énergie) sont hors sujet : ils sont fascinants et n'influencent presque jamais l'écriture d'un noyau. Les lecteurs intéressés trouveront les papiers de microbenchmarking dans Ressources · Papiers.