Aller au contenu

TechniquePratique

Anatomie d'un pas d'entraînement distribué

Pour : ingénieurs et SRE · architectesPrérequis : Avoir lu le chapitre 1 de la formation.

PhaseCe qui se passeSi elle est lente
1. Chargement et transfert vers le GPUles 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édentla charge est limitée par les entrées-sorties
2. Passe avantles 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èrecalcul ou mémoire saturés
3. Passe arrièrecalcul de la perte, puis rétropropagation de l’erreur couche par couche ; chaque GPU calcule ses gradients sur son propre sous-ensemble de donnéesidem
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 calculréseau ou traînard
5. Pas d’optimiseurAdamW met à jour tous les paramètres en parallèle ; le cycle repart sur le lot suivantrarement limitant
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 synchronisation

Tous 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) :

IndicateurValeur
Utilisation GPU affichée87 %
Temps réellement passé à calculerenviron 19 % du pas
Temps passé dans l’AllReduce NCCL43 % 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é.