Le jeu des 7 erreurs

Le NV40 a été le premier processeur graphique à aligner pas moins de 16 pixel pipelines et 6 vertex pipelines. Du coup, le nombre de transistors explose : 220 millions en 130nm pour une surface de die ~310mm². Avec le G70 qui bénéfice d’une gravure en 110nm, la surface du die passe à ~333mm² et permet de loger 302 millions de transistors. Les 82 millions de transistors suplémentaires permettent de loger 24 pixel pipelines (contre 16) soit 50% de plus et 8 vertex pipelines (contre 6), une progression de 33%.
De leur côté, les fréquences n’évoluent pas beaucoup. Le G70 est cadencé à 430MHz alors que le GeForce 6800 Ultra affichait déjà 425MHz. Au niveau de la mémoire, la GDDR3 est toujours au rendez-vous mais passe de 550MHz à 600MHz (+9%). Les valeurs données ici sont celles préconisées par NVIDIA. Certains constructeurs commercialisent leurs produits à des fréquences plus élevées. Il s’agit simplement de cartes overclockées car toutes les 7800 GTX actuelles utilisent les mêmes composants. De plus, elles sont toutes vendues avec le système de refroidissement de référence.
Examen de la carte
Les GeForce 7800 GTX sont longues (230mm). En photo, elles semblent franchement beaucoup plus imposantes que leurs devancières mais en pratique, il n’y a que 13mm de plus au niveau du PCB. C’est essentiellement le système de refroidissement qui contribue à cette impression de longueur. Avec 35mm de plus, il couvre pratiquement toute la carte. Contrairement aux GeForce 6800 Ultra, les GeForce 7800 GTX se contentent d’un radiateur « simple slot ». Si le ventilateur reste identique en forme et diamètre, il bénéficie à présent d’une connectique plus évoluée composée de quatre fils comme sur les HSF des Pentium 4. Deux fils servent bien entendu à l’alimentation du ventilateur, le troisième rapporte la vitesse de rotation du ventilateur et le dernier dessert une sonde de température. Malgré une dissipation thermique comparable à celle des produits de la génération précédente (~110 Watts), les GeForce 7800 GTX s’illustrent par un silence de fonctionnement impressionnant. NVIDIA annonce 24dBA, une valeur synonyme de discrétion absolue, et le moins que l’on puisse dire est que le pari est gagné. Lors des essais, la température ambiante était de l’ordre de 30°C et même au cours de tests d’overclocking, le ventilateur est resté discret.
Au cœur du G70

Les données et instructions arrivent via le bus PCI-Express géré nativement. Soit dit en passant, aucune version AGP n’est actuellement au programme mais l’ajout d’un bridge laisse cette voie ouverte… Un des premiers étages est la géométrie de la scène traitée par les vertex shaders. Au nombre de 8, ils ont subi diverses optimisations mais NVIDIA ne donne pas beaucoup d’informations à ce sujet.
Depuis le NV40, les pixel pipelines utilisés par NVIDIA sont devenus très efficaces grâce à deux grosses unités de calcul successives. Dans le G70, on retrouve ces deux ALU ou « shader units » selon la documentation de NVIDIA. En se référant aux spécifications du pixel pipeline du NV40, on découvre une première unité qui peut soit appliquer une texture soit réaliser une opération sur les quatre composantes d’un pixel ou deux instructions en co-issue. NVIDIA a apporté des améliorations à l’unité de texturing, notamment lors de la gestion des textures FP16 et de l’Anisotropic Filtering.
On passe ensuite à une mini ALU destinée à des opérations simples ou « modifiers ». Elles réalisent des traitements qui se résument (en binaire) à ajouter/retirer 0 ou 1, ce qui équivaut par exemple à faire x¼, x½, x2, x4, etc.

La nouveauté introduite par le G70 est un « adder » (additionneur) qui vient compléter le « multiplier » déjà intégré dans le NV40. La présence combinée des « adder » et « multiplier » permet de réaliser directement la fonction MAD (multiplication puis addition) en une seule opération. Par exemple : Y = A x X + B. Pourquoi ajouter cette instruction MAD et pas une autre ? D’après une étude sur les shaders utilisés dans les applications, NVIDIA a déduit qu’il s’agissait d’une opération des plus utilisées. Le câblage de cette fonction des plus courantes se présentait donc comme la meilleure solution pour booster les performances… On notera que d’un point de vue purement technologique, l’ajout d’un « adder » ne demande pas de gros travaux et relativement peu de transistors car cette unité est très simple en comparaison avec un « multiplier ». Un choix judicieux même s’il reste très difficile d’en démontrer les bénéfices.
La seconde « shader unit » du G70 est identique à celle du NV40. Pour rappel, il s’agit d’une ALU comparable à la première en termes de fonctionnalités mais elle n’a pas accès à une unité de texturing. Elle est aussi suivie par une mini ALU. En revanche, que ce soit dans le NV40 ou le G70, cette seconde ALU dispose de la fonction MAD. Le G70 se retrouve donc avec deux « shaders units » quasiment identiques dans chaque pixel pipeline.

A la sortie des pixel pipelines, les « shaded fragments » prennent la direction des ROP (Raster Operations Pipes). A l’image du GeForce 6600 GT, à savoir moins de ROP que de pixel pipelines, NVIDIA a placé 16 ROP pour les 24 pixel pipelines du GeForce 7800 GTX. Ce choix s’explique de la même manière. Les ROP réalisent les opérations finales telles que l’antialiasing, la compression des couleurs et données Z ainsi que l’écriture dans le frame buffer. Ils sont donc largement tributaires de la bande passante mémoire. Cette dernière n’ayant pas progressé de manière significative par rapport au NV40, ajouter d’autres ROP était inutile : ils se seraient tourné les pouces !
NVIDIA annonce une augmentation significative du rendement avec le G70. Ainsi, là où un NV40 requiert 108 cycles pour un shader, le G70 arrive au même résultat en seulement 79 cycles. Même si ces chiffres proviennent de cas avenants pour le G70, l’accélération atteint un remarquable 36%. Pour vérifier les dires de NVIDIA, il faut pouvoir composer ses propres shaders. Cette opération dépasse nos compétences mais les résultats obtenus par nos confrères de hardware.fr montrent que le GeForce 7800 GTX affiche bien une progression significative : +6 à +37% selon le type de shader utilisé. Nous avons quand même pris soin de comparer les indices Pixel Shader 2.0 du 3D Mark 2003. La GeForce 6800 overclockée à 430/600MHz (fréquences de la 7800 GTX) affiche 193fps contre 333fps soit un gain de 15% en rapportant la comparaison par pixel pipeline.
Dans quel but ?
Vous vous demandez certainement pour quelle raison NVIDIA porte autant d’intérêts aux shaders. C’est très simple, les applications utilisent de moins en moins ce qu’on peut à présent qualifier de vieilles technologies à savoir : Géométrie et Texture. La tendance est clairement à l’emploi de shaders qui permettent des surfaces, ombres et éclairages réalistes. Avec des shaders plus évolués, il est possible de rendre des réflexions différentes en fonction du matériaux : métal, peau, eau, verre, plastique, etc. Pour y parvenir, il faut naturellement des shaders dans une version avancée à savoir le modèle 3.0. Mieux que de longues explications, l’évolution du rendu d’un personnage via les différentes évolutions d’Unreal Engine en dit long…
La nouvelle démonstration technologique de NVIDIA (Luna) utilise une moyenne de 211 instructions par pixel et elle atteint 500 instructions pour ses yeux. Du côté des vertex, la moyenne est aussi très élevée : ~115 instructions. Les shaders sont des programmes qui appliquent un traitement par lots de pixels (dans le cas des pixel shaders). Comme tout programme qui se respecte, les shaders ont des branchements comme par exemple condition 1 -> traitement 1, condition 2 -> traitement 2, etc. On peut ainsi écrire un shader particulièrement long comme c’est le cas pour les yeux de Luna dont seulement une partie des instructions sera traitée selon le cas. Cependant, cette recette n’est pas miracle. Lors du traitement d’un lot de pixels, le GPU ne calcule qu’un des branchements à condition que tous les pixels du lot ne nécessitent que le traitement de cette branche. Dans les cas contraires, il faut calculer les autres branchements également. Enfin, on notera qu’il est préférable d’utiliser un shader long que de jongler à charger/décharger des shaders courts.
Autre élément très important pour le rendu photo réaliste, le HDR (ou High Dynamic Range). Avec le format actuel GRBA en 8bits par canal soit 32bits, on reste limité au niveau des couleurs. Ceci conduit à un Dynamic Range (= log10 (max_intensity/min_intensity)) de 2.4dB alors que celui de l’œil humain est de 14dB. Avec le HDR, on passe à un rendu en FP16 pour chaque canal, ce qui conduit à un total de 64bits. Les technologies FP16 de NVIDIA permettent d’atteindre un Dynamic Range de 12dB proche de nos limites. L’utilisation du HDR qui se généralisera rapidement avec les jeux de dernière génération qui demandent une puissance de calcul très importante lors du blending nécessaire au rendu final.
Les nouveautés
Une nouvelle puce sans nouvelles fonctionnalités laisserait perplexe… Dans le cas du G70, il s’agit du Transparency Antialiasing. Rien de bien compliqué à comprendre, cette fonction permet d’appliquer de l’antialiasing à l’intérieur des textures. Toutes ? Non, celles qui font appel à la transparence comme les grillages ou encore les feuillages. L’idée est excellente et le gain en qualité visuelle est évident. Le Transparency Antialiasing fonctionne selon deux modes : multi sampling ou super sampling. Ce dernier (illustration) donne des résultats plus probants.
La seconde nouveauté est plutôt la correction d’un bug. Sur les NV40, le moteur vidéo devait être capable de compresser et compresser les MPEG1, MPEG2, MPEG4 et WMV9. En pratique, cette fonction a mis le temps à arriver. Après la sortie de PureVidéo fin de l’année dernière, il a fallu attendre un patch DXVA de Microsoft pour le décodage avec Windows Media Player. Peu de temps après, il a fallu se rendre à l’évidence, le décodage WMV9 assisté n’est pas fonctionnel sur les GeForce 6800. NVIDIA a corrigé le tir sur les GeForce 6600 et 6200, c’est donc tout naturellement que le GeForce 7800 GTX hérite de cette correction.
Configuration de test

Pour tester le GeForce 7800 GTX, nous n'avons pas changé notre configuration de référence qui se base toujours sur un Athlon 64 3500+ monté sur une K8N Neo4 Platinum avec 2 x 512Mo de DDR400. C'est peut-être un peu léger pour une telle carte graphique, mais cette configuration est assez représentative de l'équipement des membres de notre forum. Il en va de même pour l'écran. Depuis une année, nous avons remplacé nos gros 17 et 19 pouces CRT par des 17 pouces TFT. Ceux-ci limitent la résolution des tests à 1280x1024. Là encore, il s'agit d'une résolution où une carte comme la GeForce 7800 GTX ne montre pas tout son potentiel. Ceci étant, les résultats sont loin d'être inintéressants !
Pour comparer les performances, nous avons retenu une GeForce 6800 GT testée à ses fréquences nominales mais aussi poussée à 430/600MHz comme la 7800 GTX afin de mettre en évidence les gains apportés par l'architecture G70. Suite à la récente publication des spécifications du GeForce 7800 GT, nous avons underclocké notre 7800 GTX à 335/550MHz pour juger ses prestations. Enfin, notre Radeon X800 XL fait toujours office d'étalon tout comme la GeForce 6600 GT…
Concernant les jeux, nous les avons choisis avant les tests d’après les sujets de discussion de notre forum jeux vidéos. A noter que Track Mania et Pacific Fighters ne fonctionnent qu’en 1152 x 864 et non en 1280x1024.
Matériel
MSI K8N Neo4 Platinum
AMD Athlon 64 3500+ à 2200MHz core Winchester
2 x 512Mo DDR400 2225 1T
Maxtor DiamondMax Plus 9 120Go SATA-150
ViewSonic VP171s
GeFrce 7800 GTX, GeForce 7800, GeForce 6800 GT, GeForce 6600 GT et Radeon X800 XL
Logiciel
Windows XP Pro + SP2
ForceWare 77.72
Catalyst 5.6
FutureMark 3D Mark 2003 bluid 3.5.0 et 2005 1.1.0 (défaut)
Aquamark3 (défaut)
Half-Life² 1280x1024 Qualité maximale
DoomIII 1280x1024 Qualité maximale
FarCry 1280x1024 Qualité maximale
Trackmania Sunrise 1152x864 Qualité maximale
Splinter Cell 1280x1024 Qualité maximale
Pacific Fighters 1152x864 Qualité maximale
BattleField 2 1280x10248 Qualité maximale
Performances
Pour commencer, voici les résultats obtenus avec les benchs les plus courants. Ils ont l'avantage de permettre une comparaison directe avec les scores que vous pouvez mesurer sur votre machine.
La première chose qui saute aux yeux dans les résultats détaillés du 3D Mark 2003 est le fillrate en single texturing du GeForce 7800 GTX. Il fait un bond énorme et dépasse les 10000Mpix/s. Il s’agit d’une progression de 50% quand on compare avec une GeForce 6800 boostée aux fréquences de la 7800 GTX. C’est tout à fait normal étant donné que cette dernière dispose de 24 pixel pipelines contre 16 pour le NV40. On observe également une évolution notable dans le traitement des pixel shaders. Comme nous l'avons déjà signalé, le gain est supérieur à 50%, ce qui traduit l'optimisation des unités du pipeline. Etrangement, on constate un rendement moins élevé au niveau des vertex shaders avec le 3D Mark 2003...
Pour les différentes scènes de « jeu » du 3D Mark 2003, les gains sont de l’ordre de 20% en DirectX 8 et vont jusqu’à 25% en DirectX 9. La scène DirectX 7 n’a aujourd’hui plus aucun intérêt…
Dans le 3D Mark 2005, on observe des gains toujours très importants : respectivement 20%, 32% et 23%. Il ne faut bien entendu pas perdre de vue que le GeForce 7800 GTX dispose de 8 pixel pipelines de plus.
Quant au GeForce 7800 GT, il affiche des performances de premier plan malgré des fréquences relativement modestes 335/550MHz. Il atteint des scores proches d’une GeForce 6800 GT à 430/600MHz. En clair, il est plus performant qu’une GeForce 6800 Ultra (400/550) !
| GeForce 6800 430/600 |
|
47.9 |
| GeForce 6800 430/600 |
|
86.8 |
| GeForce 6800 430/600 |
|
64.8 |
| GeForce 6800 430/600 |
|
62.1 |
| GeForce 6800 430/600 |
|
57.0 |
| GeForce 6800 430/600 |
|
74.4 |
Place à présent aux jeux ! Première constatation, Half-Life² n’est réellement pas un problème ou plus exactement si. Dans cette résolution et avec un CPU comme l’Athlon 3500+, les différences entre les cartes testées sont anecdotiques… On peut d’ailleurs ranger dans la même catégorie : FarCry, Pacific Fighters et Track Mania. Ces jeux sont « trop simples » et le 1280x1024 trop peu exigeants pour mettre en valeur les processeurs graphiques puissants. Toutefois, Track Mania tire largement profit des 8 pixel pipelines ajoutés aux GeForce 7800 GTX : +22% par rapport au GeForce 6800 GT overclocké à 430/600MHz.
Ce sont surtout les moteurs 3D plus lourds qui mettent en évidence les capacités du GeForce 7800 GTX. Ainsi, dans DoomIII, Splinter Cell et BattleField2 le nombre d’images par seconde augmente respectivement de 13%, 36% et 27% toujours en comparaison avec une GeForce 6800 GT à 430/600MHz. En prenant comme point de référence une GeForce 6800 GT « normale », les gains sont de 29%, 64% et 55%.
| GeForce 6800 430/600 |
|
45.8 |
| GeForce 6800 430/600 |
|
59.9 |
| GeForce 6800 430/600 |
|
62.3 |
| GeForce 6800 430/600 |
|
55.9 |
| GeForce 6800 430/600 |
|
39.6 |
| GeForce 6800 430/600 |
|
50.5 |
| Radeon X800 XL |
AA non pris en charge |
|
En utilisant les mêmes jeux en 1280x1024 mais avec l’Antialiasing en 4x et l’Anisotropic Filtering en 8x, les cartes graphiques sont nettement plus sollicitées. Pour rapidement situer les choses, la GeForce 7800 GTX affiche en 1280x1024 AA 4x et AF 8x des performances du même niveau que la GeForce 6800 GT à 430/550MHz en 1280x1024. En comparant à résolution identique, la GeForce 7800 GTX conserve un avantage moyen de 21% sur la GeForce 6800 GT overclockée aux mêmes fréquences. Ici, la GeForce 7800 GT s’offre le luxe de présenter des performances du même acabit qu’une GeForce 6800 Ultra.
Si au fur et à mesure de la réalisation des tests nous n’avions pas vraiment pris conscience de la progression des performances, c’est en analysant les résultats que les gains nous ont impressionnés. Avec 50% de pixel pipelines en plus et une augmentation de 33% des vertex pipelines tout en conservant 16 ROP, le gain moyen de 21% (1280x1024 AA 4x et AF 16x) par rapport à une 6800 GT poussée aux fréquences de la 7800 GTX est tout à fait remarquable. En comparaison avec une « simple GeForce 6800 GT », les performances augmentent en moyenne de 61%. On retiendra également que la GeForce 7800 GT rivalise directement avec une GeForce 7800 Ultra… NVIDIA avait promis des gains, ils sont bien présents.
Overclocking
La GeForce 7800 GTX affiche déjà des performances de très haut niveau à 430/600MHz : 7632 au 3D Mark 2005. A 490/1330 (+14% / +11%), le maximum supporté sans erreur (et sous une très forte chaleur), l’indice s’établit à 8373 (+10%). Un résultat pour le moins promettant. Dans ces conditions, le ventilateur monte dans les tours et la GeForce 7800 GTX se fait entendre. Elle approche alors des nuisances sonores d’une GeForce 6800 GT avec le système de refroidissement de référence.
Nuisances et consommation
Les performances sont une chose, le confort d’utilisation en est une autre. Aujourd’hui, beaucoup attachent de l’importance au silence de fonctionnement. Là encore, le pari est gagné. Une GeForce 7800 GTX installée dans une configuration à base d’Athlon 64 3500+ avec le ventilateur d’origine est un véritable régal. Nous sommes à des années lumière des GeForceFX 5800 et même en comparaison avec les GeForce 6800, les progrès sont significatifs. NVIDIA annonce 24dBA pour la GeForce 7800 GTX, ce chiffre n’est pas farfelu. Il traduit un réel silence de fonctionnement que nous avons bien constaté.
Côté consommation, notre PC de référence demande 110Watts au repos et cette valeur monte à 132Watts avec la GeForce 6800 GT. Quand la configuration est équipée de la GeForce 7800 GTX, la puissance mesurée au repos (bureau de Windows) est de 123Watts. En charge, la consommation avec la GeForce 7800 GTX flirte avec 220Watts mais ne l’atteint jamais (218Watts). A titre de comparaison, la GeForce 6800 GT (overclokée ou non) monte à 224Watts. La Radeon X800XL affiche au maximum un modeste 185Watts.
Au niveau de la température, notre GeForce 7800 GTX approche les 80°C en charge. A la même fréquence, la GeForce 6800 GT affiche 75°C soit 5°C de moins. Etrange vu les technologie de gravure ? Non, si on tient compte des différences qui existent entre les radiateurs et surtout le niveau sonore. Mieux vaut quelques degrés de plus et des dBA en moins.
Conclusion
Avec le NV40, NVIDIA tenait déjà le « bon bout ». Grâce au G70, le constructeur « transforme l’essai ». Au niveau des performances, il n’y a pas de quoi être déçu : +21% par rapport à une GeForce 6800 GT poussée à 430/600MHz en 1280x1024 AA4 et AF 8x avec les jeux utilisés pour ce dossier. Les pixel pipelines sont réellement plus performants que ceux du NV40. Le gain va jusqu’à 15% selon les cas. Côté vertex pipelines, nos essais sont moins concluants avec un rendement qui semble moindre (avec les shaders de 3D Mark 2003) mais la puissance globale grimpe quand même. Longtemps jugées plus bruyantes que les Radeon, les GeForce ont souvent été critiquées... Depuis l’arrivée des X850 XT, ATI a perdu du terrain. Avec les GeForce 7800 GTX, NVIDIA remplace un défaut par une qualité : le bruit fait place au silence. Toujours au rayon des bonnes nouvelles, les GeForce 7800 GTX sont disponibles en magasins depuis leur annonce. Pour une fois, les constructeurs tiennent leurs engagements... Côté prix, 550€ représentent une certaine somme, mais pour un haut de gamme, le tarif demeure correct. De plus, le potentiel d’overclocking est honorable compte tenu des fréquences déjà élevées et de la complexité de la puce. Enfin, le GeForce 7800 GT est vraiment des plus intéressants avec un prix franchement « démocratique » en regard de la gamme du produit.
Si le G70 n’apporte pas de réelle nouveauté, le Transparency Antialiasing est bien sympathique. Il ajoute un réel plus dans le rendu des textures transparentes telles que feuillages, grillages etc. Dernier point à souligner, le moteur vidéo défectueux sur les NV40 est ici bien fonctionnel.
NVIDIA GeForce 7800 GTX : 9.5/10
Pour : Performances, silence, radiateur simple slot, moteur vidéo fonctionnel, Transparency Antialiasing, pixel pipelines optimisés, overclocking correct, PCI-Express natif
Contre : Carte de grande taille
NVIDIA GeForce 7800 GT : 10/10
Pour : Performances, silence, radiateur simple slot, moteur vidéo fonctionnel, Transparency Antialiasing, pixel pipelines optimisés, overclocking correct, PCI-Express natif
Contre : Carte de grande taille