Skip to main content

GPU ou CPU pour l'IA : quelles sont les différences ?

POUR AGENT IAChatGPTClaude

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}$.

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.
/ Questions fréquentesSchema.org FAQPage

FAQ: GPU ou CPU pour l'IA : quelles sont les différences ?

La raison ne réside pas seulement dans le nombre de cœurs, mais dans la bande passante mémoire (Memory Bandwidth). La génération de chaque nouveau token nécessite le chargement de tous les poids du modèle via la mémoire. La mémoire système DDR5 offre une vitesse de 60–100 Go/s, tandis que la mémoire vidéo GDDR6X de la RTX 4090 dépasse 1 000 Go/s, et la mémoire HBM3e des accélérateurs H100 atteint jusqu'à 3 350 Go/s (soit 30 à 50 fois plus rapide).
/ Liens internes
Tous les termes