GPU
Dans les années 1980, le traitement graphique restait l’affaire de contrôleurs VGA rudimentaires. Ces composants ne faisaient que recevoir des données d’image, les organiser et les transmettre à un moniteur. Rien de plus.
L’IBM Professional Graphics Controller sort en 1984. Cette carte intègre un microprocesseur Intel 8088 spécialement dédié aux tâches graphiques, libérant ainsi le processeur principal. À 5 500 dollars et avec une compatibilité limitée, elle ne connaît qu’une diffusion confidentielle. Mais l’idée germe : confier les calculs graphiques à un processeur spécialisé.
La standardisation OpenGL par SGI stimule tout un écosystème de solutions matérielles dédiées au rendu graphique. La décennie suivante accélère le mouvement. SGI présente en 1993 le RealityEngine, dont l’architecture établit les bases du pipeline graphique moderne. Ce principe du pipeline, qui transforme des coordonnées 3D en pixels 2D par étapes successives, structure encore aujourd’hui le fonctionnement des GPU.
Puis arrive la 3dfx Voodoo en 1996. Cette carte grand public dédiée à l’accélération 3D bouleverse le jeu vidéo sur ordinateur personnel. Un million de transistors, 4 Mo de mémoire DRAM 64 bits, une fréquence de 50 MHz : des chiffres offraient alors des performances jamais vues.
NVIDIA frappe fort en 1999 avec la GeForce 256. C’est la première carte commercialisée sous le nom de GPU. Ce choix terminologique n’a rien d’anodin : il souligne l’intégration complète des fonctions de traitement graphique sur une seule puce, transformation géométrique et éclairage compris. Ses 23 millions de transistors et ses 32 Mo de mémoire inaugurent l’ère moderne du processeur graphique.
Le début des années 2000 apporte la programmabilité. En 2001, sur la GeForce 3 de NVIDIA, les développeurs programment certaines étapes du pipeline via des shaders. Cette souplesse nouvelle ouvre des horizons pour les effets visuels et le rendu 3D.
L’année 2002 voit débarquer une génération de GPU entièrement programmables avec la GeForce FX et la Radeon 9700. Les développeurs peuvent désormais programmer les opérations par pixel et par vertex, en contrôlant finement le rendu graphique. La GeForce FX, avec ses 80 millions de transistors et sa mémoire DDR de 128 Mo, témoigne de la complexité grandissante de ces composants.
La GeForce 8800 de NVIDIA, en 2006, opère un virage. Son architecture unifiée remplace les unités de traitement spécialisées par des processeurs polyvalents capables d’exécuter différents types de calculs graphiques. CUDA accompagne cette évolution : cet environnement de programmation autorise l’usage du GPU pour des calculs généraux, bien au-delà du simple graphisme.
L’architecture Fermi, que NVIDIA dévoile en 2009, confirme cette orientation vers le calcul généraliste. Première architecture GPU pensée pour le calcul scientifique, elle intègre une hiérarchie de mémoire cache, la correction d’erreurs ECC et améliore les performances en double précision. Les GPU se rapprochent des processeurs classiques tout en conservant leur puissance de traitement massivement parallèle.
Cette tendance à la fusion s’observe partout. AMD lance en 2011 sa ligne Fusion, qui intègre GPU et CPU sur une seule puce. Intel développe de son côté Larrabee, une architecture combinant des cœurs x86 avec des unités vectorielles larges. La convergence entre processeurs graphiques et généralistes s’accélère.
Les GPU modernes incarnent la puissance du traitement parallèle. Leur architecture, fruit d’une évolution continue depuis les simples contrôleurs graphiques des années 1980, fait tourner aujourd’hui une gamme étendue d’applications : rendu 3D, calcul scientifique, intelligence artificielle. Cette polyvalence, alliée à une puissance de calcul considérable, fait des GPU des composants indispensables des systèmes informatiques contemporains.