Technique
Architecture d'un cluster HPC IA
Pour : ingénieurs et SRE · architectesPrérequis : Notions de base sur le HPC : nœud, ordonnanceur, interconnect.
La topologie physique
Section intitulée « La topologie physique »flowchart TB
SCHED["Ordonnanceur Slurm / PBS"]
subgraph N1["Nœud GPU 1"]
direction LR
G0["GPU 0<br/>80 Go HBM"] --- G1["GPU 1"] --- G2["GPU 2"] --- G3["GPU 3"]
end
subgraph N2["Nœud GPU 2"]
direction LR
G4["GPU 4"] --- G5["GPU 5"] --- G6["GPU 6"] --- G7["GPU 7"]
end
IB["InfiniBand / RoCE<br/>latence de l'ordre de la microseconde"]
FS["Stockage parallèle<br/>Lustre / IBM Storage Scale / BeeGFS"]
SCHED --> N1
SCHED --> N2
N1 <--> IB
N2 <--> IB
IB <--> FS
Dans un nœud, les GPU communiquent par NVLink ; entre nœuds, par InfiniBand ou RoCE. Le stockage parallèle alimente tout le monde, l’ordonnanceur décide qui tourne où.
Les cinq couches
Section intitulée « Les cinq couches »| Couche | Ce qu’elle contient | Ce qu’on observe | Ce qu’on protège |
|---|---|---|---|
| L1. Nœuds GPU | 4 à 8 GPU par nœud reliés par NVLink (600 Go/s sur A100, 900 Go/s sur H100, 1,8 To/s sur Blackwell), 80 Go de HBM par GPU sur A100 et H100, davantage sur les générations suivantes (141 Go sur H200), 2 CPU d’orchestration, plusieurs centaines de Go de RAM, NVMe local de transit | dcgm-exporter : occupation des SM, bande passante HBM, erreurs ECC, bridage, énergie | firmware, mémoire GPU entre jobs |
| L2. Interconnect | InfiniBand HDR (200 Gb/s), NDR (400 Gb/s) ou XDR (800 Gb/s, génération Blackwell), ou RoCE ; topologie fat tree non bloquante ; les gradients y circulent pendant l’AllReduce NCCL | ibstat, perfquery, compteurs de ports, retransmissions | l’angle mort RDMA |
| L3. Stockage parallèle | Lustre ou IBM Storage Scale (anciennement Spectrum Scale, ou GPFS), fichiers répartis sur des dizaines de serveurs, débit agrégé de quelques dizaines de Go/s à plusieurs To/s selon la taille du système ; les GPU ne doivent jamais attendre les données | débit Lustre, latence des métadonnées | intégrité des données d’entraînement |
| L4. Ordonnanceur | Slurm ou PBS : files d’attente, allocation des GPU, isolation entre jobs ; scripts prolog et epilog pour injecter de l’instrumentation | slurm-exporter : jobs, files, temps d’attente | isolation entre jobs et entre clients |
| L5. Pile logicielle ML | pilote CUDA ou ROCm, PyTorch ou JAX, NCCL pour les communications collectives, conteneurs Docker ou Apptainer (ex-Singularity) | profileur PyTorch, journaux NCCL | chaîne d’approvisionnement logicielle |
Quatre familles de signaux
Section intitulée « Quatre familles de signaux »| Famille | Exemples |
|---|---|
| GPU | utilisation des SM, bande passante HBM, erreurs ECC, bridage d’horloge |
| Réseau | compteurs de ports InfiniBand, taux de retransmission, débit par lien |
| Stockage | débit Lustre, latence des métadonnées |
| Modèle | perte (loss), norme des gradients, durée de pas, latence AllReduce |
La quatrième famille est la plus souvent oubliée, alors que c’est elle qui dit si l’entraînement progresse. Elle doit être rattachée au job et au compte, comme les trois autres.
Révisé le 2 octobre 2026 : ajout de la génération Blackwell (NVLink 5, InfiniBand XDR), IBM Storage Scale à la place de Spectrum Scale, débits de stockage harmonisés avec la formation d’initiation, latence de l’interconnect ramenée à l’ordre de la microseconde.