Technique
Anatomie d'un pas d'entraînement distribué
Pour : ingénieurs et SRE · architectesPrérequis : Avoir lu le chapitre 1 de la formation.
Les cinq phases d’un pas
Section intitulée « Les cinq phases d’un pas »| Phase | Ce qui se passe | Si elle est lente |
|---|---|---|
| 1. Chargement et transfert vers le GPU | les workers lisent depuis Lustre, tokenisent, chargent en mémoire CPU épinglée, puis transfert DMA vers le GPU par PCIe (de l’ordre de 16 à 64 Go/s selon la génération) ; doit se recouvrir avec le lot précédent | la charge est limitée par les entrées-sorties |
| 2. Passe avant | les données traversent le modèle couche par couche ; chaque couche est surtout une multiplication de matrices, découpée en tuiles sur les Streaming Multiprocessors ; les activations restent en HBM pour la passe arrière | calcul ou mémoire saturés |
| 3. Passe arrière | calcul de la perte, puis rétropropagation de l’erreur couche par couche ; chaque GPU calcule ses gradients sur son propre sous-ensemble de données | idem |
| 4. AllReduce (NCCL) | un ring AllReduce fait la moyenne des gradients de tous les GPU via InfiniBand ; sa part du temps de pas varie beaucoup selon la taille du modèle, le réseau et le recouvrement avec le calcul | réseau ou traînard |
| 5. Pas d’optimiseur | AdamW met à jour tous les paramètres en parallèle ; le cycle repart sur le lot suivant | rarement limitant |
Un pas sur quatre nœuds et 32 GPU
Section intitulée « Un pas sur quatre nœuds et 32 GPU » 0 ms ~8 ms ~16 ms ~28 ms ~42 ms |-----------|--------------|-------------------|-----------------------| GPU 0 [chargement][ passe avant ][ passe arrière ][ AllReduce NCCL ][opt] GPU 1 [chargement][ passe avant ][ passe arrière ][ AllReduce NCCL ][opt] GPU 2 [chargement][ passe avant ][ passe arrière ........ ][ AllReduce ][opt] <- traînard GPU 3 [chargement][ passe avant ][ passe arrière ][ attente... ][opt] ... ^ barrière de synchronisationTous les GPU attendent à la barrière de l’AllReduce que le plus lent ait fini. Il suffit donc d’un seul GPU lent pour ralentir les 32.
Pourquoi 87 % d’utilisation ne veut pas dire 87 % de calcul
Section intitulée « Pourquoi 87 % d’utilisation ne veut pas dire 87 % de calcul »Exemple illustratif, aux valeurs construites pour l’explication (ce n’est pas une mesure) :
| Indicateur | Valeur |
|---|---|
| Utilisation GPU affichée | 87 % |
| Temps réellement passé à calculer | environ 19 % du pas |
| Temps passé dans l’AllReduce NCCL | 43 % du pas |
L’utilisation GPU mesure si le GPU a quelque chose en cours, pas s’il calcule utilement. Un GPU qui attend la fin d’une communication collective est compté comme occupé. Un traînard peut ainsi faire perdre une part importante de l’efficacité globale sans déclencher la moindre alerte ; le simulateur cité plus bas permet d’en chiffrer des scénarios.
Révisé le 2 octobre 2026 : part de l’AllReduce dans le temps de pas présentée comme variable au lieu d’une fourchette non sourcée, exemple des 87 % présenté comme construit pour l’explication et non comme un profilage, perte d’efficacité due au traînard renvoyée au simulateur au lieu d’un pourcentage non sourcé.