Introduction
C’est finalement aujourd’hui que nVidia a décidé de lancer sa toute nouvelle architecture de carte 3D, la GeForce 8 ! Première carte DirectX 10, elle intègre également sans aucun doute la puce la plus innovante pour la firme au caméléon depuis deux ans et demi et la GeForce 6800 Ultra, et ses répercussions devraient se ressentir sur une période au moins aussi longue ! Vu l’importance de cet évènement, nous vous proposons donc comme de coutume un dossier complet sur cette carte, analysant à la fois son architecture, sa qualité visuelle, ses performances théoriques mais aussi pratiques sur les derniers jeux à peine sortis. La GeForce 8 rappelle-t-elle plus la GeForce 6 ou la GeForce FX ? Réponse dans cet article.
Architecture
Connaissez-vous le Kansas City Shuffle ? Ceux d’entre vous qui ont vu le sympathique film Slevin savent de quoi je parle, pour les autres disons que c’est l’art d’amener tout le monde à regarder dans une direction pendant que vous allez dans la direction opposée.
Il faut croire que chez NVIDIA on connaît bien le Kansas City Shuffle : depuis des années ils laissent entendre que le moment n’est pas encore venu pour une architecture unifiée et au dernier instant ils nous proposent une architecture unifiée sur laquelle ils travaillent depuis quatre ans ! Pour vous donner une idée de la façon dont ils ont induit tout le monde en erreur voici une citation de David Kirk :
« Il n’est pas clair à mes yeux que l’architecture pour un bon vertex shader, efficace et rapide, soit la même que l’architecture pour un bon pixel shader rapide. Un pixel shader nécessitera beaucoup, beaucoup plus de performance mathématique pour les textures et de bande passante en lecture qu’une unité optimisé de vertex shader. Donc si vous utilisez cette unité pour faire du vertex shading, la plus grosse partie du hardware sera inutilisée la plupart du temps. Qu’est ce qui est mieux – un vertex shader minimal et optimisé et un pixel shader minimal et optimisé ou deux shaders hybrides moins efficaces ? Il y a un vieux proverbe qui dit “Bon à tout, bon à rien”. »
NVIDIA avait donc bien caché son jeu à ce sujet, mais ce n’est pas la seule surprise que la firme de Santa Clara nous réservait avec son G80.
GeForce 8 : le GPU redéfini
Ce titre peut sembler un peu exagéré mais pourtant il faut bien reconnaître que cela faisait longtemps que l’on n’avait pas vu autant de nouveautés dans l’architecture d’un GPU : architecture unifiée, 128 processeurs scalaires dual-issue, 24 ROP, bus 384 bits… Il faut dire que les ingénieurs de NVIDIA ont fait les choses en grand et nous proposent un monstre de 681 millions de transistors. Mais chaque chose en son temps, nous détaillerons toutes les spécifications du G80 dans le détail d’ici peu.
Si vous êtes un fidèle lecteur de Presence-PC vous êtes sans doute habitués à notre tableau récapitulatif, mais vous devez sans doute être un peu interloqués par ce chiffre de 128 ALU. A quoi correspond-il ? A l’équivalent d’un GPU à 128 “pipelines” ? Non évidemment pas. Voici ce que nous disions dans notre preview du G70 :
« Il faut donc dés aujourd’hui commencer à se débarrasser de la conception de pixel pipeline telle qu’elle existait jusqu’ici et considérer plutôt désormais deux choses distinctes : un pool d’ALU et un nombre de ROP (qui correspondent plus aux pixel pipelines tels qu’on l’entendait auparavant). Cette distinction est poussée à son extrême sur le Xenos où les ALU et ROP se trouvent sur deux puces séparées. Certains supposent même que les GPU du futur pourraient n’être en fait que des processeurs de flux (streaming processors) équipés d’un grand nombre d’ALU totalement généralistes permettant d’effectuer toute sorte de calculs avec quelques unités fixes dédiées aux tâches purement graphiques. On n’en est certes pas encore là mais le Xenos est incontestablement un premier pas dans ce sens. »
Alors certes on n’en était pas encore là au mois de Juin 2005 lorsque nous écrivions cet article mais il faut bien avouer que cela ressemble étrangement au fameux G80 qui nous intéresse aujourd’hui ! Pour plus de détails sur ces ALU, ou Streaming Processors comme NVIDIA se plaît justement à les appeler, rendez vous dans section dédiée.
Vous n’aurez pas manqué de remarquer que le nombre de ROP a enfin augmenté ce qui n’avait plus été le cas depuis l’introduction du NV40 en avril 2004. Depuis 2 ans et demi le fillrate brut de nos GPU avait donc relativement peu évolué au gré de l’augmentation de fréquences, mais au vu de la bande passante mémoire disponible cela n’était pas vraiment surprenant. Comme on pouvait s’y attendre donc, lorsque NVIDIA a augmenté le nombre de ROP, qui passe de 16 à 24 (20 sur la 8800 GTS), il l’a fait conjointement avec l’introduction de son nouveau bus 384 bits (320 bits sur la 8800 GTS). Mais ce n’est pas tout : ces ROP ont également été largement remaniés comme nous le verrons dans la partie qui leur est consacrée.
Diagramme : scalaire VS vectoriel
Avant de se plonger dans le détail dans l’architecture du G80, observons d’abord un diagramme de haut niveau du nouveau GPU.
Un simple coup d’œil sur celui-ci devrait vous convaincre des changements radicaux effectués par NVIDIA depuis le G70. Au centre de ce nouveau GPU on retrouve donc un ensemble d’ALU scalaires : 128 dans le cas du 8800 GTX. Vous l’aurez remarqué, nous avons bien précisé ALU scalaires car jusqu’ici sauf (une) exception les GPU employaient des ALU vectorielles de 4 éléments, parfois 5 pour certains vertex shaders. Par conséquent le saut en puissance de calcul n’est pas aussi impressionnant qu’il n’y paraît au premier abord : après tout NVIDIA disposait de 8 ALU vectorielles dans les vertex shaders, et de 24 ALU vectorielles dual-issue dans ses architectures G70/G71 si l’on fait le total on retrouve donc 32 ALU vectorielles contre 128 ALU scalaires, alors tout cela n’est il que marketing ?
Non bien évidemment : tout d’abord il y a une grosse différence entre les ALU du G70 et celles du G80. Alors que celles de l’ancienne architecture de NVIDIA étaient cadencées peu ou prou à la fréquence du GPU, les nouvelles ALU du G80 utilisent une fréquence d’horloge plus de 2 fois plus élevée que celle du reste du GPU et sont donc cadencées à 1350 MHz dans le cas du 8800 GTX. Ainsi, si le nombre d’ALU n’augmente pas aussi radicalement qu’escompté, ces ALU tournent deux fois plus rapidement que sur le précédent haut de gamme de NVIDIA !
La deuxième grosse différence entre les ALU du G80 et celles du G70 tient justement au fait qu’elles soient scalaires. Certes la plupart des calculs d’un GPU est effectuée sur des vecteurs (X, Y, Z, W pour la géométrie R, G, B, A pour la couleur), néanmoins optimiser du code pour des ALU scalaires est un travail nettement plus aisé pour un compilateur, il n’y a qu’à voir les efforts qu’à du entreprendre Intel pour offrir un compilateur autovectorisant le code afin d’utiliser au mieux les unités SSE.
Nous précisions plus haut que la plupart des GPU utilisaient des vecteurs de 4 éléments sauf exception, l’exception en question concerne un GPU de 3DLabs : le P10. Ce dernier ne vous rappelle peut être rien, on ne vous en tiendra pas rigueur, car sa carrière en tant que puce pour joueur est restée des plus confidentielles. Apparu à l’été 2002 en même temps que la Parhelia de Matrox, mais largement moins médiatisé, le P10 tout comme son compagnon d’infortune made in Canada, est apparu comme un GPU intermédiaire entre DirectX 8 et DirectX 9 (Vertex Shader de niveau 2.0 associés à des Pixel Shaders 1.3). Malgré son échec le P10 a introduit plusieurs idées intéressantes : l’emploi d’ALU scalaires à la place des ALU vectorielles qui étaient la norme jusque là était l’une d’entres elles. A cette époque 3DLabs avait indiqué que jusqu’à 30 % des instructions dans un pipeline de transformation standard n’étaient pas des instructions vectorielles. NVIDIA estime pour sa part que des ALU scalaires permettent d’aller jusqu’à doubler les performances par rapport à des ALU vectorielle mais cette estimation semble pour le moins optimiste.
Dans tous les cas à voir aujourd’hui NVIDIA reprendre le même concept on peut en déduire que 3DLabs n’avait pas tort. Jusqu’ici ATI et NVIDIA avaient essayé de minimiser le problème en introduisant la notion de co-issue qui permettait d’effectuer une opération vectorielle et une instruction scalaire en même temps, voire deux instructions sur des vecteurs à deux éléments simultanément. Aussi ingénieuse soit elle, cette solution n’offrait pas le degré de flexibilité des ALU scalaires.
Si l’on résume donc, les nouvelles ALU du G80 sont plus de deux fois plus rapides que celles du précédent haut de gamme de NVIDIA, mais elles sont également plus efficaces ! Cela semble trop beau pour être vrai pourtant il vous suffira de consulter les benchmarks synthétiques dans la suite de ce test pour constater que c’est bien le cas.
Architecture unifiée et répartition de charge
Voici donc la grosse surprise de cette nouvelle architecture que NVIDIA avait habilement dissimulée jusqu’au dernier moment. ATI et NVIDIA sont d’accords : si la plupart du temps la charge est principalement sur les pixel shaders, elle varie largement au cours du temps ce qui fait qu’au sein d’un même frame on peut se retrouver successivement bridé par la puissance géométrique ou par la puissance de calculs par pixel.
L’efficacité des GPU actuels n’est donc pas optimale. Même si les développeurs, connaissant le ratio vertex shader/pixel shader, essaient d’équilibrer au mieux leurs jeux ils ne peuvent pas faire de miracle. Lorsqu’ils constatent que leur jeu est bridé par un étage en particulier du pipeline graphique les développeurs peuvent tout d’abord essayer de réduire la charge à ce niveau. Mais si cela est intimement lié à l’algorithme utilisé et pas à un usage pathologique du GPU ou de l’API, la seule alternative qui reste est d’essayer d’équilibrer la charge en augmentant les effets sur la partie du GPU qui est sous-utilisée.
Le bénéfice c’est que de cette façon certains effets deviennent effectivement “gratuits” : si le vertex shader limite on peut augmenter la charge des pixel shader sans diminuer les performances et vice versa : un pipeline est aussi rapide que son maillon le plus lent.
Evidemment cet exemple est très théorique, en pratique il est délicat de jouer sur un étage du pipeline sans impacter les autres et par conséquent la charge n’est jamais aussi bien répartie entre les différents étages. De plus identifier les goulets d’étranglement demande beaucoup de temps, équilibrer la charge sur le pipeline encore plus surtout si l’on prend en compte la grande diversité des GPU disponibles : les puces d’entrée et de milieu de gamme ayant souvent un ratio vertex shader/pixel shader différent des puces haut de gamme et les diverses options que l’utilisateur final peut activer (changement de résolution, antialiasing, filtrage de textures…) ont également une influence sur ce délicat équilibre.
Ainsi le développeur de jeux sur PC (le matériel fermé des consoles offrant un avantage à ce niveau) ne peut faire que des optimisations très génériques et il ne peut jouer sur la charge des différents étages du pipeline qu’à une granularité extrêmement grossière. Enfin il existe des algorithmes où malgré toute la bonne volonté du monde il n’y a rien à faire pour améliorer les choses : le deferred shading en est un puisque dans un premier temps la géométrie est transformée et des valeurs diverses sont stockées dans des buffers, et dans un deuxième temps tous ces buffers sont combinées pour obtenir le rendu. Là où les premières passes qui se contentent de remplir les buffers n’utilisent pas la puissance des pixels shaders mais peuvent être intensives en calcul sur les sommets. A l’inverse lors de la passe finale, le calcul géométrique est réduit à sa plus simple expression (un quadrilatère affiché en plein écran), mais en contrepartie l’équation qui va combiner les différents buffers peut s’avérer extrêmement intensive sur les pixels shaders.
Dans ce genre de situations nos GPU actuels font une utilisation inefficace des ressources à leur disposition.
A l’inverse les nouveaux GPU de NVIDIA et d’ATI sont capables de répartir les ALU entre les différentes tâches en fonction de la charge.
Notez que la répartition de la charge n’est en rien liée à l’API : ce n’est pas parce qu’un jeu utilise OpenGL ou une ancienne version de Direct3D qu’il utilisera forcément une répartition fixée entre vertex et pixel shaders, tout ceci est entièrement géré par le matériel et transparent pour les développeurs.
Test : puissance géométrique
Pour illustrer la partie précédente, observons le comportement de la 8800 GTX face à ses concurrentes sur nos tests synthétiques mesurant la puissance des Vertex Shaders.
Hormis quelques bugs altérant certains tests (probablement dus à la jeunesse des drivers), sur un test synthétique composé d’une géométrie et d’un éclairage complexes, on saisit ici tout l’intérêt d’une architecture unifiée. Alors que la X1950 XTX et même la 7950 GX2 doivent se contenter de 8 ou 2 x 8 vertex shaders, la 8800 GTX et ses 128 streaming processors cadencées à 1.35 GHz parvient à développer une puissance géométrique environ 3 fois supérieure à la 7950 GX2, et 4 fois supérieure à la X1950 XTX. Elle arrive donc à augmenter le taux d’occupation de ses unités de calculs sur ce test caricatural (et c’est son but) et obtient donc un meilleur rendement.
A noter toutefois que ses spécifications théoriques pouvaient laisser espérer un écart encore plus important avec les précédentes architectures. Les explications sont difficiles à formuler avec certitude, vu le nombre de facteurs pouvant intervenir à ce niveau. Mais nous pensons ici à une limitation du setup engine : jusqu’ici celui du G71 pouvait traiter un triangle tous les deux cycles, mais nous ne savons pas si ce chiffre a évolué sur le G80.
GigaThread
Les threads sont à la mode : après l’HyperThreading d’Intel, l’UltraThreaded Dispatch Engine d’ATI voilà la technologie GigaThread de NVIDIA. Mais derrière ce nom marketing se cache la toute nouvelle architecture de NVIDIA pour masquer la latence des opérations de texturing.
Jusqu’ici NVIDIA reposait sur un long pipeline, plus de 200 étages selon les dires des ingénieurs, pour masquer les accès mémoire. Pour occuper tous ces étages le G70 regroupe les quads en lots qu’il envoie simultanément à un de ses pixel pipelines. Au maximum jusqu’à 220 quads peuvent être regroupés par pixel pipeline, mais si le shader est complexe et utilise trop de ressources ce nombre décroît. Ainsi le G70 dispose de 4 registres vectoriels FP32 pour 220 quads (880 registres en tout), si un shader utilise plus de registres le nombre de quads dans un lot diminue : par exemple un shader utilisant 5 registres limiterait le nombre de quads dans un lot à 176. Moins le nombre de quads est important et plus le pipeline “perd des cycles” à ne rien faire, réduisant ainsi l’efficacité du GPU. La particularité de cette architecture est donc que l’unité de texture est indissociable du reste du pipeline, ce qui n’est pas vraiment adapté aux jeux du futur qui utiliseront nettement plus d’instructions arithmétiques que d’instructions de texture comme nous l’avions vu dans notre test du X1900.
De plus cette architecture peut se révéler inefficace : si une instruction de texture prend plus de cycles que le pipeline n’a été conçu pour en masquer (en fonction de l’efficacité du cache, du mode de filtrage, du format de la texture) le G70 est incapable de masquer ces accès en effectuant des calculs arithmétiques dans le même temps, même si ces calculs ne dépendent pas du résultat de l’instruction de texture.
Avec le G80 NVIDIA se devait de revoir son pipeline, ATI disposant déjà avec son R5x0 d’une architecture nettement plus moderne. On dit que les grands esprits se rencontrent, toujours est il que la solution introduite par le G80 est proche de celle apparue avec le R520 : des unités de texture totalement découplées des unités arithmétiques. Ainsi le G80 ne fonctionne plus du tout comme son prédécesseur : au lieu de construire des gigantesques lots de plusieurs centaines de quads, le G80 travaille sur des unités nettement plus petites : des threads de 16 éléments.
Avec des threads tellement petits plus question d’utiliser un pipeline aussi long qu’avant, désormais pour masquer la latence des instructions de texture le G80 alterne l’exécution d’un grand nombre de threads. Lorsqu’une instruction présentant une latence importante est rencontrée au cours de l’exécution d’un shader, si les résultats ne sont pas disponibles dans le cache, l’ordonnanceur de threads interrompt celui qui est en cours d’exécution, sauvegarde son contexte (l’ensemble de ses registres) et le remplace par un autre. Lorsque les résultats de l’instruction de texture du premier thread est disponible dans le cache, le thread est “réveillé” afin qu’il puisse terminer son exécution. Ainsi tant que le nombre de threads prêts à être exécutés est suffisamment important le GPU est capable de masquer la latence des accès aux textures même si ceux-ci prennent plusieurs cycles.
GigaThread (suite, granularité)
Le second inconvénient de la technique du G70 est la granularité des branchements dynamiques. Si une partie des pixels parmi le lot de 880 (220 quads) prend un branchement différent des autres alors les deux branches doivent être exécutés pour l’ensemble des pixels. Ainsi pour qu’un branchement dynamique offre un gain de performances il faut que tous les pixels d’un lot prennent la même branche.
Un exemple d’utilisation de branchements consiste à éviter de faire des calculs inutiles, par exemple lors du filtrage d’une shadow map.
Un shader peut prendre quelques échantillons proches de la shadow map, vérifier s’ils sont tous dans l’ombre ou tous éclairés et dans ce cas interrompre le traitement. A l’inverse si certains échantillons sont dans l’ombre et d’autres éclairés alors il faut réaliser plusieurs autres échantillonnages et calculer le résultat du mélange de toutes les valeurs obtenues.
Dans cet exemple, avec des threads de 256 pixels (16×16) 57 % des pixels pourraient sortir prématurément du shader sans effectuer de calculs supplémentaires, et 43 % effectueraient un filtrage complet. C’est toujours mieux que de faire les calculs pour tous les pixels, mais avec des threads plus petits la situation est encore meilleure :
Dans ce cas seulement 26 % des pixels effectuent un calcul complet ce qui est un gain appréciable.
Jusqu’ici la meilleure architecture pour les branchements était le R520 avec des threads de 16 pixels (4×4). L’arrivée du R580 avait marqué une légère perte d’efficacité avec des threads de 48 pixels, et le Xenos utilisant des threads de 64 pixels on pensait que cela préfigurait la taille standard des threads des futures architectures. Pour tout dire vu les performances de branchement dynamique des GPU NVIDIA on aurait considéré des threads de 64 pixels pour le G80 comme un sacré progrès. Mais les ingénieurs de Santa Clara ont fait encore mieux que ça en utilisant une granularité de 16 pixels la plupart du temps et pouvant monter à 32 pixels dans certains cas. NVIDIA ne précise pas quelles sont les conditions qui jouent sur la taille des threads mais même dans le pire des cas, la granularité du G80 est extrêmement fine.
Streaming Processors
Intéressons nous maintenant aux fameux Streaming Processors. Comme nous l’avons vu le G80 repose sur l’utilisation d’un grand nombre d’ALU scalaires complètement revues depuis le G70. Ainsi si l’on observe le diagramme du G80 on observe donc 128 ALU regroupées en blocs de 16.
Un bloc inclut également une toute nouvelle unité de texture et un cache L1. Chacun de ces blocs peut travailler sur un shader différent, la répartition de charge de shaders entre les différents types (Vertex, Geometry, Pixel) ne peut donc pas se faire à une granularité plus fine qu’un bloc ce qui n’est pas bien grave : la seule architecture unifiée jusqu’à présent, le Xenos, ne peut pour sa part répartir ses ALU entre vertex et pixel shaders que par blocs de 16 ALU vectorielles.
En terme de puissance de calculs chaque Streaming Processor peut effectuer simultanément une instruction MUL et une instruction MAD. On obtient donc 3 instructions par cycle à 1.35 GHz et multipliées par 128 Streaming Processors cela nous donne une puissance de calculs programmable de crête de 518.4 GFlops.
Une remarque intéressante que l’on peut tirer de l’examen des informations fournies par NVIDIA concerne l’absence d’unité dédiée aux fonctions avancées ou transcendantales (log x, exp x, 1/x, 1/√x, sin x, cos x…). Sur le G70 les instructions RCP (1/x) et RSQRT (1/√x) étaient ainsi effectuées dans la première unité de shader, la deuxième unité étant pour sa part capable de se charger des instructions EXP, LOG et SINCOS. Mais sur le G80 NVIDIA ne donne aucun détail. La réponse est peut être à chercher du côté d’une ancienne présentation de NVIDIA qui détaille le fonctionnement d’une nouvelle unité de calcul pouvant à la fois être utilisée pour l’interpolation des valeurs d’une primitive mais aussi pour les fonctions avancées dans les shaders.
Cette solution a l’avantage de simplifier les ALU des shaders et d’économiser de la surface du die en évitant de dupliquer des fonctionnalités. En contrepartie si c’est bien la voie choisie par NVIDIA il y a de fortes chances que cette unité ne fonctionne pas à 1.35 GHz comme les Streaming Processors mais à 575MHz comme le reste du GPU.
Streaming Processors (suite : le test)
Pour avoir une idée du comportement de ces ALU, nous avons utilisé l’application GPUbench qui jusqu’à présent a permis de confirmer les informations théoriques fournies par les fabricants de GPU ou d’identifier des problèmes d’efficacité potentielle.
Alors que pour le G70 ou le R580 les résultats s’approchaient des valeurs théoriques on obtient ici des valeurs pour le moins surprenantes. En effet avec des ALU dual issue MAD+MUL on s’attendrait à voir les instructions MUL obtenir le débit le plus élevé (2 par cycles : une dans l’unité MAD l’autre dans l’unité MUL) et de voir les instructions ADD et MAD obtenir un débit moitié moins élevé. En pratique ce n’est pas le cas : MUL et ADD offrent un débit identique et MAD est relativement proche. Dans tous les cas ces débits restent assez éloignés de leurs valeurs théoriques (172.8 milliard d’instructions MAD ou ADD le double pour les instructions MUL en scalaires).
Une autre information intéressante peut être tirée de la comparaison entre le débit d’instructions vectorielles et scalaires. Jusqu’ici le G70 obtenaient un débit deux fois plus élevée lors de l’utilisation d’instructions scalaires ce qui était en accord avec la théorie (deux instructions en co-issue). Sur le G80 les instructions scalaires ont un débit entre 4.5 et 5 fois plus élevé, alors que dans la théorie le débit ne devrait être que de 4 fois supérieur. Cette constatation laisse entrevoir une légère perte d’efficacité dans l’utilisation d’unités scalaires pour effectuer des calculs vectoriels.
Difficile de savoir si l’on doit blâmer l’architecture, le driver ou l’application aussi convient-il de ne pas tirer de conclusions définitives pour le moment.
Performances en pixel shading
Qu’en est-il des performances de 8800 GTX sur des tests synthétiques en pixel shading ? Commençons doucement avec Fillrate Tester et des Pixel Shaders 2.0.
En comparaison des précédentes générations, la caractéristique de la GeForce 8 sur ce test est de se montrer non pas plus performante partout (cf score similaire à une 7950 GX2 sur un shader 2.0 simple), mais de voir ses performances rester constantes et plus proches du maximum indépendamment de la charge. Ainsi, le shader complexe d’éclairage par pixel est exécuté 50 % plus rapidement que sur 7950 GX2, et 98 % que sur X1950 XTX.
Passons à des shaders procéduraux et d’éclairage, tirés de prototypes et d’applications réelles et écrit en HLSL.
Ici, l’écart en faveur de la 8800 GTX grandit et varie entre 109 % et 178 % (toujours malgré des bugs dans certains tests). Terminons avec Shadermark 2.1 et ses Shaders 3.0.
Premier constat : le comportement de la 8800 GTX est assez similaire à celui de la X1950 XTX ; il montre des difficultés sur les mêmes shaders globalement, mais en se montrant en général entre 50 % et 60 % plus rapide. Exceptions significativement plus rapides sur la 8800 GTX : le shader 7 (per pixel car surface), 11 (per pixel shadowed bump mapping), 12 (per pixel veined marble), 13 (per pixel wood), 20 (PCF shadow mapping with flow control), 24 et 25 (per pixel edge detection and hatching). Soit parmi les plus lourds.
On remarque tout de même que l’avance de la GeForce 8800 GTX n’est aussi conséquente ici qu’au niveau de la puissance géométrique. Ce qui est bien logique, les architectures de GPU classiques (non unifiées) étant pour rappel bien plus puissante en pixel shading qu’en vertex shading – ce qui se remarque principalement au niveau de la répartition des unités de calculs, comme le requièrent les jeux.
Bien sûr, il faut garder en tête que contrairement à ce qui se passe avec les deux autres cartes, les résultats de la 8800 GTX sur les différents tests synthétiques (géométrie et shading) doivent être pris séparément, puisque si on exécutait ces tests simultanément les streaming processors devraient être partagés.
Unités de texture (théorie et performances)
Les unités de texture du G80 méritent aussi qu’on s’y attarde. Dans l’architecture précédente de NVIDIA comme nous l’avons vu l’unité de texture était imbriqué dans le pipeline de pixel shading. On trouvait donc 24 unités de texture, capables d’échantillonner et de filtrer en bilinéaire une texture 32 bits en un cycle, ou une texture FP16 en deux cycles. Avec le G80 les choses sont un peu plus compliquées. NVIDIA laisse entendre que le G80 dispose de 64 unité de textures en indiquant le nombre de texels filtré par seconde (36.8 milliard de texels / seconde, les unités de texture fonctionnent à la même fréquence que le GPU : 575 MHz) mais ce n’est que la moitié de la vérité.
En fait le G80 ne dispose que de 32 unités d’adressage de texture, mais pour chaque unité d’adressage elle dispose de deux fois plus d’unité de filtrage que le G70. Ce qu’il faut comprendre c’est que sur le G80 peut faire du trilinéaire, ou de l’anisotrope 2X sans perte de performances par rapport à du bilinéaire (si l’on néglige l’impact sur le cache). Autre aspect intéressant de cette particularité : l’accès aux textures RGBA FP16 se fait désormais en un cycle que ce soit en point sampling ou en filtrage bilinéaire, alors qu’il en fallait deux sur les G70. Pour résumer on ne dispose pas de 64 unités de textures mais bien de 32 unités nettement plus puissantes que celles du G70. En terme de fonctionnalité une petite surprise, le G80 semble supporter le filtrage de textures FP32 (du moins si l’on en croit le discours du constructeur) alors qu’il s’agit d’une des rares fonctionnalités optionnelles de Direct3D 10.
Voyons comment se comporte la 8800 GTX face aux meilleures cartes actuelles sous Fillrate Tester.
La GeForce 8800 GTX dispose d’une moins grande puissance en texturing que le 7950 GX2 (et à peine meilleure que la X1950 XTX en single texturing), elle sera donc moins performante sur un jeu qui sera limité par cette puissance, ce qui n’est plus le cas depuis longtemps maintenant. Dans les deux cas, la X1950 XTX est largement dépassée ici !
En résumé donc : la 8800 GTX dispose de 32 unités de textures (adressage) à 575 MHz mais celles ci peuvent lire de 64 texels 32 bits filtrés en bilinéaire par cycle ce qui rend les textures FP16 gratuites, tout comme le filtrage anisotropique 2X ou trilinéaire. La 7950 GX2 dispose pour sa part de 48 unités de textures (2×24) qui peuvent fournir 48 texels filtrés en bilinéaire.
ROP (théorie et performances)
Comme nous l’avons vu plus haut le G80 dispose de 24 ROP organisés en six blocs de quatre, chaque bloc étant lié à une partition mémoire. Mais ce n’est pas tout ces ROP ont aussi été profondément modifiés depuis le G70. Tout d’abord chaque ROP est désormais capable de traiter 4 samples par cycle contre 2 pour le G70. Un loopback par ROP est toujours possible permettant ainsi d’effectuer un antialiasing multisampling 8x en deux cycles.
On se souvient de la capacité des GPU NVIDIA à effectuer des passes de rendu Z avec un fillrate double, mais avec le G80 NVIDIA a poussé la technique à son paroxysme. Désormais le G80 peut traiter 192 pixels par cycles dans ce type de passes si l’antialiasing n’est pas utilisé. Vérifions cela avec un simple test de fillrate.
Premiers constat, la GeForce 8800 GTX est la première carte nVidia a disposer d’un fillrate pur inférieur à sa précédente carte haut de gamme (même si la 7800 GTX ne faisait qu’égaler la 6800 Ultra). La faute à un nombre de ROP moins élevé : avec ses 24 ROP, elle devrait développer 13.8 GPixels en théorie, ce qui est donc vérifié. Sauf que la 7950 GX2 intègre deux G71, et donc 32 ROP soit une puissance théorique de 16 GPixels, là aussi quasiment vérifiée.
Toutefois, au niveau du Z fillrate, on remarque que la 8800 GTX parvient là aussi à multiplier par environ 5 ce fillrate, contre traditionnellement 2 pour toutes les GeForce et 1 pour les Radeon. On n’atteint donc pas la théorie (x8), mais ce résultat reste cohérent.
Notez qu’en cas de MSAA 4x le G80 reste capable de doubler son fillrate avec pas moins de 48 pixels par cycle.
Les ROP ont également été modifié afin de supporter en plus du blending FP16, le blending FP32 et ces deux formats sont utilisables en conjonction avec l’antialiasing. Fini le choix délicat entre HDR et antialiasing cette fois tout est orthogonal mais ce n’est pas étonnant car il s’agit d’une condition requise par Direct3D 10.
On peut s’interroger sur l’intérêt du format FP32 pour le frame buffer, l’intervalle et la précision des valeurs offertes semblant clairement démesurés pour représenter des couleurs sachant que les moteurs de rendu offline n’utilisent pas une telle précision. Ceci dit le blending FP32 peut avoir son utilité dans les applications GPGPU.
Lumenex Engine, antialiasing
Sous ce nouveau terme marketing issu des mots latins luminous et lumens, NVIDIA regroupe plusieurs fonctionnalités du G80 relatives à la qualité du rendu :
- le tout nouveau moteur d’antialiasing
- le tout nouveau filtrage anisotrope
- le support des frame buffer FP32 comme vu plus haut
- le pipeline d’affichage à 10-bits par composante
En ce qui concerne le pipeline entièrement 10 bits, NVIDIA rattrape en fait ici son retard sur l’AVIVO et les X1800. Toutefois, en l’absence de moniteurs 10 bits, nous avons déjà pu vérifier que cette avancée n’était pas visible en pratique au niveau 2D.
Au niveau de l’antialiasing (rappels) NVIDIA a apporté plusieurs nouveautés, outre le support d’un mode 8x en multisampling on note aussi un nouveau type d’antialiasing intelligent appelé Coverage Sampling Anti-Aliasing. Intelligent car contrairement au MSAA classique le CSAA fonctionne en utilisant l’information de couvrance de chaque pixel pour effectuer un antialiasing plus important uniquement là où cela est nécessaire afin de ne pas saturer la bande passante mémoire. Comment ? Malheureusement NVIDIA ne détaille pas précisément sa technique. Le CSAA peut s’activer dans le panneau de contrôle du driver de la carte graphique mais il ne fonctionne que si l’antialiasing traditionnel est déjà activé dans le jeu (soit nativement soit en le forçant dans le driver).
Effectuons une comparaison de la qualité de chaque niveau d’antialiasing et pour chaque carte (réglage via le driver et vérification à l’aide de la mire suivante) :
En antialiasing 2X, la 8800 GTX introduit un léger changement, remarquable au niveau des angles proches de l’horizontale et de la verticale (surtout sur fond noir). Avec un gain qualitatif à la clef, les marches étant plus lissées. L’algorithme utilisé par ATI est clairement différent (position des samples), et se révèle tour à tour meilleur ou moins bon suivant l’angle que l’on considère.
En 4X, on note là aussi une évolution favorable pour la 8800 GTX : sur les angles proches de 45°, 90° etc. le résultat est le même. En revanche, sur les autres angles, une petite progression est visible.
Le nouveau mode 8X semble amener un changement identique, même si dans quelques cas les transitions paraissent plus abruptes. Le mode 16X amène pour sa part le gain de qualité que l’on pouvait espérer. Une information importante vu les performances que nous avons enregistrées sur Dark Messiah of Might & Magic, en 1600×1200 :
Hormis le surprenant résultat en antialiasing, on constate que ce mode 16X n’est qu’à peine plus gourmand que le mode 8X, ce qui si cela se confirme sur l’ensemble des jeux, serait une excellente nouvelle.
Lumenex Engine, anisotropie
Au niveau du filtrage anisotropique NVIDIA a fait de gros efforts pour se défaire de la mauvaise réputation que le G70 traînait et propose désormais un filtrage appliqué parfaitement à chaque angle et non plus uniquement à 45 et 90 degrés. Et par défaut.
Vérifions la qualité sur Trackmania United.
Avec un filtrage anisotropique 2X (application via les drivers toujours), le qualitatif visible sur la GeForce 8 est flagrant par rapport à la GeForce 7 : le second trait noir sur l’herbe n’est plus discontinue, tout comme la frontière entre les panneaux “Start” latéraux. Sur ce plan, on revient donc au niveau de qualité de l’algorithme par défaut d’ATI, qui est même clairement dépassé. En fait, il faut activer le mode qualité chez ATI pour revenir à un niveau de filtrage sensiblement équivalent à celui par défaut sur GeForce 8.
En 8X, ce sont les motifs en damier, désormais apparents sur les 2 côtés (ils ne le sont pas en 2X), qui sont les meilleurs indicateurs. Là encore, le saut qualitatif par rapport aux GeForce 7 est évident. Le filtrage 8X par défaut d’ATI est également assez nettement dépassé par le filtrage 8X par défaut de cette GeForce 8. En revanche, le mode qualité d’ATI surpasse celui par défaut de la GeForce 8, et ne nous paraît comparable qu’à son mode qualité (ils paraissent d’ailleurs être quasiment identiques).
En 16X enfin, le constat est similaire : par défaut, le filtrage par défaut d’ATI apparaît comme qualitativement intermédiaire entre celui de la GeForce 7 (le pire), et de la GeForce 8 (le meilleur). Ce dernier reste toutefois inférieur au mode qualité de l’algorithme d’ATI, lui-même équivalent voir légèrement surpassé par le mode qualité de NVIDIA.
Au final, que l’on sélectionne donc le mode par défaut voir le mode qualité chez chacun des deux constructeurs, NVIDIA rattrape donc son retard et repasse en tête sur le plan qualitatif.
Enregistrées sur ce même Trackmania United en 1600*1200, les performances en mode par défaut laissent penser que l’algorithme de NVIDIA est un peu plus gourmand en ressources, ce qui reste cohérent vu sa qualité supérieur. Nul ne saurait remettre en question un tel changement sur une telle carte !
CUDA, bilan théorique
Derrière cet acronyme se cache en fait la stratégie de NVIDIA dans le domaine du GPGPU. NVIDIA ne pouvait laisser ATI occuper le terrain seul longtemps aussi pour la sortie de son nouveau GPU la firme de Santa Clara a développé un tout nouveau SDK dédié à ce type de calculs. Le SDK est ainsi un ensemble complet offrant à la fois :
- un accès au GPU sans passer par les API graphiques, directement en langage C
- des bibliothèques mathématiques adaptées
- un driver spécialement dédié
- un débugueur et un profileur de code pour repérer les goulets d’étranglement
- et enfin un accès de bas niveau au GPU par l’intermédiaire d’un langage assembleur (NVasc : NVIDIA « assembly for computing »)
Bilan
Après plus de deux années sans innovation majeure dans le domaine des GPU, nous attendions les premières puces Direct3D 10 avec impatience et nous ne sommes pas déçu ! Si l’on savait déjà que les fonctionnalités seraient au rendez vous on pouvait craindre que les performances ne soient pas à la hauteur et que l’architecture ne soit finalement qu’une simple mise à jour des GPU DirectX 9. A la vue de ce G80 nous sommes rassurés, il n’en est rien : NVIDIA n’a fait aucun compromis. Performances, qualité du rendu et architecture taillée pour l’avenir, que demander de plus ? Des performances en pratique…
La GeForce 8800 GTX
La GeForce 8800 GTX est une carte impressionnante. Au niveau de la longueur tout d’abord : 27 cm, soit 4 cm de plus que les déjà particulièrement longues X1950 XTX et 7950 GX2, malgré un poids plutôt raisonnable de 740 g. Au niveau de ses connecteurs ensuite, puisqu’elle est la première carte commercialisée avec pas moins 2 connecteurs PCI Express, comme les prototypes GeForce 7900 GX2, mais qui ont perdus ce deuxième connecteur lors de leur transformation en 7950 GX2. On note par ailleurs la présence de deux connecteurs SLI, ce qui confirme donc la possibilité de monter ces cartes en SLI, triple SLI ou Quad SLI.
Enfin et surtout, le ventirad. Monopolisant deux slots PCI, il consiste en l’association d’un ventilateur radial d’environ 7 cm de diamètre (à peine moins que sur le X1950 XTX), et d’un radiateur très étendu, mais qui reste composé d’aluminium et non de cuivre ! Un heatpipe permet de transférer la chaleur dégagée par la partie droite de la puce (la plus proche du ventilateur, là où s’arrête le radiateur) au plus près de la grille d’extraction. Les puces mémoires sont bien évidemment refroidies, tout comme une bonne partie de l’étage d’alimentation, ainsi qu’une puce à l’avant. L’air chaud est expulsé directement à l’extérieur, même si l’on remarque la présence inhabituelle d’orifices oblongs à l’avant du radiateur. Ce ventirad ne paie donc pas de mine et est relativement comparable à celui signé Arctic Cooling et embarqué sur la X1950 XTX, le cuivre en moins. Il va pourtant être à l’origine d’un petit miracle, comme nous le verrons plus loin.
Avec la GeForce 8, NVIDIA a décidé de rassembler le RAMDAC, TMDS et autres transistors dédiés à l’affichage dans une puce distincte du GPU, cette NVIO-1-A3 (juste derrière les ports DVI. Cette décision a sans doute été prise afin de simplifier la câblage du PCB et le package du GPU, mais peut être aussi pour simplifier la fabrication.
En démontant ce ventirad, nous avons cependant tout d’abord été frappé par cette pièce centrale de 4,2 cm de côté soit 1764 mm² ! Alors que nVidia s’est enorgueillit du caractère économe de sa dernière puce haut de gamme (le G71 équipant les GeForce 7900 ayant une faible surface et consommant par ailleurs peu d’énergie), le géant est-il tombé sur la tête ? Non, il s’agit en fait simplement du heatspreader, puisque – et c’est une autre nouveauté -, nVidia a choisi à l’instar des constructeurs de CPU de protéger le die de sa puce derrière une plaque offrant par ailleurs une source de chaleur plus homogène au dissipateur (mais occasionnant inéluctablement un transfert un peu moins bon).
NVIDIA communiquant des photos des wafers du G80, et sachant par ailleurs que TSMC utilise des wafers d’un diamètre de 300 mm, nous avons pu estimer la surface réelle du G80 à grosso modo 500 mm². Ce qui est énorme comparé à toutes les puces actuelles (196 mm² pour le G71, 351 mm² pour le R580), mais logique sachant que la quantité de transistors est de 681 millions, avec une finesse de gravure de 0.09µ ! Pour une fois, le prix très élevé de cette nouvelle carte haut de gamme paraît donc quelque part plus en rapport avec les coûts de fabrication…
Spécifications, le test
Spécifications des principales cartes testées |
---|
GPU8800 GTXX1950 XTX7950 GX2
Fréquence GPU
575 MHz
650 MHz
500 MHz Fréquence shaders
1350 MHz
650 MHz
500 MHz Fréquence mémoire
900 MHz
1000 MHz
600 MHz Largeur bus mémoire
384 bits
2 x 256 bits
2 x 256 bits Type de mémoire
GDDR3
GDDR4
GDDR3 Quantité de mémoire
768 Mo
512 Mo
2 x 512 Mo Nombre de Pixel Pipelines
(128)
48
2 x 24 Nombre d’unités de Texture Sampling
1/4
1/3
1 Nombre de processeurs de vertex
(128)
8
2 x 8 Fillrate théorique
(172800 MPixels)
31200 MPixels
24000 MPixels Vertex rate théorique
(43200 Mtris)
1300 Mtris
2000 MTris Bande passante mémoire
86,4 Go/s
64 Go/s
76,8 Go/s Nombre de transistors
681 millions
384 millions
2 x 278 millions Process
0.09µ
0.09µ
0.09µ Surface du die
500 mm²
351 mm²
2 x 196 mm² Génération
2006
2006
2006 Shader Model supporté
4.0
3.0
3.0
On remarque également sur ce tableau que la GeForce 8 n’a recours qu’à de la “simple” GDDR3 à 900 MHz, alors que la X1950 XTX utilise par exemple déjà de la GDDR4 à 1 GHz. Les rumeurs selon lesquelles Samsung serait déjà à peine capable d’assurer la production de cette mémoire pour ATI semblent donc fonder. Cela va par ailleurs nous permettre de savoir si cette GeForce 8 va être capable de se démarquer de ses concurrentes sans changer de technologie de mémoire, même s’il faut bien souligner qu’on passe tout de même à une interface 384 bits. Mais en termes de bande passante, le saut n’est pas flagrant (+35 % par rapport à la X1950 XTX).
Le test
Comme à son habitude, nVidia n’a pas souhaité nous voir tester sa nouvelle carte. Comme à notre habitude, nous avons tout fait pour nous en procurer tout de même une, et tenons à remercier au passage MSI pour avoir rendu ce test possible. Comme vous avez pu le voir à la page précédente, notre GeForce 8800 GTX de test est en effet signé de cette marque. La contrepartie est que nous n’avons pu disposer de la carte que quelques heures, réduisant dès lors notre panel de test (notamment au niveau de la qualité d’image), ce dont nous nous excusons.
Il est à noter que les GeForce 8 devraient d’ores et déjà disponibles aujourd’hui, nVidia ayant pu tenir son hard launch pour cette carte. Cette disponibilité ne devrait cependant pas durer longtemps vu le nombre de pièces disponibles et non rappelées (suite à un soucis initial rencontré sur une résistance entraînant des instabilités).
En ce qui concerne le protocole de test, nous avons tout d’abord profité de ce test pour muscler notre processeur, puisque nous avons pu avoir recours au dernier quad-core d’Intel.
- Intel Core 2 Extreme QX6700 (quad-core 2.66 GHz)
- Intel Bad Axe 2 (D975XBX2)
- 2 x 1 Go DDR-2 800 MHz 4-4-4-12 Crucial
- WD Raptor 74 Go
- Tagan U15 530 W
- IIyama A201 HT (22″)
- ForceWare 96.94
- Catalyst 6.10 WHQL
Au niveau des applications également, nous avons également mis à jour notre protocole via l’addition d’un certain nombre de jeux que vous pourrez découvrir dans les pages suivantes. Tous sont bien évidemment patchés, exécutés avec toutes les options qualitatives au maximum, et surtout évalués en jouant réellement à chaque jeu et non en lançant des Timedemos. En ce qui concerne les résolutions, le 1600*1200 et le 2048*1536 ont été retenus dans la quasi-totalité (sauf pour Splinter Cell 3, ne le supportant pas), soit des résolutions de moniteurs eu rapport avec la gamme de cette GeForce 8. Enfin, l’antialiasing et le filtrage anisotropique ont été activés dans les options des jeux quand cela était possible, et via les drivers dans le cas contraire.
Tests in-game (Fable, Serious Sam 2)
Fable
Attaquons doucement avec un jeu de rôle un peu ancien mais toujours aussi agréable à rejouer, Fable. Adapté de la Xbox, ce jeu ne sera-t-il pas limité par le processeur et pas plus rapide sur GeForce 8800 GTX que sur une 7950 GX2 ou même une X1950 XTX ?
Impressionnant : dès le 1600*1200, la GeForce 8800 GTX se montre sur ce titre près de 2 fois plus rapide qu’une X1950 XTX ! L’écart se réduit ensuite, sans doute parce que la GeForce 8 reste en partie limitée par sa bande passante mémoire en très haute résolution : ainsi l’écart tombe à 55 % en 2048*1536 + filtres, que ce soit par rapport à la X1950 XTX ou sur la 7950 GX2, ce qui correspond à peu près à l’écart de bande passante entre ces cartes.
Serious Sam 2
Lui aussi un peu ancien mais toujours impressionnant graphiquement, Serious Sam 2 a bien sûr été configuré et joué avec toutes les options au maximum (HDR activé donc).
Il est intéressant de noter que sous Serious Sam 2 également, nous constatons un phénomène similaire : c’est en 1600*1200 sans filtres que la GeForce 8800 GTX parvient le mieux à s’exprimer (là encore près de 2 fois plus rapide qu’une X1950 XTX et 67 % de plus qu’une 7950 GX2), l’activation des filtres la ramenant à des niveaux bien moins impressionnants par rapport à ses concurrentes – jusqu’à un niveau presque caricatural ici. D’ordinaire, c’est plutôt l’inverse qui se produit avec les nouvelles générations de cartes, mais comme nous l’avons vu la GeForce 8 impressionne bien plus par son GPU que par sa mémoire.
Tests in-game (F.E.A.R., Splinter Cell 3)
F.E.A.R.
Un des jeux qui reste les plus gourmands actuellement, et toujours d’actualité à l’heure de la sortie du plaisant Extraction Point, dont le moteur 3D est parfaitement inchangé.
Pas de soucis ici, avec une GeForce 8 encore 38 % à 31 % plus rapide que la 7950 GX2 – qui correspond, pour rappel, à l’association de deux GeForce 7 haut de gamme ! Elle se montre également jusqu’à 2,4 fois plus rapide que la X1950 XTX…
Splinter Cell : Chaos Theory
En l’attente de la sortie de Double Agent, nous n’avons résisté à la curiosité de réutiliser le troisième opus dans notre protocole de test vu sa gourmandise en Pixel Shading, bien que nous soyons ici limité au 1920*1080 seulement.
La faible variation des résultats suivant la résolution utilisée montre bien la gourmandise de notre scène en shading ; et à ce petit jeu, la 8800 GTX se montre environ 45 %, 58 % et 143 % plus performante que ses concurrentes, dont les deux premières pouvaient pourtant être qualifiées de très bien équipées en la matière !
Tests in-game (Age of Empires III, Oblivion)
Age of Empires III
Lui aussi maintenu de par la qualité technique de son moteur 3D et sa gourmandise en shading, Age of Empires III et son extension WarChiefs restent sans doutes les plus beaux jeux de stratégie actuellement.
Ici, c’est une vrai gifle que la 8800 GTX inflige à ses adversaires, même si elle est à nuancer pour 2 raisons : d’une part, les GeForce 7 ne peuvent appliquer ici qu’un antialiasing de type SuperSampling pour être cumulé avec le HDR, et d’autre part la 7950 GX2 n’est manifestement pas au niveau qu’on est en droit d’attendre d’elle. Mais même face à la X1950 XTX, la GeForce 8 se montre au minimum 125 % plus performante, et jusqu’à 163 % !
The Elder Scrolls IV : Oblivion
Si nous conservons bien évidemment Oblivion pour sa gourmandise mais aussi sa popularité toujours considérable, nous changeons en revanche de scène de test afin de donner une part plus importante aux effets HDR (toujours en extérieur cependant).
Corrigeant bien sûr l’incapacité des GeForce à effectuer un rendu HDR avec antialiasing sur ce jeu, la 8800 GTX se montre une nouvelle fois impressionnante sur Oblivion, et plus de 2 fois plus rapide en toutes circonstances qu’une X1950 XTX (2,5 fois en 1600*1200) !
Tests in-game (Dark Messiah, Trackmania United)
Dark Messiah of Might & Magic
Nous attaquons à présent les nouveaux jeux, avec pour commencer l’excellent Dark Messiah of Might & Magic. Développé par les lyonnais d’Arkane –Arx Fatalis – Studios, il reprend pour rappel le Source Engine et implémente bien sûr le HDR, pour produire un résultat visuellement superbe, et relativement peu gourmand en ressource au final.
Alors que la 7950 GX2 s’écroule ici du fait qu’elle repose sur la technologie SLI (37,1 images par seconde étant le maximum que nous ayons pu obtenir malgré le forçage manuel des modes AFR puis du SFR), la 8800 GTX impressionne toujours autant, et se révèle 56 % à 127 % plus performante que la X1950 XTX. Une fois encore, avec cette nouvelle carte le 2048*1536 + filtres devient extrêmement jouable et fluide !
Trackmania United 2.0.0
Dernier opus de la série, reprenant le moteur de Trackmania Nations mais l’exploitant mieux (effets visuels plus présent), il vise à donner une dimension de MMO à ce jeu toujours aussi prenant en réseau. Sans être très gourmand, voyons comment il se comporte dans sa version finale sur GeForce 8.
En l’absence de la 7950 GX2 (aux performances carrément inférieures à la 7900 GT Top ici), la 8800 GTX se montre moins impressionnante ici : sa supériorité sur la 7900 GT Top d’Asus – qui surpasse assez étrangement la X1950 XTX sur ce jeu – varie entre 23 % et 30 %. Nul doute cependant que toutes ces bizarreries restent à mettre à l’actif du moteur 3D…
Tests in-game (Gothic 3, Supreme Commander)
Gothic 3
Particulièrement immersif, ce jeu de rôle nous permet de parcourir un monde énorme et varié, et visuellement magnifique (dans un style assez différent d’Oblivion, ça change). Gros défaut du jeu (outre ses plantages réguliers au lancement), la gourmandise de son moteur, même avec le dernier patch 1.08 installé. L’occasion parfaite de voir si notre dernière venu permet d’accéder à une meilleure expérience de jeu.
C’est bien le cas en pratique, la 8800 GTX se montrant en moyenne environ 50 % plus performante que la X1950 XTX sur ce jeu (elle-même plus rapide que la 7950 GX2). En pratique, elle est là encore la seule à permettre de jouer en 2048*1536 + filtres de manière fluide, à condition que le processeur suive bien entendu (viser le Core 2 Duo à plus de 2 GHz).
Supreme Commander
Last but not least, nous n’avons résisté à l’envie d’inclure un jeu en version beta, le fils spirituel de Total Annihilation. La beta a ici été patchée en version 2.7 seulement, la version 3.0 provocant divers bugs insolvable sur notre configuration. Afin d’évaluer les performances de ce jeu de stratégie, nous avons enregistré une partie que nous avons ensuite rejouée en mode accéléré (10x) avec chaque carte, en ajustant le zoom et la caméra au même endroit à chaque fois. L’enregistrement du nombre d’images par seconde est effectué au moment d’une bataille ininterrompue entre les deux camps. Bien sûr, gardez en tête que des optimisations seront obligatoirement introduites dans la version finale du jeu (vu la chute de framerate constatée au bout de quelques minutes sur les parties actuelles).
L’allure des barres de la 8800 GTX comparé à celles des autres permet bien de remarquer qu’elle ne parvient pas vraiment à s’exprimer ici, faute d’optimisations ou d’une limite trop importante du processeur en pratique sur ce jeu. Evidemment, en 2048*1536 + filtres la charge graphique devient importante (elle le serait avec à peu près tous les jeux…) et les écarts le sont donc, mais en 1600*1200 on est que 15 % au-dessus d’une X1950 XTX en pratique aujourd’hui sur cette beta.
Consommation, bruit, overclocking
Consommation
En ce qui concerne la consommation, nous avons mesurée la puissance consommée par l’alimentation sous Age Of Empires III en 2048*1536, plus révélatrice du comportement de ces cartes en pratique chez le joueur. Changement de configuration de test oblige, les valeurs ne sont pas comparables avec celles de nos précédents comparatifs.
Comme on pouvait s’y attendre, la GeForce 8 consomme énormément, générant au niveau de l’alimentation un surplus de 74 W par rapport à une carte intégrant 2 GeForce 7 ! A noter que dans les jeux, nous avons notés des pics de consommation allant jusqu’à 360 W pour l’alimentation. Compte tenu des pertes de l’alimentation (qui délivrait donc réellement environ 300 W à la configuration), nous recommandons donc un modèle de marque et d’une puissance de 400 W – doté d’un solide 12 V –, sauf cas spéciaux.
Nuisance sonore
Vu la consommation (et donc la dissipation) atteinte par cette nouvelle puce, cette partie nous faisait craindre le pire. Nous avons ici placé le sonomètre à 5 cm du système de refroidissement pour une sensibilité maximum.
En pratique, c’est pourtant une énorme surprise de constater que la GeForce 8800 GTX se révèle inaudible en pratique, et parvient donc à poursuivre la tradition nVidia sur ses cartes très haut de gamme – et seulement celles-là -, depuis la GeForce 6800 Ultra (exclue !). Le ventirad en aluminium assure plus que son rôle, et si nous n’avons pu vérifier les températures atteintes par la puce, il est impressionnant de voir que le niveau de silence reste supérieure à celui d’une X1950 XTX au repos (pourtant déjà silencieuse et dont le ventirad a été mis au point par Arctic Cooling). Bravo !
Overclocking
Malheureusement, nous n’avons pu vérifier ce point, aucun logiciel actuel ne supportant les fréquences spéciales de la GeForce 8800 GTX pas plus que les coolbits.
Bilan
Plusieurs choses impressionnent au final sur cette GeForce 8, résultat de 4 années de développement. La première, c’est bien sûr l’architecture, complètement revue, se basant sur des streaming processors finalement unifiés alors qu’ils n’étaient pas obligatoires pour DirectX 10, et que nVidia laissait même clairement entendre que ce n’était pas la direction qu’il prenait. Outre le passage à des unités de calculs scalaires, le constructeur de Santa Clara en a également profité pour mettre à jour son architecture vis-à-vis de celle d’ATI, que ce soit au niveau de l’intégration du Gigathread (masquage de la latence du texturing), de la granularité des branchements dynamiques, de la gestion du HDR et de l’antialiasing ou encore du traitement 10 bits.
Profondément novatrice – il faut au moins remonter au lancement des GeForce 6 il y a deux ans et demi pour constater de tels bouleversements – et taillée pour l’avenir, la bonne surprise a été de constater dès à présent que la GeForce 8800 GTX ne se contente pas de dominer les meilleures cartes actuelles sur les tests synthétiques en vertex ou pixel shading. Son architecture unifiée se montre surtout particulièrement adaptée aux jeux DirectX 9 d’aujourd’hui, puisque malgré l’absence de révolution côté mémoire (utilisation de GDDR3 900 MHz, interfacée en 384 bits toutefois), les performances de la 8800 GTX sont réellement excellentes, et ce dès le 1600*1200 et les processeurs actuels ! Une vraie surprise vu l’importance du bouleversement. Il faut cependant garder en tête que nous ne disposons aujourd’hui que d’un tiers de la réponse concernant les performances de cette 8800 GTX. Il nous reste en effet d’une part à étudier son comportement sous des applications DirectX 10 (grosse inconnue), et d’autre part à la comparer au futur R600 d’ATI, ce que nous ne pourrons faire qu’au début de l’année prochaine.
Dernier point et pas des moindres, NVIDIA en a visiblement eut assez que nous mettions en avant la qualité visuelle supérieure des ATI X1x00. Il a réagit en introduisant un vrai antialiasing 8X (supersampling), mais aussi un mystérieux mais fort prometteur mode 16X. Et surtout, côté filtrage anisotropique, il a enfin suivi le chemin des X1800 en revenant à un algorithme anisotropique qui ne dégrade plus significativement le niveau appliqué suivant l’angle. Et qui est de plus appliqué par défaut, une excellente initiative, surtout vu le coût aujourd’hui faible de l’anisotropie !
- Les plus
- Les moins
- Architecture unifiée et maximisant le rendement
- Pérennité (compatibilité DirectX 10)
- Performances largement au-dessus des cartes actuelles
- Qualité visuelle entièrement corrigée
- Carte silencieuse
- Consommation réellement élevée
- Prix (650 €)
Récapitulatif des performances
Voici les moyennes obtenues par chaque carte et pour chaque résolution sur l’ensemble des jeux. Notez que les scores sous Oblivion en antialiasing ont été exclus pour les GeForce 7 (plutôt que de prendre en compte 0 vu leur inaptitude), et que les résultats de la 7950 GX2 sont à prendre avec des pincettes vu les difficultés rencontrées sur les derniers jeux.