GPU ou CPU pour l'IA : quelles sont les différences ?
Comparaison approfondie des processeurs centraux (CPU) et graphiques (GPU) pour les tâches d'apprentissage automatique. Explication de la différence fondamentale entre latence (Latency-oriented) et débit (Throughput-oriented), du débit de bande passante mémoire (DDR5 vs HBM3e) et du benchmarking en CLI.
1. Aperçu du concept et différence fondamentale
Pour comprendre pourquoi les accélérateurs graphiques sont devenus la principale devise infrastructurelle du XXIe siècle, il faut examiner la différence fondamentale entre les philosophies de conception des puces en silicium :
- CPU (Central Processing Unit) — optimisé pour la minimisation de la latence (Latency-Oriented) : Il s'agit d'un petit bataillon de 8 à 32 cœurs universels extrêmement puissants, dotés de vastes caches L1/L2/L3 et de blocs complexes de prédiction de branchement (Branch Predictor). Le CPU est conçu pour exécuter le plus rapidement possible une séquence unique et complexe d'instructions du système d'exploitation.
- GPU (Graphics Processing Unit) — optimisé pour le débit maximal (Throughput-Oriented) : C'est un tableau de 5 000 à 18 000 cœurs de calcul parallèles simples (ALU), regroupés en multiprocesseurs de flux (SM). Ils ne consacrent pas de transistors à la prédiction de branchement, mais utilisent la paradigme SIMT (Single Instruction, Multiple Threads) : la même opération mathématique (par exemple, la multiplication vectorielle) est appliquée simultanément à des milliers de flux de données.
Modèle mental : le CPU est un coursier rapide dans une voiture de sport qui livre instantanément un colis urgent. Le GPU est un train de marchandises géant transportant 10 000 tonnes de gravier en un seul trajet.
┌─────────────────────────────────────────────────────────────┐
│ COMPARAISON DES ARCHITECTURES │
├─────────────────────────────────────────────────────────────┤
│ 1. CPU : Plusieurs cœurs rapides + Cache L3 géant │
│ [ CŒUR 1 ] [ CŒUR 2 ] [ CŒUR 3 ] [ CŒUR 4 ] │
│ └───────────────── CACHE L3 (64 Mo) ─────────────────┘ │
│ Bus mémoire : DDR5 (60 - 90 Go/s) │
├─────────────────────────────────────────────────────────────┤
│ 2. GPU : Des milliers de cœurs simples + Bus mémoire ultra- │
│ large │
│ [SM][SM][SM][SM][SM][SM][SM][SM][SM][SM][SM][SM] ... │
│ (jusqu'à 18 000 cœurs CUDA + Tensor Cores) │
│ Bus mémoire : GDDR6X / HBM3e (1 000 - 3 350 Go/s) │
└─────────────────────────────────────────────────────────────┘
2. Benchmarking pratique : vérifier l'accélération via CLI
Vous pouvez mesurer vous-même la vitesse de multiplication matricielle sur CPU contre GPU à l'aide d'un simple test en une ligne en Python :
# Тест швидкості множення матриць 8192x8192 на доступних пристроях
python3 -c "
import torch, time
n = 8192
# 1. Тест на CPU
a_cpu, b_cpu = torch.randn(n, n), torch.randn(n, n)
t0 = time.time()
torch.mm(a_cpu, b_cpu)
print(f'CPU Time: {time.time() - t0:.3f} s')
# 2. Тест на GPU (якщо є CUDA або Apple MPS)
device = 'cuda' if torch.cuda.is_available() else ('mps' if torch.backends.mps.is_available() else None)
if device:
a_gpu, b_gpu = a_cpu.to(device), b_cpu.to(device)
torch.mm(a_gpu, b_gpu) # warmup
t0 = time.time()
torch.mm(a_gpu, b_gpu)
if device == 'cuda': torch.cuda.synchronize()
print(f'GPU ({device}) Time: {time.time() - t0:.4f} s')
"
Sur un système moderne, le GPU termine le calcul en 0,015 seconde, tandis qu'un CPU haut de gamme à 16 cœurs met plus de 0,8 à 1,2 seconde pour la même opération (une différence de 50 à 80 fois !).
3. Pourquoi l'inférence LLM est limitée par la mémoire (Memory-Bound)
Pendant la phase de génération de texte, le modèle fonctionne selon la règle suivante : pour produire un token, il faut lire tous les poids du modèle depuis la mémoire une seule fois :
- Si le modèle Llama 3.1 8B au format 4 bits occupe 5 Go :
- Sur un système avec bus DDR5 (vitesse de lecture de 60 Go/s) :
Limite théorique de vitesse : $\frac{60 \text{ Go/s}}{5 \text{ Go}} \approx 12 \text{ tokens/s}$. - Sur une carte graphique RTX 4090 (bande passante mémoire de 1 000 Go/s) :
Limite théorique de vitesse : $\frac{1000 \text{ Go/s}}{5 \text{ Go}} \approx 200 \text{ tokens/s}$.
- Sur un système avec bus DDR5 (vitesse de lecture de 60 Go/s) :
C'est précisément pour cette raison que la carte graphique surpasse le processeur en IA générative non tant grâce à sa fréquence ou son nombre de cœurs, mais grâce à la vitesse colossale de transfert de données entre la puce mémoire et les blocs de calcul.
4. Conclusion technique finale
- Pour l'orchestration d'agents, le parsing de code, le routage de requêtes HTTP et l'interaction avec les bases de données, le processeur (CPU) reste le maître absolu et irremplaçable du système.
- Pour le calcul des matrices de poids des réseaux de neurones, la vectorisation des embeddings et la génération, l'accélérateur graphique (GPU) est la norme incontournable.
FAQ: GPU ou CPU pour l'IA : quelles sont les différences ?
Termes associés
Mémoire vidéo (VRAM) pour l'IA
La mémoire vidéo (Video RAM) du processeur graphique, dans laquelle sont chargés les poids des réseaux de neurones et la fenêtre de contexte. C'est le principal goulot d'étranglement matériel : si un modèle ne tient pas dans la VRAM, il ne démarrera pas ou fonctionnera dix fois plus lentement sur un processeur standard.
Apple Silicon pour l'IA (Série M et mémoire unifiée)
L'architecture des processeurs Apple (M1/M2/M3/M4) avec mémoire unifiée (Unified Memory Architecture). Elle permet à l'ensemble de la RAM (jusqu'à 128-192 Go) d'être accessible au GPU comme VRAM, rendant possible l'exécution de très grands modèles de réseaux de neurones sans nécessiter de cartes graphiques serveur.
Processeur neuronal (NPU)
Microprocesseur matériel spécialisé (Neural Processing Unit), conçu exclusivement pour l'exécution de réseaux neuronaux artificiels avec une consommation énergétique minimale. Il est responsable du flou d'arrière-plan lors des appels vidéo, de l'amélioration des photos et des suggestions IA locales sans décharger la batterie.
vLLM (Moteur d'inférence haute performance)
Serveur d'inférence et de service LLM open source leader, qui a révolutionné le débit grâce à l'algorithme de virtualisation mémoire PagedAttention et au batching continu.