Preview : NVIDIA GeForce 6800 Ultra

Publié le 14/04/2004 par et
Imprimer
Architecture
Lorsque l’on parle de l’architecture d’un GPU, il est avant tout question de l’architecture de la partie du GPU qui s’occupe de traiter les pixels. Cette partie est la plus importante car elle influe fortement sur les performances mais aussi sur la qualité du rendu. Les fabricants de GPU sont ainsi tenus d’être très attentifs au moindre détail lors de sa conception. C’est cette partie qui en général fera (ou pas) le succès d’un GPU. Cette partie est communément appelée "les pipelines". Il est cependant préférable de préciser "pixel pipelines" étant donné que dans un GPU tout est présent sous forme de pipeline.

Le nombre de pixel pipelines a souvent déchaîné les passions. Pour certains il représente directement les performances et pour d’autres il n’est rien d’autre qu’un chiffre utilisé par les services marketing des fabricants de GPU. Tous ont à la fois tort et raison. Le nombre de pipeline est important puisque les performances lui seront directement proportionnelles. Cependant il ne fait pas tout. Il ne représente qu’un paramètre et malheureusement les différents services marketing ne communiquent pas toujours sur les autres paramètres. Ils sont même parfois tentés de tricher sur le nombre de pipelines uniquement parce qu’ils estiment que c’est le seul moyen de représenter le niveau d’avancement de leur architecture.

C’est ce qu’a fait NVIDIA au lancement du GeForce FX 5800. Pour éviter de détailler son architecture et pour avoir un papier similaire à son concurrent direct NVIDIA a ainsi affiché le GeForce FX 5800 comme un GPU disposant de 8 pixels pipelines alors qu’il n’en possédait que 4. Tout ceci avait posé de gros problème de compréhension de l’architecture du GeForce FX 5800 tant les résultats obtenus étaient différents de ce qu’indiquait NVIDIA.

Avec le GeForce 6800 Ultra, NVIDIA a opté pour une approche très différente et nous a permi de comprendre en profondeur l’architecture du GeForce 6800. Avant de rentrer dans les détails de celle-ci, il est important de rappeler d’où nous venons.

Les pages qui suivent sont assez techniques, ceux qui le souhaitent peuvent bien sûr sauter quelques pages mais nous vous conseillons d´y revenir lorsque vous disposerez de plus de temps.
Les architectures actuelles : ATI
Les Radeon 9700 et 9800 disposent chacun de 8 pixels pipelines ou plus exactement de 2 groupes de 4 pixels pipeline, chaque groupe gérant les 4 pipelines à la manière d’une unité SIMD (même opération pour les 4).


Ces pipelines sont relativement courts mais très efficaces. Chaque pipeline dispose d’une unité capable de traiter une adresse de texture en FP32 et de piloter l’unique unité de texturing du pipeline. A chaque passage dans le pipeline un pixel peut donc se voir appliquer une texture. Ensuite, vient une grosse unité arithmétique FP24 capable de traiter toutes les instructions utilisées par les pixel shader. Cette unité peut effectuer une même opération sur les 4 composantes d’un pixel (rouge, vert, bleu, transparence) ou une opérations sur 3 composantes et une différente sur la 4ème composante.


Cette possibilité se nomme co-issue et permet dans certains cas de doubler les performances. En pratique les gains sont réduits mais pas inexistants. DirectX9 ne prend plus en charge la co-issue alors que DirectX8 le permettait. C’est donc aux drivers ATI d’arranger le pixel shader de manière à pouvoir profiter de cette possibilité aussi souvent que possible.

Enfin, au bout du pipeline se trouve une petite unité FP24 que nous nommerons mini-ALU. Celle-ci est capable de réaliser des opérations basiques comme des déplacements de données et des modifiers. Un modifiers est une opération simple et fixe qui peut être câble dans un GPU. Ces opérations simples peuvent par exemple être x2, x4, x8 ... L’opération est simple en base 2 puisqu’il s’agit de rajouter un ou plusieurs 0 derrière le chiffre à multiplier tout comme nous le faisons lorsque nous multiplions par 10, 100 ou 1000 en base 10. La présence de cette mini-ALU permet de ne pas devoir perdre du temps en utilisant la grosse unité de calcul pour faire des choses simples. Là aussi les gains sont variables et les drivers ATI doivent optimiser le code pour en profiter car contrairement aux Pixel Shader 1.4, les modifiers ont presque disparus des Pixel Shader 2.0 et 3.0.
Vos réactions

Top articles