
De nos jours, n'importe quel ordinateur disponible sur le marché
dispose d'une carte graphique capable d'accélérer l'affichage 3D. Ces
cartes qui il n'y a pas si longtemps que ça ne pouvaient effectuer que
des opérations assez basiques, ont très vite évolué vers des systèmes
de plus en plus complexes, de plus en plus puissants, et de plus en
plus performants.
Ces évolutions ont été accompagnées de nombreux termes techniques,
ainsi que d'aussi nombreux (voire plus) termes marketing. Entre les
Hyper Machins, les Ultra Choses et les Extreme Trucs, difficile de s'y
retrouver. Le but de cet article est donc d'éclaircir un peu les
esprits, en expliquant pas à pas l'architecture des cartes graphiques,
ainsi que leur fonctionnement. Par souci de clarté, ce dossier sera
scindé en deux parties, la seconde partie devant être publiée peu après
cette première partie.
Il est évident que l'architecture de chaque carte est très complexe, et
cela prendrait des mois à expliquer tout dans le moindre détail. Cet
article se limitera donc à une vue d'ensemble de chaque élément majeur
de l'architecture d'un GPU. Cette architecture sera celle d'un GPU
générique et non celle d'un GPU en particulier, bien entendu.
Mais d'abord, qu'est-ce qu'un GPU ? En fait, il s'agit tout simplement
du processeur de la carte graphique. L'acronyme GPU signifie en effet
Graphics Processing Unit (unité de traitement graphique). Signalons
d'emblée que nous ne nous occuperons pas de la mémoire ou des autres
composants. Il faut dire que le GPU est l'élément principal d'une carte
graphique, et de loin le plus complexe. Ces processeurs ont vu leur
complexité augmenter exponentiellement, au point de rapidement
rattraper les processeurs de nos ordinateurs.
Les GPUs sont d'ailleurs nettement plus performants que les CPUs
lorsqu'il s'agit d'affichage et de rendu 3D, malgré la grande
différence au niveau des fréquences de fonctionnement. C'est dû au fait
qu'un CPU est prévu pour effectuer toutes sortes de tâches très
différentes, alors qu'un GPU est un processeur optimisé pour la 3D.
Au fil des pages, vous pourrez comprendre pourquoi ils sont devenus
tellement performants, ce qui peut limiter leur performance, où encore
ce qu'ils sont capables de faire. Une fois toutes ces informations en
votre possession, vous comprendrez non seulement ce qui se passe dans
votre ordinateur, mais vous serez également plus à même de choisir
votre prochaine carte graphique de façon judicieuse.
Vue d'ensemble
Mais commençons par le commencement : un GPU est constitué de nombreux
composants, les deux plus importants étant le vertex pipeline et le
pixel pipeline. Le premier s'occupe des vertices (pluriel de vertex),
alors que le second s'occupe des pixels.
D'une façon plus générale, la gestion des vertices, des primitives, la
tessellation, le vertex pipeline, le clipping, le culling et le tramage
font partie du traitement de la géométrie. Le pixel pipeline, le test
de profondeur, le test alpha, le test brouillon, le brouillard et
l'alpha blending, quant à eux, font partie du rendu.
Chaque composant traite l'information reçue, la modifie si nécessaire,
et passe les informations au composant suivant. Cet article est conçu
de manière à suivre le flux des informations au sein du GPU. Ainsi,
chaque tête de chapitre correspondra à un élément, en suivant les
flêches du schéma ci-dessous.