Aller au contenu

Tableau du matériel

Les caractéristiques comparées des GPU cités dans ce document, plus les chiffres dérivés qui servent partout.


1 · NVIDIA, centre de données

A100 SXM H100 SXM H200 B200
Architecture Ampere Hopper Hopper Blackwell
Cible sm_80 sm_90a sm_90a sm_100a
Année 2020 2022 2024 2024-2025
Dies 1 1 1 2
SM 108 132 132 148
Mém. partagée + L1 / SM 192 Ko 228 Ko 228 Ko 228 Ko
Adressable / bloc 163 Ko 227 Ko 227 Ko 227 Ko
Tensor Memory / SM — — — 256 Ko
Registres / SM 256 Ko 256 Ko 256 Ko 256 Ko
L2 40 Mo 50 Mo 50 Mo 126 Mo
Partitions L2 2 2 2 4
Mémoire 80 Go HBM2e 80 Go HBM3 141 Go HBM3e 192 Go HBM3e
Bande passante 2,0 To/s 3,35 To/s 4,8 To/s 8,0 To/s
FP64 (tensor) 19,5 TFLOPS 67 TFLOPS 67 TFLOPS ~44,8 TFLOPS
FP32 vectoriel 19,5 TFLOPS 67 TFLOPS 67 TFLOPS ~80 TFLOPS
TF32 tensor 156 TFLOPS 495 TFLOPS 495 TFLOPS ~481 TFLOPS
BF16/FP16 tensor 312 TFLOPS 990 TFLOPS 990 TFLOPS ~1 929 TFLOPS
FP8 tensor — 1 979 TFLOPS 1 979 TFLOPS ~3 851 TFLOPS
FP4 tensor — — — ~7 702 TFLOPS
NVLink (bidir.) 600 Go/s 900 Go/s 900 Go/s ~1 800 Go/s
TMA non oui oui oui
Clusters / DSMEM non oui oui oui
Instruction MMA mma wgmma wgmma tcgen05

Sur les chiffres Blackwell

Les valeurs FP64/FP32/BF16/FP8/FP4 de la colonne B200 sont les débits mesurés rapportés par arXiv:2512.02189 sur une tuile m64n8k16, et non les chiffres marketing. Les valeurs annoncées par NVIDIA (9 PFLOPS FP4 dense, 18 avec sparsité) portent sur des configurations différentes.

Le nombre de 148 SM correspond à la configuration utilisée par Mirage MPK (144 workers + 16 schedulers = 160 ; la répartition exacte dépend de la carte).


2 · NVIDIA, grand public et station de travail

RTX 4090 RTX 5090 L4 L40S RTX PRO 6000
Architecture Ada Blackwell Ada Ada Blackwell
Mémoire 24 Go GDDR6X 32 Go GDDR7 24 Go 48 Go 96 Go
Bande passante ~1,0 To/s ~1,8 To/s 300 Go/s 864 Go/s ~1,8 To/s
Mém. partagée / SM 100 Ko ~100 Ko 100 Ko 100 Ko ~228 Ko
FP64 1,3 TFLOPS ~1,6 TFLOPS faible faible variable
Rapport FP64/FP32 1/64 1/64 1/64 1/64 variable
TMA / clusters non partiel non non partiel
NVLink non non non non variable

Le piège du FP64

Une RTX 5090 est plus rapide qu'un A100 en BF16 et ~25 fois plus lente qu'un H100 en FP64. Le bridage 1/64 est délibéré.

Vérifiez toujours le débit FP64 avant de dimensionner un projet de calcul scientifique.


3 · AMD

MI250X MI300X MI355X
Architecture CDNA 2 CDNA 3 CDNA 4
Cible gfx90a gfx942 gfx950
Dies (XCD) 2 8 8
CU 220 304 256
LDS / CU 64 Ko 64 Ko 160 Ko
Mémoire 128 Go HBM2e 192 Go HBM3 288 Go HBM3E
Bande passante 3,2 To/s 5,3 To/s 8,0 To/s
FP64 47,9 TFLOPS 81,7 TFLOPS élevé
BF16 383 TFLOPS 1 307 TFLOPS ~2× MI300X
FP8 — 2 615 TFLOPS ~2× MI300X
MXFP8/6/4 natifs non non oui
Wavefront 64 64 64
Instruction MMA MFMA MFMA MFMA + block scaling

Les deux arguments d'AMD

Capacité : 288 Go sur MI355X contre 192 sur B200.

FP64 : 81,7 TFLOPS sur MI300X contre ~34-44 sur H100/B200, soit un rapport de 2 à 2,4×. C'est ce qui explique le choix d'AMD pour Frontier et El Capitan.


4 · Les chiffres dérivés

Intensité critique \(I_{\text{crit}} = P/B\)

C'est le seuil au-delà duquel un noyau est limité par le calcul.

Machine Précision \(P\) \(B\) \(I_{\text{crit}}\)
A100 FP32 19,5 T 2,0 T ~10
A100 BF16 tensor 312 T 2,0 T ~156
H100 FP32 67 T 3,35 T ~20
H100 BF16 tensor 990 T 3,35 T ~296
H100 FP8 tensor 1 979 T 3,35 T ~591
B200 BF16 tensor 1 929 T 8,0 T ~241
B200 FP4 tensor 7 702 T 8,0 T ~963
MI300X BF16 1 307 T 5,3 T ~247

Interprétation : il faut effectuer \(I_{\text{crit}}\) opérations par octet lu pour saturer les unités de calcul. En dessous, on est limité par la mémoire.

Pour référence : une addition élémentaire a \(I = 1/12\), une GEMM bien pavée \(I \approx 1\,365\), et le décodage LLM à lot 1 \(I \approx 1\).

Temps minimal par jeton en décodage

\(t_{\min} = \text{octets des poids} / B\), pour un lot de 1.

Modèle BF16 FP8 FP4
1 B sur H100 0,60 ms 0,30 ms 0,15 ms
8 B sur H100 4,78 ms 2,39 ms 1,19 ms
8 B sur B200 2,00 ms 1,00 ms 0,50 ms
70 B sur 2×H100 20,9 ms 10,4 ms 5,2 ms
405 B sur 8×H100 30,2 ms 15,1 ms 7,6 ms

Ces valeurs ignorent le cache KV, qui s'y ajoute. Ce sont des bornes supérieures physiques.

Taille du cache KV

\[ \text{cache} = 2 \times b \times S \times L \times d_{kv} \times \text{octets} \]

Pour un modèle de 8 milliards de paramètres (\(L = 32\), \(d_{kv} = 1024\), GQA à 8 groupes), en BF16, par séquence :

Contexte Cache Comparé aux poids (16 Go)
4 096 0,54 Go 3 %
32 768 4,3 Go 27 %
131 072 17,2 Go 107 %
1 048 576 137 Go 858 %

Au-delà de ~128 k jetons, le cache dépasse les poids.


5 · Les latences et bandes passantes internes

Ordres de grandeur pour Hopper. Les valeurs exactes varient selon la carte et la source ; celles marquées d'une astérisque proviennent des papiers de microbenchmarking cités.

Niveau Latence Bande passante (agrégée)
Registre ~1 cycle ~100 To/s
Mémoire partagée ~25-30 cycles ~30 To/s
L1 ~30 cycles —
DSMEM (SM voisin) ~50-70 cycles élevée
L2 ~200 cycles ~7 To/s
HBM ~400-800 cycles 3,35 To/s
NVLink ~2-3 µs 900 Go/s
PCIe 5.0 ×16 ~2-10 µs 64 Go/s
InfiniBand NDR ~2-5 µs 50 Go/s
Mémoire hôte (paginable) ~10 µs 6 Go/s

Blackwell : TMEM et tensor cores*

Grandeur Valeur
TMEM par SM 256 Ko (512 colonnes × 128 lignes × 32 bits)
Lecture TMEM 16 To/s par SM
Écriture TMEM 8 To/s par SM
Accès TMEM avec défaut de cache 420 cycles (contre ~1 000 sur Hopper)
Débit global via ld.global 3,8 To/s

Latences des instructions MMA*

Instruction Tuile Cycles
wgmma (Hopper) m64n64k16 32,0
wgmma (Hopper) m64n128k16 64,0
wgmma (Hopper) m64n256k16 128,0
tcgen05.mma (Blackwell) m64n64k16 11,0
tcgen05.mma (Blackwell) m128n128k16 11,3
tcgen05.mma (Blackwell) m256n256k16 11,4

* Source : arXiv:2512.02189 et arXiv:2501.12084.


6 · Les coûts de lancement et de synchronisation

Opération Coût
Lancement de noyau, standard 5 – 10 µs
Lancement dans un CUDA Graph ~1,3 µs
Lancement HIP sur MI300X ~4,5 µs
__syncthreads() ~10-50 cycles
Barrière asynchrone (mbarrier) ~60 ns
cluster.sync() ~100 cycles
grid.sync() (cooperative groups) µs
Barrière de grille naïve sur MI300X 7,59 – 7,88 µs
Sentinelle NaN sur MI300X 0,80 – 0,93 µs

Sources : Hazy Research, Kog. Voir Megakernels 1.


7 · Les formats numériques

Format Bits S/E/M Étendue max Précision relative
FP64 64 1/11/52 1,8 × 10³⁰⁸ 2,2 × 10⁻¹⁶
FP32 32 1/8/23 3,4 × 10³⁸ 1,2 × 10⁻⁷
TF32 19 1/8/10 3,4 × 10³⁸ 4,9 × 10⁻⁴
BF16 16 1/8/7 3,4 × 10³⁸ 3,9 × 10⁻³
FP16 16 1/5/10 65 504 4,9 × 10⁻⁴
FP8 E4M3 8 1/4/3 448 6,3 × 10⁻²
FP8 E5M2 8 1/5/2 57 344 1,3 × 10⁻¹
FP6 E3M2 6 1/3/2 ~28 —
FP4 E2M1 4 1/2/1 6 0,5

Tolérances de test recommandées : FP32 → rtol=1e-5 ; TF32 → 1e-3 ; BF16/FP16 → 1e-2 ; FP8 → 5e-2.


8 · Comment utiliser ce tableau

Les trois calculs à faire avec ces chiffres

1. Le régime d'un noyau. \(I = W/Q\) contre \(I_{\text{crit}}\) de la ligne 4. Cela vous dit s'il faut optimiser le calcul ou la mémoire.

2. Le plancher de temps. \(t_{\min} = Q/B\) si limité par la mémoire, \(W/P\) si limité par le calcul. Comparé au temps mesuré, cela donne votre marge de progression.

3. La faisabilité mémoire. Poids + cache KV + activations contre la capacité de la carte. Le tableau du §4 donne les ordres de grandeur.

Ces trois calculs prennent dix minutes et décident de tout ce qui suit.


Sources de ce tableau


Retour : Annexes · Index du cours