Sélectionner une page
Retard ou pas ?

Il est amusant de constater quau fur et mesure du temps, ce sont presque les news de certains sites mieux que les constructeurs qui fixeraient les dates de sortie des produits ! Sil est vrai que les R520 taient attendus par la majorit bien avant le 5 octobre, ATI navait jamais donn de date officielle. Quoi quil en soit, on ne lance pas une nouvelle architecture, qui plus est en passant une technologie de gravure plus avance, sans dventuels retards de dernire minute. Le basculement au 90nm a conduit ATI faire deux rvisions de plus quinitialement prvu Il faut reconnatre que contrairement ses habitudes savoir tester une nouvelle technologie de gravure sur des produits matures dans le cadre de versions conomiques ATI a introduit le premier processeur graphique en 90nm. Le canadien na pas fait dans le dtail vu que le R520 comporte quand mme 321 millions de transistors sur seulement 272mm contre 302 millions pour le G70 (333mm). Mme si laccouchement a t difficile, ATI a pass un double cap qui devrait tre savrer bnfique pour lavenir

Manque combler

Avec le NV40 et ses drivs, NVIDIA a demble support les Shaders Model 3.0 alors quATI avec ses Radeon X800 et X850 sen tenait toujours la version 2.0 depuis sa trs russie Radeon 9700 Pro Mais face au puissant marketing de NVIDIA et larrive des jeux utilisant les Shaders 3.0, ATI ne pouvait plus se permettre de faire limpasse sur cette technologie. Ce sont surtout les consoles de jeux qui ont jou les moteurs pour imposer le passage aux Shaders Model 3.0. En effet, les prochaines gnrations y feront massivement appel et les dveloppeurs de jeux ne prendront certainement plus leur temps crire un path code pour le modle 2.0 Lexemple de Splinter Cell Chaos Theory est parlant. Le jeu est sorti dans un premier temps en supportant les shaders 3.0 et il a fallu attendre un patch pour prendre en charge la version 2.0. A lavenir, ce genre de dveloppement risque de ne plus se faire. Les circuits graphiques limits aux shaders 2.0 devront se contenter des shaders 1.x qui vu la base existante devraient encore bnficier dun certain support. Autre dtail, pour signer des gros contrats sur des millions de petits VPU, il faut que les modles phares soient au top. Quel constructeur na pas envie de pouvoir mettre ses petits autocollants support des shader 3.0 sur ses cartes ?
Outre ces considrations un peu marketing, les shaders 3.0 permettent de faire simplement, rapidement et bien mieux ce qui tait grosso modo ralisable avec la version 2.0. Les branchements dynamiques y sont pour quelque chose ainsi que la prcision qui dcoule des calculs en FP32.

La rponse : Fudo !


Sous le nom de code Fudo se cache la nouvelle architecture dATI. Le 90nm mis part, elle apporte plusieurs innovations : un contrleur mmoire indit, des shaders engines mis niveau et la technologie vido AVIVO. Comme toutes les architectures rcentes, celle du R520 est modulaire. Concrtement, cela signifie quen jouant sur les units et les frquences, on peut crer une gamme complte de cartes graphiques. ATI a poursuivi plusieurs autres objectifs : performances, rendement lev et rendu de trs haute qualit.
ATI ne sest pas content de rattraper son retard sur NVIDIA. Le R520 supporte le HDR mais il va plus loin en supportant la combinaison HDR et anti-aliasing. Les images issues des dmonstrations sont dailleurs du plus bel effet Fudo hrite aussi de la prise en charge de la compression non destructrice de la normal map 3Dc introduite par la gnration prcdente. Dans le cas qui nous occupe, elle volue vers la version 3Dc+ en supportant galement les textures un seul canal (utiles pour les maps dombre, dclairage et les textures HDR). ATI a galement prsent lAdaptive AA qui combine les avantages du supersampling avec ceux du multisampling tout en fonctionnant sur les textures avec des zones transparentes comme les grillages, les feuillages, etc.
Pour sa dernire architecture, ATI voque aussi un filtrage anisotropique de trs haut niveau (16x) exploitable avec au choix un mode performances et un mode qualit.

Le contrleur mmoire

Une pour ne pas dire la plus grande innovation de larchitecture R520 est le contrleur mmoire. Dans les gnrations prcdentes, le contrleur mmoire communique avec la mmoire en 256bits via 4 canaux de 64bits, chacun reli deux puces de mmoire. Cette solution introduite par les GeForce3 se retrouve dans la majorit des processeurs graphiques. Auparavant, le bus tait en 256bits dun seul bloc. Un transfert ne demandant que 32bits mobilisait tout le contrleur et toute la largeur du bus Pour disposer dune bande passante toujours plus importante avec un contrleur conventionnel, il faut augmenter soit la largeur du bus, soit la frquence de la mmoire, soit le data rate, voire combiner plusieurs de ces lments. Une autre approche consiste utiliser au mieux la bande passante existante (compression des donnes) et viter les gaspillages (viter les traitements inutiles). Selon ATI, lapproche actuelle semble montrer ses limites lors des accs incessants la mmoire notamment pour lapplication de lAA et de lAF ainsi que dans les hautes rsolutions. Le contrleur Ring Bus Architecture est la solution apporte par ATI au problme critique de la bande passante. Le contrleur gre toujours un bus 256bits mais via 8 canaux de 32bits et un bus priphrique 512bits divis en deux anneaux de 256bits tournant dans le sens inverse et de quatre Ring Stop relis aux puces de mmoire. Dans une architecture conventionnelle, si le contrleur reoit une demande de donnes dun client (par exemple une unit du VPU), il organise et excute la requte. Ensuite, il reoit les informations demandes et les dirige vers le client qui a ralis la demande. Avec le contrleur Ring Bus , seule la demande transite par le contrleur lui-mme. Linformation est envoye via le ring (par le sens le plus court) et le client la rcupre lui-mme. Cette manire de procder permet de disposer au mieux dune grande bande passante brute.


Mais quand le VPU est en pleine activit, ce sont des dizaines de requtes qui se font de front. Pour viter que la latence engendre par limpossibilit de rpondre immdiatement toutes les demandes, des caches sont ncessaires ainsi que des algorithmes pour dterminer les priorits de traitement. Autre innovation du R520, ces caches sont de type Fully Associative et plus Direct Mapped ou N-Way Set Associative comme dans les anciens VPU. La gestion est plus complexe vu que chaque partie peut mapper nimporte quelle zone de la mmoire mais le hit ratio dun tel cache est bien plus lev.


Enfin, toujours dans le but doptimiser la bande passante, certaines donnes subissent une compression trs lgrement destructrice (texture) alors que dautres comme les couleurs, donnes Z et les stencil buffers passent par un procd non dgradant.

Enter this way

Comme nous lavions dj fait avec les Radeon X800 et GeForce 6800, nous allons cheminer de lentre du VPU la sortie. Le R520 est nativement PCI-Express. Aprs leur arrive dans le processeur graphique, les donnes gomtriques sont prises en charge par le Vertex Shader Engine compos de 8 Vertex Pipelines. Ils disposent chacun dune unit vectorielle en 128bits et dune unit scalaire en 32bits capables de traiter tous deux une instruction par cycle. Un contrle du flux ncessaire aux branchements dynamiques a fait son apparition. Sils supportent bien les Shaders Model 3.0, un grand flou subsiste quant la gestion du Vertex Texturing qui semble pratiquement absente. ATI ne communique pas beaucoup ce sujet. Ce manquement est loin dtre critique tant donn le faible usage fait de cette fonction. Avec 8 vertex pipelines et sa frquence de 625MHz, le Radeon X1800 XT dispose dune puissance gomtrique peu commune : 1250Mver/s ! Le Radeon X1800 XL est quant lui tout aussi impressionnant avec 1000Mver/s. A titre de rappel, le GeForce 7800 GTX naffiche quun petit 936Mver/s (766Mver/s pour la version GT).


Les donnes gomtriques subissent ensuite diffrentes oprations : backface cull, clipping, perspective divide et viewport transform. Il sagit de mettre la scne lchelle et de la cadrer suivant le point de vue en laissant tomber toutes les donnes relatives aux parties non visibles des objets.
Dans le Setup Engine, diffrents tests sont raliss pour viter de traiter les polygones masqus par dautres via le Hierarchical Z. Il a t optimis et selon ATI, les algorithmes plus fins du R520 permettent de dtecter jusqu 50% de zones masques et ainsi viter des calculs inutiles. On remarque aussi sur le diagramme du chip que les donnes Z sont conserves de manire compresse (ratio 8:1) via un algorithme non destructeur. ATI conserve sa technologie Fast Z Clear qui permet deffacer trs rapidement les Z buffer et Stencil buffer. Cest donc un minimum de donnes 3D qui seront aplaties avant de prendre le chemin de la sortie au travers du Pixel Shader Engine.

Way out !


LUltra-Threading Dispatch Processor distribue les donnes (sous forme de groupes de pixels appels threads) vers les 4 quads pixel shader core. Ils se composent tous les quatre de Pixel Shader Processor (soit un total de 16 pixel pipelines ). Dans chacun, on retrouve deux units scalaires, deux units vectorielles et une unit de contrle du flux. Le contrle de flux pilot par une unit ddie est une premire et permet daprs ATI dconomiser six cycles pour se consacrer directement aux branches du shader lui-mme. Habituellement, cette tche incombe une ALU. Par contre, avec une grosse unit vectorielle + scalaire (3+1) et une petite unit vectorielle + scalaire (3+1) pour des modifiers, le R520 nvolue gure par rapport la gnration prcdente.


ATI a choisi des Threads de petite taille : seulement 16 pixels. Lintrt de ce choix est vident. En effet, si tous les pixels dun Thread ne suivent pas la mme branche du shader, les deux branches doivent obligatoirement tre calcules. Il y a statistiquement plus de chance que tous les pixels dun petit groupe ne suivent quune des branches. A linverse, plus le Thread est gros, plus il est probable de trouver des pixels de chaque branche, ce qui impose le calcul des deux options. Ceci est trs bien illustr par lexemple fourni par ATI.

Dun autre ct, il ne doit pas tre bien compliqu de dmontrer que dans dautres cas, un gros Thread est plus avantageux. Mais tout est souvent idyllique dans les documents PDF Trve de plaisanterie, la juste taille du Thread est fonction de la conception du shader core. Et dans le cas qui nous occupe, la solution dATI tient parfaitement la route ! En effet, quand un Thread (appelons-le A ) est en cours de traitement, il peut ncessiter une opration lente comme laccs une texture. A ce moment, le Thread A est envoy lunit de texture et le shader core se met immdiatement traiter un autre Thread B . Si celui-ci est simple, il peut directement tre trait et quitter le shader core qui fera soit entrer un nouveau Thread C soit terminera le traitement du Thread B . Si ce Thread B est complexe, il devra peut-tre aller lui aussi lunit de texture. Pendant quelle soccupera du Thread B , elle retournera le Thread A au shader core. Les possibilits sont multiples pour ne pas dire infinies et ne manquent pas de rappeler lHyperThreading des Pentium 4. En pratique, le Pixel Shader Engine du R520 ne cesse de jongler avec de trs nombreux Threads (un maximum de 512) afin doccuper au mieux les units de traitement qui le composent. Ces nombreux basculements entre Threads ncessitent une vole de zones de stockage temporaires, les General Purpose Register Arrays.


Lavant-dernire tape est le Render Back-End totalement comparable aux ROP des GeForce. Il sagit dunits ddies l’anti-aliasing, la compression des couleurs, les filtrages, etc. Ensuite, direction le frame buffer et lcran !

HDR

Le HDR ou High Dynamic Range dfinit un rapport entre la plus haute et la plus faible valeur qui peuvent tre affiches. Plus la prcision, cest–dire le nombre de bits, est leve, plus le Dynamic Range est lev. Avec une prcision de 8bits integer, le DR est de 256 :1, il grimpe 65 536:1 en 16bits integer et 2,2 trillions:1 en 16bits FP. On peut alors franchement parler de High Dynamic Range. Les Radeon X1800 supportent donc le HDR en 64bits via 4 canaux en 16bits FP comme les GeForce 6800 et 7800. Les 4 composantes sont loges dans un buffer 64bits comme des textures et lassemblage se fait par blending. Pour finaliser laffichage dun rendu HDR, il doit tre converti en 32bits via le tone mapping. LAVIVO peut appliquer ce fameux tone mapping mais cette unit nest pas accessible directement via DirectX. Pour contourner le problme, ATI passe par un format de texture FourCC et le pilote se charge alors de faire appel lunit AVIVO afin de rendre finalement limage. Si les Radeon X1800 prennent en charge le blending en FP16, elles font limpasse sur le filtrage en FP16 comme leurs concurrentes.



Par contre, ATI propose une belle innovation avec le support de lAnti-Aliasing et du HDR en mme temps ! Avec l’Adaptative Anti-Aliasing qui active un anticrnelage de type SuperSampling sur les textures avec une transparence (feuilles, grillages) et un de type MultiSampling sur le reste de la scne. Les rsultats sont particulirement probants

AVIVO

Il est amusant de constater quATI qui a t un des pionniers en intgrant une assistance la dcompression vido MPEG2 utilise dans les DVD-Vido na jamais (contrairement NVIDIA et son PureVido) communiqu sur le sujet. Le Canadien na mme jamais pens donner un nom lensemble de ces fonctions. Le tir est prsent corrig avec AVIVO mme si fondamentalement peu de choses ont chang. On retrouve laide la dcompression MPEG2 et WMV9 HD mais la fonction semble actuellement poser des problmes. Trs la mode, le nouveau codec H.264 est aussi pris partiellement en charge par les nouveaux Radeon. Par contre, comme la (d)compression MPEG4 annonce avec les GeForce 6800 et Radeon X800, cette fonctionnalit nest en ltat actuel des choses pas fonctionnelle ! Affaire suivre

Bilan thorique

Cest le nouveau contrleur mmoire qui nous a le plus impressionn. Sur le papier, ce systme est rellement impressionnant et nous semble clairement une bonne base pour lavenir. Les prochaines gnrations de VPU devraient toujours y faire appel et ne devraient donc pas avoir de problmes de bande passante mmoire. Des surprises sont certainement attendre notamment avec les prochaines gnrations de puces mmoire
Les Vertex Engines ont augment en nombre et supportent les Shaders 3.0 mais font limpasse sur le Vertex Texturing. Outre une puissance gomtrique trs leve lie la frquence des Radeon, les units de Vertex Shader du R520 nont rien de spcial . Par contre, le nouveau Pixel Shader Engine et son Ultra-Threading Dispatch Processor permettent une bien plus grande souplesse au niveau de larchitecture que les pixel pipelines plus rigides des X800/X850. LUltra-Threading nous semble trs bien adapt une utilisation intensive des shaders model 3.0.
ATI ne sest pas content de seulement intgrer le HDR puisquil a implment le HDR avec support de lanticrnelage. Il en va de mme pour le moteur vido qui hrite enfin dun nom commercial et du support des codecs WMV9 (bugg) et H.264 (non fonctionnel).
Dans lattente des cartes pour raliser nos tests, la nouvelle architecture dATI nous parat trs porteuse Enfin, la situation actuelle nest pas sans rappeler la sortie des NVIDIA Riva TnT et des ATI Rage 128. On retrouve ATI en retard mais avec une architecture tout en finesse et NVIDIA dj prsent avec beaucoup de puissance brute.