ATI Radeon X1800 : Le R520 débarque enfin !

05 octobre 2005 à 15h00
0

Une architecture radicalement différente



Avec le R520, ATI inaugure une toute nouvelle architecture, beaucoup plus flexible que ce que nous connaissions jusqu'alors. Par rapport aux R4xx (Radeon X800/850), ATI fait en effet un grand saut. La partie traitant les pixels au sein de la puce graphique se décompose dorénavant en divers noyaux d'exécution, dont certains, à la manière d'un jeu de construction Lego, peuvent se réadapter afin d'exécuter une tâche donnée avec le maximum d'efficacité. Pour que cela fonctionne, l'architecture du pipeline 3D a été largement revue et la notion de pixels pipelines, telle que nous la connaissions par le passé, est aujourd'hui tout simplement dépassée. Attention toutefois il n'est pas encore question d'un pipeline unifié capable de traiter aussi bien les vertex que les pixels shaders même si l'on s'en rapproche inexorablement.

0000017C00146778-photo-ati-radeon-x1800-l-architecture.jpg

Diagramme de l'architecture du R520 (Radeon X1800)

Commençons notre tour d'horizon du moteur 3D du R5xx par la partie réservée à l'exécution des vertex. Cet élément qui gère principalement les calculs géométriques comporte huit unités d'exécution et non plus six comme avec les Radeon X800. Chaque unité de vertex peut ici traiter deux instructions par cycle d'horloge ce qui confère à la puce une puissance théorique brute de 10 milliards d'instructions à la seconde. Opérant selon les spécifications du Shader Model 3.0, les unités de vertex peuvent exécuter un maximum de 1024 instructions, mais grâce au contrôle dynamique de flux le R520 peut en vérité aller beaucoup plus loin. Sans rentrer dans trop de détails, une unité de vertex du R520 se compose d'une sous unité arithmétique vectorielle de 128 bits et d'une unité scalaire de 32 bits. Petite subtilité, les unités de vertex du R5xx n'ont pas accès au moteur de textures, cette fonction n'étant pas rendue obligatoire par les spécifications du Shader Model 3.0. Du coup, cela peut poser problème et rendre les opérations de Displacement Mapping à partir des textures impossibles. ATI a ici pris soin de ne pas exposer la fonction de Displacement Mapping dans les pilotes même si elle reste fonctionnelle lorsqu'elle n'est pas liée aux textures (en utilisant un pixel shader comme point d'entrée dans les vertex shaders). Généralement c'est cette dernière variante que les développeurs utilisent, le Displacement Mapping à partir d'une texture étant trop coûteux en terme de performances.

0000011800146784-photo-ati-radeon-x1800-zoom-sur-un-shader-core.jpg

Gros plan sur un Shader Core

Ce qui constituait autrefois le pipeline 3D est dorénavant chapeauté par un processeur multithreadé. Si ce processeur apparaît physiquement sur le schéma de l'architecture du R520, il s'agit plus d'une représentation conceptuelle que d'un véritable noyau au sein de la puce. Quoi qu'il en soit, celui-ci a pour tâche de répartir les données dans les différents Processeurs de shaders qui lui sont connectés, mais aussi dans les seize unités d'adressage de textures. Ce processeur multithreadé, baptisé Ultra-Threading Dispatch Processor, a été intégré afin d'obtenir la meilleure efficacité possible. Le crédo d'ATI étant de réduire la latence et d'éviter au maximum le gaspillage de cycles. Comme c'est le cas dans le monde des CPU, l'intérêt premier de cet « Ultra-Threading » est de paralléliser au mieux les tâches en alimentant le plus possible les autres unités de la puce. Pour cela, le R520 peut gérer jusqu'à 512 processus en parallèle (les RV515 et RV530 se contenteront quant à eux de 128 processus) et c'est précisément l'un de ses points forts.

En outre, ATI offre une granularité jusqu'alors inégalée en éclatant le traitement des pixels nécessaires au rendu d'une image en un large nombre de petits processus. Avec le R520 la taille minimum d'un processus 3D peut être de 16 pixels soit un carré de 4x4. En face, le pipeline de NVIDIA travaille de manière un peu plus grossière avec une taille de threads plus élevée de 64x16. Ceci permet d'assurer une alimention quasi-perpétuelle du pipeline et si jamais l'un des cores a terminé une tâche ou est en attente de données pour achever l'exécution d'un shader, le processeur Ultra-Threading est capable de suspendre un processus en attente, jusqu'à ce que les données soient disponibles, pour faire travailler le noyau sur une autre tâche. Le processeur a également recours à un algorithme de séquencage pour réarranger le code des shaders. Dès lors le taux d'utilisation du pipeline 3D est particulièrement élevé garantissant ainsi un maximum d'efficacité. Il est également question d'accélérer le contrôle dynamique de flux grâce aux fonctions décrites précédemment et ayant trait à la gestion des processus. Rappelons que le contrôle de flux est une fonction introduite par le Shader Model 3.0 qui propose le branchement, les boucles et autres conditions dans les shaders afin, par exemple, d'exécuter une autre branche du programme en fonction du résultat obtenu. Ceci est particulièrement utile notamment pour les effets d'éclairage qui peuvent ainsi varier en fonction d'un algorithme et sans nécessité de changement de shaders. On peut encore tirer profit des branchements pour sauter certaines parties du shader qui n'ont plus besoin d'être exécutées pour telle ou telle raison.

0000011800146783-photo-ati-radeon-x1800-thread.jpg

De l'importance de la taille des processus


Placé en amont, le processeur multithreadé est relié à l'unité de pixels qui comporte pour sa part quatre processeurs de shaders pouvant traiter chacun quatre pixels en parallèle pour six instructions différentes par processus et par cycle d'horloge. Les quads d'ATI sont chacun munis de quatre unités arithmétiques ; deux en scalaire et deux en vectoriel en plus d'une unité de branchement. Cette dernière est une petite nouveauté dont le rôle n'est pas négligeable puisque des unités dédiées sont mises à la disposition des contrôles de flux afin de ne pas avoir d'impact sur les unités arithmétiques. Le but ? Réduire les délais liés aux opérations de branchement en permettant aux programmes qui y font appel de s'exécuter en un nombre réduit de cycles d'horloge. D'autre part, les registres à usage général du R520 sont au nombre de 32, contre 12 pour les Radeon X800 même si l'on pouvait en adresser 32 avec l'architecture R4xx. Comparativement à une architecture traditionnelle, le R520 peut donc être catalogué comme une puce disposant de 16 pixels pipelines chacun disposant de sa propre unité de texture. En fin de pipeline, on retrouve 16 unités ROP.
Modifié le 01/06/2018 à 15h36
0 réponses
0 utilisateurs
Suivre la discussion

Les actualités récentes les plus commentées

L'Angleterre envisage l'interdiction du smartphone en conduisant, même en main libre
Normandie : la plus grande route solaire du monde est un échec
Windows Defender obtient 3 fois le score maximum aux tests AV-Test
Sur Reddit, les développeurs d'Apex Legends dérapent et insultent leur communauté
WoW Classic : Blizzard dit s’attendre à des files d’attente monstrueuses à l’ouverture
Matrix 4 officiellement annoncé, avec Keanu Reeves et Carrie-Ann Moss
Piratées, les enceintes connectées pourraient être une menace pour leurs utilisateurs
Des scientifiques réinventent l'air conditionné grâce au froid de l'espace
Starman et sa Tesla Roadster viennent d'achever leur première orbite autour du Soleil
Minecraft s'offre un boost graphique... réservé aux possesseurs de cartes NVIDIA RTX

Notre charte communautaire

1. Participez aux discussions

Nous encourageons chacun à exprimer ses idées sur les sujets qui l'intéressent, et à faire profiter l'ensemble de la communauté de son expertise sur un sujet particulier.

2. Partagez vos connaissances

Que vous soyez expert ou amateur passionné, partagez vos connaissances aux autres membres de la communauté pour enrichir le niveau d'expertise des articles.

3. Échangez vos idées

Donnez votre opinion en étayant votre propos et soyez ouverts aux idées des autres membres de la communauté, même si elles sont radicalement différentes des vôtres.

4. Faites preuve de tolérance

Qu'il s'agisse de rédacteurs professionnels ou amateurs, de lecteurs experts ou passionnés, vous devez faire preuve de tolérance et vous placer dans une démarche d'entraide.

5. Restez courtois

Particulièrement lorsque vous exprimez votre désaccord, critiquez les idées, pas les personnes. Évitez à tout prix les insultes, les attaques et autres jugements sur la forme des messages.

6. Publiez des messages utiles

Chaque participation a vocation à enrichir la discussion, aussi les partages d'humeurs personnelles ne doivent pas venir gêner le fil des échanges.

7. Soignez votre écriture

Utilisez la ponctuation, prohibez le langage SMS et les majuscules, relisez-vous afin de corriger un peu les fautes de frappe et de français : trop de fautes n’engagent ni à lire le message, ni à répondre à une question.

8. Respectez le cadre légal

Ne publiez pas de contenus irrespectueux, racistes, homophobes, obscènes ou faisant l'apologie de courants radicaux, qu'ils soient politiques ou religieux. N'utilisez pas plusieurs comptes utilisateurs.

9. Ne faites pas de promotion

Ne profitez pas d'une discussion pour faire la publicité d'un produit, d'un service ou même de votre site web personnel.

10. Ne plagiez pas

Exprimez uniquement vos opinions ou partagez des idées en citant vos sources.

scroll top