COMPTOIR
  
register

×

Les différentes ères du GPU pour AMD (ATi)

Test • AMD RX 5700 XT & RX 5700
Les différentes ères du GPU pour AMD (ATi)
Diagramme Navi 10
Compute Unit RDNA
Unités d’exécution comparées RDNA vs GCN
GCN vs RDNA issue
Wave32 et 64
Exemple de traitement de Shaders
Gains liés
SMID RDNA
avantages respectifs architectures AMD
CU RDNA vs GCN
Coopération entre CU

• RDNA : des unités d'exécution repensées

Afin d'être parfaitement clair dés le départ, cette nouvelle architecture n'est pas une énième resucée de GCN comme avait pu l'être Vega, et ce malgré les dénégations des rouges à l'époque, qui souhaitaient la présenter avec ce doux parfum qu'est la nouveauté. Pour autant, nouvelle architecture ne signifie pas systématiquement faire table rase du passé, c'est même très rarement le cas. NVIDIA ne procède pas autrement, pourtant que de chemin parcouru entre Fermi et Turing ! Mais revenons à RDNA comme la nomme AMD, à traduire par l'ADN Radeon, ça en jette pour sûr ! Qu'est-ce qui justifie cette fois l'adjectif "nouveau" pour cette architecture ? Le concepteur classe le fonctionnement interne de ses GPU en 5 grandes époques, la dernière débutant tout juste avec RDNA. Comme nous allons le voir, c'est principalement au niveau des unités d’exécution des Shaders que la différence fondamentale se situe entre les 3 dernières "ères".

 

Les différentes ères du GPU pour AMD (ATi) [cliquer pour agrandir]

 

Pour rappel, les GPU modernes utilisent des unités multifonctions capables de réaliser les opérations de calcul et texturing : ce sont les SM (Streaming Multiprocessor) chez les verts et CU (Compute Unit) du côté rouge. Si elles ne sont pas totalement équivalentes, leur rôle est similaire et constitue le "cœur" du processeur graphique. NVIDIA a fait évoluer fortement ses SM au cours des dernières années, ce ne fut pas le cas d'AMD pour ses CU, tout du moins jusqu'à RDNA. Avant de détailler tout cela, voyons brièvement l'organisation "macro" de cette architecture, au sein du premier GPU l'employant aka Navi 10. Commençons par la vue d'ensemble du GPU fournie par AMD ci-dessous.

 

Diagramme Navi 10 [cliquer pour agrandir]

 

Le processeur de commande central est chargé de planifier et ordonner les différents threads, à ses côtés se trouvent les ACE (organisation/gestion des tâches Compute), les contrôleurs mémoire interconnectés au cache L2 généralisé, ainsi qu'un processeur géométrique central. Tout ceci est complété par diverses interfaces et moteurs de gestion (vidéo, encodage/décodage). Enfin, l'exécution des programmes est réalisée au sein des Shaders Engine, ces derniers étant subdivisés en 2 Shader Arrays, chacune disposant de leurs propres cache L1, unité de rastérisation (découpe des triangles en pixels), Primitive Unit (génération et traitement des triangles), ainsi que 16 ROP (unité de rendu/sortie) et 5 Dual Compute Unit comprenant comme leur nom l'indique, 2 CU.

 

Des unités de calcul revues en profondeur

Compute Unit RDNA [cliquer pour agrandir]

 

Commençons par un petit rappel sur le sujet concernant GCN : avec ce dernier, les unités de calcul "élémentaires" ou Stream Processors (SP), sont regroupées au sein d'unités vectorielles SIMD (Single Instruction Multiple Data) comprenant 16 SP. En tout, 4 unités de ce type prennent place au sein d'un CU (soit 64 SP), par contre l'unique ordonnanceur ne peut demander l'exécution d'une instruction qu'à une seule et unique SIMD16 par cycle. Ce choix avait été fait à l'époque pour simplifier le travail au niveau du compilateur et la gestion des éléments à traiter lorsque leur nombre croît fortement. A noter également que les tâches affectées à une SIMD16 sur GCN, ne peuvent solliciter l'unique unité scalaire partagée (pour le traitement d'instructions de ce type) que tous les 4 cycles. Autre limitation, les unités (SFU) réalisant les opérations spéciales (Cos, Sin, etc.), ne peuvent fonctionner qu'en alternance avec les SIMD16 (un ordre tous les 4 cycles, scalaire ou vectoriel).

 

Unités d’exécution comparées RDNA vs GCN  [cliquer pour agrandir]

 

Comment AMD s'y est-il donc pris pour améliorer les unités de calcul de ses Compute Units ? Eh bien en modifiant l'organisation interne de ces dernières et la manière dont elles sont alimentées, afin de faire disparaître certains "goulots" d'étranglement liés à la structure même de GCN. Avec RDNA, les rouges conservent 64 Stream Processors par CU, mais ils sont à présents répartis au sein de deux unités SIMD comprenant chacune 32 SP. Un second ordonnanceur a été ajouté, permettant dès lors de demander le traitement d'une instruction à chaque cycle d'horloge et ce par chacune des deux SIMD32. Autres progrès, RDNA permet à présent d’exécuter une instruction scalaire à chaque cycle (via une unité dédiée par SIMD soit 2 / CU), quant aux SFU, si elles ne peuvent toujours recevoir qu'un ordre tous les 4 cycles, elles peuvent à présent fonctionner en parallèle des SIMD32, une fois ce dernier reçu.    

 

GCN vs RDNA issue [cliquer pour agrandir]

 

Plus d'options côté compilateur

Ceci nous amène tout droit à la façon dont sont organisées les tâches à traiter : sur les Radeon modernes, elles sont regroupées au sein de ce qu'AMD appelle une Wavefront. Jusqu'à présent, ces dernières comprenaient systématiquement 64 éléments pour faciliter le travail des ordonnanceurs. Ces Wave64 sont conservées, mais les rouges introduisent à présent une Wave32 qui, comme son nom l'indique, comporte moitié moins de tâches à traiter, s'alignant ainsi sur ce que fait NVIDIA avec ses Warp.

 

Wave32 et 64 [cliquer pour agrandir]

 

Chaque mode de fonctionnement implique ses propres avantages et inconvénients, il est donc possible selon la nature des Shaders à traiter, d'utiliser l'un ou l'autre afin d'optimiser l'exécution de tâches spécifiques ou éviter l'engorgement de certaines ressources, le code devant être compilé pour le type de Wavefront souhaité. Il faut surtout voir cela comme une rétrocompatibilité, permettant à RDNA de s'adapter au mieux aux spécificités du code prévu initialement pour GCN. Cette nouvelle architecture fonctionne en fait nativement en Wave32, l'usage des Wave64 nécessitant l'émission de 2 ordres pour les opérations de calcul et mémoire, en subdivisant les 64 tâches en 2 x 32.

 

Exemple de traitement de Shaders [cliquer pour agrandir]

 

Pour quels bénéfices ?

La combinaison de la nouvelle structure des unités d'exécution et de leur alimentation via un nouveau type de Wavefront, permet un taux d'utilisation des ressources matérielles bien supérieur à ce dont GCN est capable. AMD avance ainsi un gain pouvant aller jusqu'à un facteur 4, pour l’exécution de certaines tâches faisant un appel intensif aux ALU. Bien entendu, il s'agit de cas très favorables qui sont loin de constituer la totalité de la charge dont doit s’acquitter le GPU lors du rendu d'une image en domaine ludique. Il n'en reste pas moins que le taux d'usage des unités d’exécution est effectivement en progression significative, du fait des changements opérés.

 

Gains liés  [cliquer pour agrandir]

 

Pour ceux qui se poseraient la question, les unités de calcul conservent leur capacité à traiter à double vitesse la demi-précision (FP16), qu'AMD nomme Rapid Packed Math au sein de Vega. Voici résumées dans le slide suivant, les principales caractéristiques et évolutions des unités SIMD adoptées par RDNA...

 

SMID RDNA [cliquer pour agrandir]

 

... et les changements fondamentaux que l'évolution des caractéristiques a entraînés au niveau de l'usage des unités d'exécution. On peut donc voir RDNA comme un rééquilibrage entre les architectures Terascale et GCN, tentant le difficile équilibre entre l'efficience de l'une et la facilité d'usage et d'optimisation de l'autre.

 

avantages respectifs architectures AMD [cliquer pour agrandir]

 

1 CU = 1/2 WGP

Intéressons-nous pour clore ce chapitre, aux autres éléments constitutifs d'un CU RDNA. Peu de changement à ce niveau, l'application des textures est toujours confiée à 4 TMU. Ces dernières sont toutefois plus performantes pour certaines tâches de chargement ou stockage. Le filtrage des textures en FP16 est également réalisé à présent à pleine vitesse. Chaque Compute Unit intègre également les registres destinés aux unités SIMD32 & scalaire, mais aussi divers caches et mémoire locale. Nous détaillerons cela page suivante. Des unités Load/store gérant les accès mémoire sont également présentes, mais ne sont pas affichées sur ces slides, probablement pour éviter de les surcharger. Un point intéressant à noter concerne la représentation visuelle d'un CU : il s'agit d'un couple de 2 Compute Unit, dont l'une des deux est grisée et ce n'est pas sans raison. En effet, la notion de WorkGroup Processor (WGP) apparaît avec RDNA : il s'agit de 2 CU "adjacents" partageant un même accès à la mémoire vidéo.

 

CU RDNA vs GCN [cliquer pour agrandir]

 

Ces CU coopèrent nativement en mutualisant leurs ressources au sein du WGP, de quoi obtenir une capacité de traitement doublée, tout comme le nombre de registres disponibles ou même une bande passante quadruplée pour le cache. Cette organisation en pool des ressources entre 2 CU interdépendants, vise à maximiser leur efficacité. Si les CU peuvent continuer à opérer individuellement si besoin, notons tout de même que dans sa documentation sur RDNA, AMD décrit un Compute Unit comme étant la moitié d'un WGP, ce dernier étant considéré à présent comme l'unité de base pour l'exécution des Shaders. Peut-être pour une simple raison marketing (40 > 20), ou tout simplement pour conserver une certaine continuité avec le passé, mais AMD continue à communiquer en termes de nombre de CU plutôt que de WGP.

 

Coopération entre CU [cliquer pour agrandir]

 

C'est tout pour les unités d'exécution RDNA, poursuivons notre tour d'horizon de cette architecture page suivante.



Un poil avant ?

Gamotron • Et vous, quel sera votre rôle ?

Un peu plus tard ...

Test • AMD Zen 2 : X570 & Ryzen 7 3700X / Ryzen 9 3900X


Sur le comptoir, au ~même sujet

 
 
 
 
 
 
 
 
 
 
 
 

Les 85 ragots
Les ragots sont actuellement
ouverts à tous, c'est open bar !
par Eric B., le Mardi 06 Août 2019 à 22h11  
Les applications comme Furmark ou OCCT sont considérées par AMD ou NVIDIA comme des power virus, c'est pourquoi la plupart sont détectées par les pilotes qui forcent un mode "conservateur" sur le GPU, afin d'éviter de malmener la carte. Ce sera donc difficile de la tester par ce biais, toutefois, fut un temps certaines très vielles version de Furmark "fonctionnaient" encore, mais j'avoue que je ne m'y intéresse plus depuis belle lurette. Je pense qu'il faut t'orienter vers un jeu très gourmand genre The Witcher 3 et le laisser tourner suffisamment longtemps pour torturer ta carte.
par cabou83, le Mardi 06 Août 2019 à 20h30  
par Eric B., le Vendredi 02 Août 2019 à 18h50
Oui enfin faut pas exagérer non plus. Il y a quelques soucis de jeunesse côté software, c'est classique avec une nouvelle architecture et ça n'épargne personne...
J'ai une petite question, tu connais un stress test GPU qui ne charge pas trop le GPU ?
Je m'explique, depuis la canicule j'ai l'impression que ma Vega 56 a un peut du mal en jeux quand je la pousse a +50% de PT sans rien changer d'autre. J'ai eu un écran noir, une boucle sonore pour finir sur le pc qui redémarre avec les paramètres radeon réinitialisé. Ça me la fait 3 fois en une semaine. Bien sur la temperature était correct 75 à 83°C grand max (j'ai la blower air boost de MSI).
J'aimerais donc la tester mais en jeux a +50% je tourne a 1570/1595Mhz et en stress test détection d'erreur d'occt la fréquence n'est que de 1250Mhz max vu la forte charge donc c'est pas représentatif.
Une idée ?
par Eric B., le Vendredi 02 Août 2019 à 18h50  
Oui enfin faut pas exagérer non plus. Il y a quelques soucis de jeunesse côté software, c'est classique avec une nouvelle architecture et ça n'épargne personne...
par Un ragoteur blond en Wallonie, le Vendredi 02 Août 2019 à 14h21  
Sans driver correcte la puissance n'est rien....
par nephh, le Vendredi 02 Août 2019 à 13h45  
par Eric B., le Lundi 22 Juillet 2019 à 06h47
Oui c'est effectivement très étrange, car il n'y a vraiment pas de raison de se retrouver avec des performances inférieures à la 580. Tu es parti d'une installation "fraîche" ou tu as juste remplacé la carte graphique sans réinstaller Windows ? DDU entre les 2 ? Pour la température, tu peux la voir directement au sein des pilotes via Wattman ou sinon avec GPU-Z.
À la base j'avais simplement changer la carte graphique et installer DDU pour réinstaller les pilotes graphiques, sans succès. J'ai fait une clean install de Windows 10 sur un second disque... et les performances / températures étaient toujours mauvaises. Je suis monté jusqu'à 97°C en température sur le bench FurMark en 1440p et 4K. Sans parler les nombreux freezes / ralentissements que j'avais sur des jeux qui sont moins gourmands comme le dernier FIFA... Bref j'ai renvoyé la carte graphique, mon exemplaire était peut-être défectueux et les drivers étaient trop instables à mon goût. Ça ne pourra que s'améliorer avec le temps.
par Eric B., le Vendredi 02 Août 2019 à 12h26  
la partie architecture du GPU a été ajoutée.
par Eric B., le Lundi 22 Juillet 2019 à 06h47  
Oui c'est effectivement très étrange, car il n'y a vraiment pas de raison de se retrouver avec des performances inférieures à la 580. Tu es parti d'une installation "fraîche" ou tu as juste remplacé la carte graphique sans réinstaller Windows ? DDU entre les 2 ? Pour la température, tu peux la voir directement au sein des pilotes via Wattman ou sinon avec GPU-Z.
par nephh, le Dimanche 21 Juillet 2019 à 21h00  
Très prometteuse au premier abord, je viens de tester cette RX 5700 XT (marque Sapphire)... et c'est une catastrophe. C'est sûrement les drivers qui ne sont pas encore au point mais j'ai vraiment des mauvaises performances. Sur GTA 5 par exemple j'ai des meilleures perfs avec ma RX 580... que cette RX 5700 XT. Pas logique et incompréhensible. J'ai essayé la dernière version des drivers, l'avant dernière version, rien n'y fait. Je vais essayer d'autres jeux, on va voir... De plus chose assez étrange, je ne vois pas la température du GPU dans un logiciel comme HWMonitor ou SAPPHIRE TriXX.

Si vous avez des idées, je suis plus que preneur... Merci
par Rondoudou, le Jeudi 11 Juillet 2019 à 14h30  
Franchement, à moitié déçu, c'est clairement mieux qu'avant, mais le 7nm y est pour quelque chose. Pour des versions Blower, je trouve ça cher, mais comme Nvidia n'a pas encore massacrer les prix, si ça se vend, pourquoi s'en priver ? J'attends de la Custom et peut être un réajustement tarifaire.
par Un médecin des ragots du Grand Est, le Mercredi 10 Juillet 2019 à 17h48  
Rectification, ils n'ont pas écrit que c'était hors taxes, les hérétiques. Même avec la TVA ça reste 10-15€ de moins que les autres sites
par Un médecin des ragots du Grand Est, le Mercredi 10 Juillet 2019 à 17h42  
Bon ça va a unités de calculs identiques la RX 5700 dégomme la RX 590 qui tourne dans le rouge sur le compte-tour, c'est un début.

Par contre sur le site d'AMD c'est promo : même avec la livraison de quasi 13€, la 5700XT 50th anniv est au prix de la 5700 tout court chez LDLC https://www.amd.com/fr/where-to-buy/promotions
par Thibaut G., le Mardi 09 Juillet 2019 à 12h19  
par cabou83, le Mardi 09 Juillet 2019 à 11h31
C'est vrai qu'AMD n'a jamais réussi a faire des die plus gros que 250mm²...
non je parle de navi plus gros qui pourraient sortir de suite, ce que tu as l'air de savoir si bien ou être dans la confidence des dieux. On est sur un nouveau node, avec de nouvelles règles et de nouvelles contraintes techniques à respecter. Après tu dis ce que tu veux, mais ne dis pas que "je le sais très bien" parce que non, et toi non plus. ca c'est la seule certitude, le reste c'est de la partition de trompette