D'abord, les termes exacts
Le CPU (Central Processing Unit, processeur central) exécute le système d'exploitation, les applications et la logique générale de l'ordinateur. Le GPU (Graphics Processing Unit) est un processeur spécialisé dans les calculs massivement parallèles, historiquement ceux du rendu d'images.
Une carte graphique (ou carte vidéo dédiée) est un ensemble matériel dont le GPU n'est qu'un composant :
- La puce GPULe processeur graphique lui-même.
- La mémoire vidéo (VRAM)Par exemple GDDR6, GDDR6X ou HBM, réservée au GPU.
- L'étage d'alimentation (VRM)Convertit et régule la tension fournie au GPU et à la mémoire.
- Le circuit imprimé (PCB)Relie les composants et porte le connecteur PCIe.
- Le refroidissementRadiateur, caloducs ou chambre à vapeur, ventilateurs.
- Les sorties vidéoHDMI, DisplayPort, etc.
Un GPU peut aussi être intégré (iGPU) dans le même boîtier que le CPU, comme sur de nombreux processeurs Intel et AMD ou sur les puces Apple de la série M. Il partage alors la mémoire vive du système au lieu de disposer d'une VRAM dédiée.
Deux architectures, deux objectifs
Un CPU est optimisé pour la latence : terminer chaque tâche, même imprévisible et pleine de branchements, le plus vite possible. Un GPU est optimisé pour le débit : effectuer un nombre énorme d'opérations similaires en même temps. Ces deux objectifs se traduisent par une répartition différente de la surface de silicium.
| Critère | CPU grand public | GPU dédié |
|---|---|---|
| Nombre de cœurs | De l'ordre de 6 à 24 cœurs (par exemple 16 cœurs / 32 fils d'exécution pour un AMD Ryzen 9 7950X). | Plusieurs milliers d'unités d'exécution (NVIDIA annonce 16 384 « cœurs CUDA » pour la GeForce RTX 4090). |
| Nature d'un cœur | Complexe : exécution dans le désordre, prédiction de branchement sophistiquée, gros caches. | Simple, regroupé en ensembles qui exécutent le même programme (shader ou noyau) sur des données différentes. |
| Modèle de parallélisme | MIMD (plusieurs flux indépendants) + SIMD vectoriel limité (SSE, AVX2, AVX-512). | SIMD / SIMT massif (même instruction sur de nombreuses données ou fils). |
| Mémoire et bande passante | DDR5-5600 double canal : ≈ 89,6 Go/s théoriques | RTX 4090, 24 Go GDDR6X : 1 008 Go/s annoncés |
| Point fort | Code séquentiel, branchements imprévisibles, faible latence. | Calcul régulier et indépendant sur de grands volumes de données. |
| Rôle système | Autonome : exécute le système d'exploitation. | Coprocesseur : reçoit ses tâches du CPU via un pilote. |
Attention à la comparaison des « cœurs ». Un « cœur CUDA » est une appellation commerciale : il ne s'agit pas d'un cœur au sens d'un cœur de CPU, et les deux nombres ne sont pas directement comparables. Ils indiquent seulement deux ordres de grandeur de parallélisme très différents. La bande passante DDR5 est calculée ainsi : 5 600 transferts/s × 8 octets × 2 canaux (en millions), soit 89,6 Go/s.
Pourquoi le rendu se prête au parallélisme
La couleur finale d'un pixel se calcule en grande partie indépendamment de celle de ses voisins : c'est un problème dit « embarrassingly parallel » (parallélisme trivial). Or le nombre de pixels est considérable :
| Définition | Pixels par image | Rapport à la 1080p | Pixels par seconde à 60 images/s |
|---|---|---|---|
| 1280 × 720 (720p) | 921 600 | 0,44 | 55 296 000 |
| 1920 × 1080 (1080p) | 2 073 600 | 1,00 | 124 416 000 |
| 2560 × 1440 (1440p) | 3 686 400 | 1,78 | 221 184 000 |
| 3840 × 2160 (2160p, « 4K UHD ») | 8 294 400 | 4,00 | 497 664 000 |
Ces chiffres sont des minimums : chaque pixel peut être calculé plusieurs fois (surdessin, anticrénelage multi-échantillons, effets de post-traitement). En plus des pixels, chaque sommet (vertex) des modèles 3D subit aussi des transformations indépendantes, elles aussi parallélisables.
Qui fait quoi dans une image de jeu vidéo
Voici un pipeline simplifié de rastérisation en temps réel. L'ordre est réel : le CPU prépare l'image, puis le GPU la calcule.
Sur le CPU
- 1Entrées et logique de jeu : clavier, souris, règles, scripts.
- 2Simulation : physique, intelligence artificielle, animation (en général, même si certaines parties peuvent être déportées sur le GPU).
- 3Gestion de la scène : déterminer ce qui est potentiellement visible (culling), choisir les niveaux de détail.
- 4Préparation et soumission des commandes (draw calls) via une API graphique : Direct3D, Vulkan, Metal ou OpenGL.
Sur le GPU
- 5Traitement des sommets (vertex shaders) : projection des objets 3D vers l'écran.
- 6Rastérisation : conversion des triangles en fragments (pixels candidats).
- 7Calcul des pixels (pixel / fragment shaders) : éclairage, textures, ombres. C'est souvent l'étape la plus coûteuse.
- 8Post-traitement : flou de mouvement, correction colorimétrique, mise à l'échelle, puis envoi de l'image à l'écran.
Le lancer de rayons matériel (ray tracing), quand il est utilisé, s'exécute lui aussi sur le GPU, qui dispose pour cela d'unités dédiées sur les architectures récentes. La préparation des structures d'accélération peut toutefois solliciter le CPU.
La loi d'Amdahl : la limite du parallélisme
Multiplier les cœurs n'accélère que la partie parallélisable d'un programme. Gene Amdahl a formalisé cette limite en 1967. Si p est la fraction parallélisable du travail et n le nombre d'unités de calcul, l'accélération théorique vaut :
Quand n tend vers l'infini, S tend vers 1 / (1 − p). Avec 95 % de travail parallélisable, l'accélération ne dépassera jamais 20, même avec des millions de cœurs.
C'est pourquoi le GPU brille sur le rendu (où p est très proche de 1) et reste médiocre sur un code très séquentiel, où un CPU aux cœurs rapides l'emporte.
Cette loi suppose une taille de problème fixe. La loi de Gustafson (1988) nuance ce constat : quand on augmente la taille du problème avec le nombre de cœurs (par exemple plus de pixels), la part parallèle domine davantage.
Calculateur d'Amdahl
Axe horizontal logarithmique (1 à 16 384 unités) ; ligne pointillée : plafond théorique.
Le goulot d'étranglement : le plus lent impose son rythme
Dans un jeu, le CPU prépare les images et le GPU les calcule. La fréquence d'images obtenue est, en première approximation, limitée par le composant le plus lent :
Le travail du CPU dépend peu de la définition d'affichage, alors que celui du GPU augmente avec le nombre de pixels. Conséquence observée dans les tests de matériel : en basse définition, le CPU devient plus souvent le facteur limitant ; en haute définition, c'est presque toujours le GPU.
C'est aussi pour cela que les jeux sont gourmands en GPU : augmenter la définition ou la qualité graphique alourdit surtout la charge du GPU.
Modèle utilisé ici : IPSGPU(N) = IPSGPU,1080p × (2 073 600 / N)α, où N est le nombre de pixels. Avec α = 1, le coût GPU est proportionnel au nombre de pixels ; en pratique, la relation est souvent sous-linéaire (α < 1), car une partie du travail du GPU ne dépend pas de la définition. Ce modèle simplifié ignore la synchronisation, la mémoire et les fluctuations d'une image à l'autre.
Simulateur de goulot
Quand le CPU redevient décisif
« Le rendu dépend surtout du GPU » est une tendance, pas une loi universelle. Le CPU pèse lourd dans plusieurs situations :
Les simulations riches en entités. Jeux de stratégie, de gestion ou de simulation, avec des milliers d'unités, de trajets ou d'objets physiques à mettre à jour à chaque image.
Les très hautes fréquences d'images. Viser 240 IPS ou plus, en compétition, laisse au CPU moins de 4,2 ms (1 000 / 240) pour préparer chaque image.
Les moteurs peu parallélisés. Si l'essentiel du travail tient sur un seul fil d'exécution (souvent le « thread principal »), la performance par cœur du CPU devient le facteur limitant, conformément à la loi d'Amdahl.
Les très nombreux appels de dessin. Chaque draw call a un coût côté CPU. Les API modernes comme Direct3D 12 et Vulkan réduisent ce coût et permettent de mieux répartir la préparation sur plusieurs cœurs, sans le supprimer.
La compilation et le chargement. Compiler les shaders, décompresser les ressources ou émuler une autre machine sollicitent fortement le CPU et peuvent provoquer des saccades.
Au-delà des jeux
Les GPU servent aussi au calcul généraliste (GPGPU), via CUDA, OpenCL, ROCm ou les shaders de calcul. L'entraînement des réseaux de neurones, dominé par des multiplications de matrices, en est l'exemple le plus connu. Le même principe s'applique : le GPU excelle quand le calcul est régulier et parallélisable, et le CPU reste nécessaire pour tout le reste.
Idées reçues corrigées
- « Le GPU peut remplacer le CPU. »
- Non. Le GPU est un coprocesseur : il n'exécute pas le système d'exploitation et reçoit ses tâches du CPU via le pilote.
- « Un cœur CUDA équivaut à un cœur de CPU. »
- Non. Les deux notions ne recouvrent pas la même réalité matérielle ; comparer leurs nombres directement n'a pas de sens.
- « Plus de cœurs donne toujours plus de vitesse. »
- Seulement pour la partie parallélisable (loi d'Amdahl), et à condition que la mémoire et sa bande passante suivent.
- « Mon CPU est utilisé à 30 %, il ne peut donc pas limiter mes performances. »
- Faux : l'utilisation affichée est une moyenne sur tous les cœurs. Un seul fil saturé à 100 % peut limiter le jeu alors que la moyenne reste basse.
- « Une carte graphique a besoin de plus de GPU que de CPU. »
- Formulation à corriger : la carte graphique porte le GPU. Ce sont les tâches graphiques qui sollicitent davantage le GPU que le CPU.
Références
- Amdahl, G. M. (1967). Validity of the single processor approach to achieving large scale computing capabilities. AFIPS Spring Joint Computer Conference, 30, 483-485.
- Gustafson, J. L. (1988). Reevaluating Amdahl's law. Communications of the ACM, 31(5), 532-533.
- Hennessy, J. L. et Patterson, D. A. (2017). Computer Architecture: A Quantitative Approach (6e éd.). Morgan Kaufmann. Chapitre 4 sur le parallélisme de données (SIMD, GPU).
- Hwu, W.-m. W., Kirk, D. B. et El Hajj, I. (2022). Programming Massively Parallel Processors (4e éd.). Morgan Kaufmann.
- Akenine-Möller, T., Haines, E., Hoffman, N. et al. (2018). Real-Time Rendering (4e éd.). CRC Press. Chapitres sur le pipeline graphique et l'architecture GPU.
- Fiches techniques des fabricants (NVIDIA pour la GeForce RTX 4090, AMD pour le Ryzen 9 7950X) pour les caractéristiques citées ; ces valeurs sont celles annoncées par les constructeurs.