Preview : NVIDIA GeForce 6800 Ultra

Publié le 14/04/2004 par et
Imprimer
Les architectures actuelles : NVIDIA
L’architecture actuelle de NVIDIA (GeForce FX 5700 et FX 5900) est très différente. Tout d’abord elle n’est composée que d’un groupe de 4 pipelines.


Ces pipelines sont cependant plus complexes que celles d’ATI, mais, malheureusement pour NVIDIA, elles sont terriblement inefficaces. NVIDIA a dû travailler énormément sur ces drivers pour combattre cette inefficacité et force est de constater qu’ils y sont en partie parvenus sans toutefois atteindre le niveau d’ATI.

Les pixel pipelines des GeForce FX sont composées d’une énorme unité de calcul FP32. Celle-ci peut soit traiter 2 adresses de textures et piloter les 2 unités de texturing du pipeline soit effectuer une opération mathématique définie par les Pixel Shader. Cette unité est même capable de traiter directement une instruction complexe comme SINCOS alors que les Radeon doivent la décomposer et la traiter en petits morceaux.

Après cette unité principale se trouvent 2 autres plus petites unités FP32. Elles sont cependant plus complexes que les mini-ALU d’ATI. Ces unités sont l’évolution des combiners utilisés par NVIDIA depuis le GeForce 256. Dans le GeForce FX ils sont capables de réaliser les instructions de base.

Les GeForce FX sont incapables de faire de la co-issue. Ce n’est pas vraiment un problème mais ça supprime à NVIDIA des possibilités d’optimisations. Leur inefficacité ne vient cependant pas de là. Elle vient de 2 points :

    - Les pipelines de NVIDIA disposent de beaucoup d’unités différentes mais chacune spécialisée. Il faut donc que le pixel shader ait besoin de faire appel à chaque unité dans un ordre précis pour pouvoir les utiliser d’une manière optimale. Ce n’est malheureusement pas souvent le cas et une partie des unités se tourne les pouces la plupart du temps. C’est notamment le cas de la grosse ALU et des unités de texturing vu qu’elles ne peuvent pas fonctionner en même temps.

    - Les unités de calcul des pixels pipelines travaillent sur des données temporaires : les registres. Ceux-ci correspondent grossièrement à la touche mémoire d’une calculatrice. Vu la complexité des calculs à réaliser il est généralement nécessaire d’utiliser plusieurs registres. Les Pixel Shader 2.0 en définissent d’ailleurs 12. Dans le GeForce FX, les registres sont présents au cœur du pipeline. Grossièrement il y a un pipeline de registres dans le pixel pipeline. Ce pipeline de registres est large de 256 bits. Il permet ainsi de stocker 2 registres 128 bits (FP32).

    Si plus de registres sont utilisés il doit les stocker sur plusieurs étages du pipeline. Le débit du pixel pipeline chute proportionnellement au nombre d’étages utilisés pour stocker les registres. C’est un gros problème pour NVIDIA qui a bridé pendant longtemps les performances des GeForce FX. NVIDIA a essayé d’y apporter une solution de 2 manières différentes : en permettant l’utilisation du FP16 (64 bits) et donc de stocker 4 registres par étage et en optimisant le compiler de ses drivers de manière à ce qu’il puisse modifier le pixel shader pour qu’il utilise moins de registres, quitte, parfois, à devoir exécuter plus d’instructions.
Voyant venir des jeux qui réaliseraient beaucoup de passes d’opérations simples, NVIDIA a été bien embêté avec ses 4 uniques pipelines complexes. Pour une opération simple, les unités de calcul du GeForce FX sont inutiles. NVIDIA a ainsi permis aux GeForce FX de pouvoir traiter à double vitesse l’une de ces opérations simples : le Z-only rendering (données Z = profondeur du pixel). Cette opération simple permet d’initialiser le pixel et d’éjecter les pixels masqués. Elle ne calcule pas la couleur du pixel.

Partant de ce constat, NVIDIA s’est dit qu’il était bête de laisser les unités qui calculent les couleurs se tourner les pouces. NVIDIA a ainsi permi à ces unités qui en temps normal s’occupent de la couleur de traiter les données de profondeur. Ceci permet de doubler le débit de calcul en Z-only et sera très utile dans Doom III par exemple. Il s’agit là d’une astuce très intéressante mais qui ne justifie cependant pas qu’on classe les GeForce FX comme des GPU disposant de 8 pixels pipelines.
Vos réactions

Top articles