prix

Stéphane Charpentier | 12/05/2005
Accès direct :

Le Vertex Pipeline : performances

Pas mal de choses peuvent influencer les performances du vertex pipeline. Il est donc intéressant de savoir ce qui peut faire qu'une carte graphique sera plus rapide qu'une autre. Aussi, voici quelques éléments de réponse à la question : "qu'est-ce qui fait qu'une carte graphique est rapide ?". Mais uniquement au niveau du vertex pipeline.

Unités de traitement des vertices

Ou vertex units, pour les anglais. Chaque unité représente en quelque sorte un vertex pipeline. Puisqu'un vertex pipeline (ou un vertex shader) ne traite qu'un seul et unique vertex à la fois, l'ajout de plusieurs de ces unités de traitement permet de traiter plusieurs vertices en parallèle. L'avantage est évidemment considérable, puisqu'au niveau du traitement des vertices les performances augmentent de façon pratiquement linéaires.

Image
Vertex shader d'éclairage anisotropique (nVIDIA)


En effet, la carte graphique reçoit généralement un très grand nombre de vertices à la fois (plusieurs milliers, voire millions), et il est donc très simple de traiter 2, 4, 8, 12 ou 16 vertices d'un coup au lieu d'une seule. Les performances sont ainsi doublées, quadruplées, etc.

Taille et vitesse du bus mémoire

Il s'agit, dans les spécifications de la carte graphique, du "128-bit" ou "256-bit" qui se trouve à côté de la quantité de mémoire présente sur la carte. Cette taille influence la quantité de données pouvant être transféree entre la mémoire et le GPU. On pourrait se dire que seules les textures se trouvent dans la mémoire de la carte graphique, mais il est en fait possible d'y mettre plus ou moins n'importe quel type d'information, y compris des vertices. L'avantage est évidemment d'avoir les données à promixité du GPU, et de pouvoir ainsi y accéder très rapidement.

La taille du bus mémoire et sa fréquence détermineront à quelle vitesse les vertices peuvent être envoyés au GPU. Il faut cependant faire attention lors de la lecture de ces informations. Ainsi, une carte disposant d'un bus 128-bit et de mémoire à 300 MHz sera plus lente qu'une carte disposant d'un bus 256-bit et de mémoire à 200 MHz. Le plus simple est de multiplier le nombre de bits par la fréquence pour obtenir une valeur permettant de donner un ordre de performance.

Taille des vertices

Probablement pas l'élément le plus important à prendre en compte au niveau des performances, il a pourtant un certain impact sur les performances. Comme expliqué dans le chapitre concernant les vertices, ceux-ci ont une taille variable. Si cette taille dépasse une certaine valeur, qui est en général spécifique à une génération de chipset, les performances seront réduites.

Le problème, dans ce cas-ci, c'est que les constructeurs ne communiquent généralement pas ces valeurs aux consommateurs (vous ne verrez jamais cette valeur sur la boite de la carte graphique), et les développeurs de jeux ne communiquent jamais la taille des vertices utilisée dans leurs jeux, puisque celle-ci est variable. Il est donc au final inutile de tenir compte de cet élément lors de l'achat d'une carte graphique, mais il est intéressant de savoir qu'il existe.

Nombre d'instructions d'un shader

Le nombre d'instructions d'un vertex shader a beaucoup d'influence sur les performances de celui-ci. En effet, sans même tenir compte du fait que certaines instructions prennent plus de temps que d'autres, les performances d'un vertex shader diminuent très vite avec l'augmentation du nombre d'instructions. Encore une fois, tout comme pour la taille des vertices, ce type d'information est difficile à obtenir, aussi bien au niveau des constructeurs que des développeurs.
 
 
 

Actualités relatives Cartes graphiques