Aller au contenu

TechniquePratique

Schéma explorable : un cluster HPC IA

Pour : ingénieurs et SRE · architectesPrérequis : Notions de base sur les GPU et l'entraînement distribué.

Mode de lecture

Un cluster d’entraînement IA empile cinq couches : des nœuds GPU, un interconnect, un stockage parallèle, un ordonnanceur et une pile logicielle. Ce schéma en montre une version réduite à deux nœuds de 8 GPU NVIDIA H100 SXM. Chaque élément ouvre une fiche : ce qu’il est, ce qu’on y observe et avec quel outil, ce qui le menace. Le mode Observer place les collecteurs et leurs signaux, le mode Menaces pose les six vecteurs d’attaque du chapitre de référence sur les parties qu’ils visent.

Cliquez sur un élément du schéma, ou parcourez-le au clavier (Tab, puis Entrée ou Espace) : sa fiche s’ouvre sous le schéma.

Faites glisser le schéma horizontalement pour le voir en entier.

Cluster HPC IA : ordonnanceur Slurm, deux nœuds de 8 GPU H100 reliés par NVLink, interconnect InfiniBand NDR, stockage parallèle, poids du modèle et plan d’observabilitéPlan d'observabilitécollecte · stockage · GrafanaL4 · Ordonnanceur Slurmslurm-exporterNœud GPU 1 · 8 × H100 SXMdcgm-exporterFalco · TetragonL5 · CUDA · PyTorch · NCCLL5 · profileur PyTorch · logs NCCLGPU 0GPU 1GPU 2GPU 3GPU 4GPU 5GPU 6GPU 7NVLink · 900 Go/sNœud GPU 2 · 8 × H100 SXMdcgm-exporterFalco · TetragonL5 · CUDA · PyTorch · NCCLL5 · profileur PyTorch · logs NCCLGPU 8GPU 9GPU 10GPU 11GPU 12GPU 13GPU 14GPU 15NVLink · 900 Go/sL2 · InfiniBand NDR · 400 Gb/s · fat tree · RDMAibstat · perfqueryL3 · Stockage parallèleLustre / IBM Storage Scalemétriques LustrePoids du modèleactif à protégervisé par les 6 vecteurseBPF · Falco165234

Où sont les collecteurs

Les six vecteurs de menace

  1. Chargement
  2. Passe avant
  3. Passe arrière
  4. AllReduce NCCL
  5. Optimiseur
  6. Attente à la barrière

Exemple illustratif : durées construites d'après l'ordre de grandeur du chapitre 2 (un pas d'environ 42 ms) ; le traînard met deux fois plus de temps pour sa passe arrière. Pour le détail : le pas d'entraînement animé et le simulateur d'effet traînard.

  1. Ouvrez un GPU puis le nœud qui le contient. Le GPU expose ses compteurs par dcgm-exporter ; c’est le label hpc_job, écrit par les scripts prolog et epilog de Slurm, qui permet de rattacher ces compteurs à un job, puis à un utilisateur et à un compte.
  2. Jouez un pas sans traînard, puis avec. Avec un GPU traînard, tous les autres s’arrêtent à la barrière avant l’AllReduce : la durée du pas s’aligne sur le plus lent, alors que chaque GPU semble occupé.
  3. Passez en mode Menaces et ouvrez le vecteur 3. Le trafic RDMA contourne le noyau : ni pare-feu ni eBPF ne le voient. Les seuls signaux sont les compteurs InfiniBand, les mêmes que ceux de l’exploitation.
  4. Ouvrez les poids du modèle. Les six vecteurs convergent vers eux ; les collecteurs qui les protègent sont ceux du mode Observer.