6 points par GN⁺ 2025-08-21 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Les GPU jouent un rôle central dans le machine learning moderne et reposent sur une architecture qui combine de nombreux Streaming Multiprocessors (SMs) spécialisés dans les multiplications de matrices rapides avec de la HBM (mémoire à large bande passante)
  • Les SM d’un GPU se divisent entre Tensor Cores (multiplication de matrices) et CUDA Cores (calcul vectoriel), ce qui permet à la fois un calcul massivement parallèle et une programmation flexible
  • Les GPU et les TPU diffèrent par leur structure interne et leur configuration réseau ; les GPU offrent une plus grande polyvalence et une meilleure extensibilité, mais atteindre des performances optimales demande davantage d’attention
  • À l’intérieur d’un nœud (Node), les GPU peuvent communiquer à très haute vitesse via NVLink et NVSwitch ; entre les nœuds, ils sont reliés par des réseaux comme InfiniBand, ce qui permet l’entraînement distribué à grande échelle
  • Les opérations collectives (Collectives) sur GPU (par ex. AllReduce, AllGather, etc.) voient leurs performances varier fortement selon la structure matérielle et les couches réseau, et elles restent en pratique souvent inférieures à la bande passante théorique

Qu’est-ce qu’un GPU ?

  • Les GPU de ML (machine learning) récents (par ex. H100, B200) combinent de plusieurs dizaines à plusieurs centaines de Streaming Multiprocessors (SM) spécialisés dans les multiplications de matrices avec de la mémoire HBM rapide
  • Chaque SM contient des Tensor Cores (multiplication de matrices), des Warp Schedulers (calcul vectoriel) et de la SMEM (cache on-chip)
  • Contrairement aux TPU, les GPU permettent un traitement parallèle plus flexible et à plus grande échelle grâce à plus de 100 SM

Structure détaillée des SM

  • Un SM est divisé en 4 sous-partitions, chacune contenant ses propres Tensor Cores, CUDA Cores (calcul vectoriel), Warp Scheduler, fichier de registres, etc.
  • Les CUDA Cores prennent en charge l’arithmétique vectorielle (SIMD/SIMT), tandis que les Tensor Cores sont spécialisés dans les multiplications de matrices
  • Les FLOPs des Tensor Cores sont de loin supérieurs, et le débit augmente encore avec des calculs de plus faible précision
  • Les GPU récents (par ex. B200) ajoutent une grande TMEM, qui prend en charge des entrées de plus grande taille pour les Tensor Cores

La flexibilité des CUDA Cores

  • Les CUDA Cores des GPU utilisent le modèle SIMT (Single Instruction Multiple Threads), dans lequel une même instruction est exécutée en parallèle sur plusieurs threads
  • Chaque thread dispose de son propre pointeur d’instruction (compteur ordinal), ce qui apporte de la flexibilité, notamment pour les branchements conditionnels ; en revanche, une forte divergence d’instructions au sein d’un warp dégrade les performances
  • Chaque CUDA Core dispose d’un état individuel et d’un accès mémoire flexible (contrairement au TPU, qui ne peut traiter que de la mémoire contiguë)

Ordonnancement / parallélisme

  • Un SM ordonnance de nombreux warps (jusqu’à 64) pour une exécution simultanée, et chaque warp scheduler n’exécute qu’un seul programme à la fois
  • Grâce à cette structure, le GPU peut offrir à la fois une grande flexibilité et un haut niveau de concurrence

Structure mémoire du GPU

  • Sur un GPU, la HBM est la mémoire la plus volumineuse ; à côté, on trouve aussi une hiérarchie mémoire avec L2/L1 (SMEM)/TMEM/registres

Résumé des spécifications des GPU récents

  • Le nombre de SM (Streaming Multiprocessors), la fréquence, la mémoire, les FLOPs et la bande passante (BW) varient selon les modèles
  • La capacité mémoire (HBM), la bande passante et les FLOPs (virgule flottante / entier / basse précision) augmentent au fil des générations
  • Principales caractéristiques du tableau (omis) : Blackwell (B200) propose 192 Go de HBM, une bande passante HBM de 8.0 TB/s, des FLOPs FP8 de 4.5e15, etc.
  • D’une génération à l’autre, les progrès matériels sont nets : capacité des registres et du cache on-chip (SMEM), ajout de TMEM, etc.

Comparaison GPU / TPU

  • Les GPU sont polyvalents et modulaires, avec de nombreux petits SM (unités parallèles), mais leur richesse en contrôles matériels rend leur compréhension et leur optimisation plus difficiles
  • Les TPU se composent d’un petit nombre de grands Tensor Cores et de nombreuses ALU vectorielles (VPU), avec un contrôle en mono-thread qui simplifie le matériel et réduit les coûts
  • En conséquence, l’optimisation par le compilateur est indispensable sur TPU, tandis que les GPU peuvent exécuter plusieurs kernels de façon indépendante, ce qui les rend plus simples à utiliser
  • Du point de vue performances / prix, un GPU H200 récent offre environ 2 fois plus de FLOPs/s qu’un TPU v5p, 1,5 fois plus de HBM, pour un prix d’environ 2,5 fois supérieur
  • Les TPU disposent d’une VMEM (cache on-chip) plus grande et plus rapide, ce qui peut représenter un avantage important, notamment pour l’inférence de modèles LLM

Points clés du quiz matériel GPU (Q&A)

  • Le H100 compte au total 16 896 cœurs CUDA fp32 (132 SM x 4 x 32), le B200 en compte 18 944
  • Les FLOPs de calcul vectoriel atteignent au maximum 33.5 TFLOPs/s sur H100, soit environ 30 fois moins que les FLOPs de multiplication de matrices des Tensor Cores (990 TFLOPs/s)
  • La capacité combinée du L1/SMEM et des registres du H100 est de 66 Mo, contre 120 Mo de VMEM sur TPU
  • Le ratio entre bandwidth (bande passante) et FLOPs (intensité de calcul théorique) est d’environ 280 à 300 pour H100/B200, proche de celui des TPU

Réseau GPU (structure de communication)

Structure nœud / cluster

  • Un nœud GPU regroupe généralement 8 GPU, reliés en direct à pleine bande passante via NVLink (très haute vitesse) et NVSwitch (commutateur)
  • Entre les nœuds, on utilise InfiniBand (ou Ethernet, etc.) pour permettre le scale-out
  • Les GPU les plus récents (Blackwell) peuvent s’étendre jusqu’à 72 nœuds

Caractéristiques par couche réseau

  • À l’intérieur du nœud (zone NVLink) : egress de 450 GB/s par GPU (H100), 900 GB/s (B200), jusqu’à 1.6 TB/s par NVSwitch
  • Niveau supérieur du nœud (InfiniBand Leaf/Spine) : structure Leaf Switch (8) à Spine Switch (16), avec maintien théorique de 400 GB/s de pleine bande passante entre GPU
  • Dans de grandes architectures comme SuperPod, on atteint 1024 GPU (128 nœuds), et le nœud GB200 (72 GPU) offre une bande passante amplifiée par 9 (3600 GB/s)

Points clés sur les performances réseau

  • En théorie, la structure réseau (Full Fat Tree) est conçue pour fournir la bande passante maximale y compris entre nœud et nœud
  • En raison de contraintes sur les ports matériels, l’extension à 1024–4096 GPU passe par une hiérarchisation supplémentaire avec davantage de Spine/Core Switches
  • Le passage de la bande passante intra-nœud (450 GB/s) à la bande passante inter-nœuds (400 GB/s) entraîne une différence de performances dans les opérations collectives

Structure des opérations collectives (Collectives)

  • Prise en charge d’opérations collectives de haut niveau comme AllGather, AllReduce (somme), AllToAll (distribution)
  • À l’intérieur d’un nœud, la connexion directe via NVLink permet des performances optimales (bande passante théorique) ; entre nœuds, le trafic passe par InfiniBand
  • Utilisation des bibliothèques NVIDIA NCCL et NVSHMEM

Analyse des performances des collectives

  • AllGather/ReduceScatter : implémentation en anneau (Ring) à la bande passante (450 GB/s sur H100), avec possibilité d’une implémentation en arbre (Tree) pour les petits messages
  • AllToAll : chaque GPU envoie directement au GPU cible, avec un schéma qui divise la bande passante par N ; en pratique, cela peut être 2 fois plus rapide à l’intérieur d’un nœud
  • Les mesures réelles montrent environ 370 GB/s sur AllReduce, donc en dessous du maximum matériel
  • Par rapport aux TPU, il faut des volumes importants (de plusieurs dizaines de Mo à des Go) pour s’approcher de la peak bandwidth matérielle

Synthèse et enseignements

  • Les GPU se distinguent par leur polyvalence et leur extensibilité, mais la difficulté d’optimisation et la visibilité sur les performances sont plus élevées que sur TPU en raison de la structure matérielle et réseau
  • Le réseau (Intra-Node/NVLink/InfiniBand/Leaf/Spine, etc.) est un élément clé des performances en entraînement à grande échelle, et il faut prêter attention à l’écart entre bande passante réelle et théorique
  • La compréhension des opérations collectives et de la structure réseau est indispensable pour l’entraînement et le serving de modèles distribués géants
  • Une démarche fondée sur des benchmarks concrets et une bonne compréhension de l’architecture matérielle est nécessaire pour identifier les goulots d’étranglement et les conditions d’optimisation

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.