Graphics Processing Unit (GPU)
Ce que vous saurez dans 3 minutes
Le GPU a sauvé l’IA de l’hiver. Sans lui, entraîner GPT-4 prendrait des milliers d’années. Si NVIDIA est devenue l’une des entreprises les plus valorisées au monde, c’est parce qu’elle a compris avant tout le monde (dès 2006 avec CUDA) que les chercheurs avaient besoin d’une sorte de “supercalculateur de bureau” programmable. Aujourd’hui, les puces H100 et Blackwell sont le “nouveau pétrole” de l’économie numérique.
1. Comprendre
Architecture : CPU vs GPU
Pourquoi le Deep Learning aime les GPU
Un réseau de neurones n’est mathématiquement qu’une énorme, gigantesque multiplication de matrices.
Cette opération est “embarrassingly parallel” : le calcul d’un neurone ne dépend pas du calcul de son voisin immédiat dans la même couche. Le GPU peut donc calculer toute une couche d’un coup.
Composants Clés d’un GPU Moderne
- Cœurs CUDA (Shaders) : Les ouvriers polyvalents.
- Tensor Cores : Les spécialistes. Ils ne savent faire qu’une chose : sur des matrices 4x4, mais ils le font à la vitesse de la lumière.
- HBM (High Bandwidth Memory) : La mémoire ultra-rapide. Souvent, le goulot d’étranglement n’est pas le calcul (FLOPS), mais la vitesse à laquelle on peut amener les données aux puces (Memory Bandwidth).
Évolution du Matériel (Mermaid)
graph LR
Gaming(Usage Jeu Vidéo) -->|2006: CUDA| GPGPU(General Purpose GPU)
GPGPU -->|2012: AlexNet| DeepLearning
DeepLearning -->|2017: Volta| TensorCores(Unités Matricielles)
TensorCores -->|2022: Hopper| TransformerEngine(Optimisé pour FP8)
TransformerEngine -->|2024: Blackwell| SystemScale(Le GPU devient un Rack)
2. Appliquer
Le Saint Graal : La comparaison des Flagships
La Loi de Moore est morte pour les CPU, mais la Loi de Huang (CEO de NVIDIA) continue de doubler la performance IA chaque année.
| Spécification | NVIDIA A100 (2020) | NVIDIA H100 (2022) | NVIDIA B200 (Blackwell 2024) |
|---|---|---|---|
| Architecture | Ampere | Hopper | Blackwell |
| VRAM | 80 GB HBM2e | 80 GB HBM3 | 192 GB HBM3e |
| Bande Passante Mém. | 2 TB/s | 3.35 TB/s | 8 TB/s |
| Performance FP8 | N/A (utilise FP16) | 4,000 TFLOPS | 20,000 TFLOPS (avec Sparsity) |
| TDP (Conso) | 400 W | 700 W | 1000 W+ |
| Prix Lancement | ~$15k | ~$30k | ~The Price of a House |
CUDA : La Douve défensive (The Moat)
Avoir le meilleur matériel ne suffit pas. Il faut pouvoir le programmer. CUDA (Compute Unified Device Architecture) est le langage (extension du C++) qui permet de parler directement au GPU.
Le code ci-dessous additionne deux vecteurs (A et B) de millions d’éléments. Sur CPU, ce serait une boucle for. Sur GPU, chaque thread calcule une addition.
// Kernel : Ce code est exécuté par 1 million de threads en parallèle__global__ void vectorAdd(float *A, float *B, float *C, int N) { int i = blockIdx.x * blockDim.x + threadIdx.x; if (i < N) { C[i] = A[i] + B[i]; // Chaque thread s'occupe de l'indice 'i' }}
int main() { // Lancement de 1 million de threads vectorAdd<<<numBlocks, threadsPerBlock>>>(d_A, d_B, d_C, N); cudaDeviceSynchronize(); // Attendre que les fourmis finissent}Heureusement, en Python, nous n’écrivons plus de C++ :
import torch
# Vérifier si un GPU est dispodevice = "cuda" if torch.cuda.is_available() else "cpu"
x = torch.randn(1000, 1000).to(device)w = torch.randn(1000, 1000).to(device)
# Cette multiplication se fait sur le GPU# PyTorch appelle les kernels CUDA optimisés pour nousy = x @ w3. Aller plus loin
La Précision Mixte (FP16, FP8, INT4)
Pour aller plus vite et stocker des modèles plus gros, on réduit la précision des nombres.
- FP32 (Float 32-bit) : Standard historique. Trop lourd.
- TF32 : Format hybride de NVIDIA (facile comme FP32, rapide comme FP16).
- FP8 (Introduit avec H100) : Suffisant pour l’entraînement des LLM grâce au Transformer Engine qui gère dynamiquement les arrondis.
- INT4 / INT1 (Quantization) : Utilisé pour l’inférence (faire tourner le modèle sur son laptop), mais pas pour l’entraînement.
Interconnexion : NVLink
Quand on entraîne un modèle comme GPT-4, il ne tient pas sur un seul GPU. Il faut le découper sur 25 000 GPU (Parallelism). Si les GPU se parlent via un câble Ethernet classique, c’est trop lent. NVLink et NVSwitch permettent aux GPU de partager leur mémoire comme s’ils étaient un seul méga-cerveau unifié.
Questions Fréquentes
Peut-on faire du Deep Learning sur un Mac ?
Oui ! Apple utilise les puces Apple Silicon (M1/M2/M3) avec une architecture “Unified Memory”. Le CPU et le GPU partagent la même RAM. Un Mac Studio avec 192 Go de RAM peut faire tourner des modèles énormes (Llama-3 70B) que même une RTX 4090 (24 Go) ne peut pas charger. C’est plus lent que NVIDIA pour l’entraînement, mais excellent pour l’inférence.
C’est quoi un TPU ?
Un TPU (Tensor Processing Unit) est un équivalent du GPU fabriqué par Google, spécifiquement pour TensorFlow/JAX. Il n’a pas de circuits graphiques inutiles, il ne fait que des matrices. Google entraîne Gemini sur des TPU v4/v5 pods.
Notions Liées (Spider Web)
- Le Langage : CUDA (La clé du royaume NVIDIA).
- L’Alternative Google : TPU.
- L’Optimisation : Quantization (Réduire la taille des modèles).
- Le Contexte : Loi de Moore.
Ressources Externes
- Blog NVIDIA : H100 Tensor Core Architecture Whitepaper - La bible technique.
- Tim Dettmers : Which GPU to buy for Deep Learning? - Le guide d’achat de référence maintenu par la communauté.