# RDNA (microarchitecture)

RDNA (Radeon DNA$^,$) est une microarchitecture de processeur graphique (GPU) et une architecture de jeu d'instructions développée par AMD. Il s’agit du successeur de leur microarchitecture/jeu d’instructions Graphics Core Next (GCN). La première gamme de produits dotés de RDNA a été la série de cartes vidéo Radeon RX 5000, lancée le 7 juillet 2019$^,$. L’architecture est également utilisée dans les produits mobiles. Les puces sont fabriquées avec le procédé FinFET N7 de TSMC et sont utilisées dans la série Navi de cartes graphiques AMD Radeon.
La deuxième itération de RDNA a été présentée pour la première fois sur les consoles PlayStation 5$^,$ et Xbox Series X/S. Les deux consoles utilisent une solution graphique personnalisée basée sur RDNA 2 comme base de leur microarchitecture GPU. Sur PC, RDNA 2 est présente dans la série de cartes graphiques Radeon RX 6000, qui a été lancée en novembre 2020. RDNA 2 est également présente dans l’Exynos 2200 de Samsung en tant qu’architecture graphique.
La troisième itération de RDNA a été annoncée le 3 novembre 2022 et est présente dans la série Radeon RX 7000 de cartes graphiques grand public pour ordinateurs de bureau et portables.

## RDNA 1

RDNA 1$^,$ est la première implémentation de la microarchitecture RDNA et est le successeur de la série Radeon RX Vega$^,$. Le lancement a eu lieu le 7 juillet 2019.

### Architecture

L’architecture présente une nouvelle conception de processeur, bien que les premiers détails publiés lors de la keynote Computex d’AMD laissent entendre que des aspects de l’architecture Graphics Core Next (GCN) précédente sont présents à des fins de rétrocompatibilité, ce qui est particulièrement important pour son utilisation (sous la forme de RDNA 2) dans les principales consoles de jeu de neuvième génération (la Xbox Series X/S et la PlayStation 5) afin de préserver la compatibilité native avec leurs bibliothèques de jeux de huitième génération conçues pour GCN. Il dispose d’une hiérarchie de cache à plusieurs niveaux et d’un pipeline de rendu amélioré, avec prise en charge de la mémoire GDDR6.
En ce qui concerne l’architecture elle-même, l’un des plus grands changements de RDNA est la largeur du front d’onde, le groupe de travail fondamental. GCN dans toutes ses itérations avait une largeur de 64 threads, ce qui signifie que 64 threads étaient regroupés en un seul front d’onde pour l’exécution. RDNA réduit cette largeur à 32 threads natifs. Dans le même temps, AMD a étendu la largeur de ses SIMD de 16 à 32 emplacements (alias SIMD32), ce qui signifie que la taille d’un front d’onde correspond désormais à la taille du SIMD$^{(p2)}$.
RDNA introduit également des shaders de primitive fonctionnels. Bien que la fonctionnalité soit présente dans le matériel de l’architecture Vega, il était difficile d’obtenir une amélioration des performances dans le monde réel et AMD ne l’a donc jamais activée. Les shaders de primitive dans RDNA sont contrôlés par le compilateur$^{(p2)}$.
Le contrôleur d’affichage de RDNA a été mis à jour pour prendre en charge Display Stream Compression 1.2a, permettant une sortie en 4K@240 Hz, HDR 4K@120 Hz et HDR 8K@60 Hz$^{(p2)}$$^,$.

### Jeu d’instructions

Le site Web GPUOpen d’AMD héberge un document PDF visant à décrire l’environnement, l’organisation et l’état du programme des appareils RDNA. Il détaille le jeu d’instructions et les formats de microcode natifs de cette famille de processeurs accessibles aux programmeurs et aux compilateurs.

### Différences entre GCN et RDNA

Il existe des changements architecturaux qui affectent la façon dont le code est planifié :
* Instruction émise à chaque cycle :
** GCN émet une instruction par vague une fois tous les 4 cycles.
** RDNA émet des instructions à chaque cycle.
* Front d'onde à 32 threads :
** GCN utilise une taille de front d’onde de 64 threads (éléments de travail).
** RDNA prend en charge les deux tailles de front d’onde de 32 et 64 threads.
* Processeurs de groupe de travail :
** GCN regroupe le matériel de shader en « unités de calcul » (CU) qui contiennent des ALU scalaires et des ALU vectorielles, LDS et un accès mémoire. Une CU contient 4 SIMD16 qui partagent un chemin vers la mémoire.
** RDNA introduit le « processeur de groupe de travail » (« WGP »). Le WGP remplace l’unité de calcul en tant qu’unité de base du matériel/calcul du shader. Un WGP comprend 2 CU. Cela permet de diriger beaucoup plus de puissance de calcul et de bande passante mémoire vers un seul groupe de travail.

### Puces

GPU discrets :
* Navi 10 se trouve sur les cartes graphiques Radeon RX 5600, RX 5600 XT, RX 5600M, RX 5700, RX 5700M, RX 5700 XT, Pro 5700, Pro 5700 XT, Pro W5700X et Pro W5700
* Navi 12 se trouve sur la carte graphique Radeon Pro V520, sur la carte graphique mobile Radeon Pro 5600M et sur la carte de minage BC-160 pour crypto-monnaie
* Navi 14 se trouve sur les cartes graphiques Radeon RX 5300, RX 5300 XT, Pro 5300, Pro W5300, RX 5500, RX 5500 XT, Pro 5500, Pro 5500 XT et Pro W5500 ; sur les cartes graphiques mobiles Radeon RX 5300M, Pro 5300M, Pro W5300M, RX 5500M, Pro 5500M et Pro W5500M

## RDNA 2

RDNA 2 est le successeur de la microarchitecture RDNA. Il a été annoncé publiquement pour la première fois au début de 2020 et devrait sortir au quatrième trimestre 2020$^,$. Selon les déclarations d’AMD, RDNA 2 serait un « rafraîchissement » de l’architecture RDNA.
De plus amples informations sur RDNA 2 ont été rendues publiques lors de la journée des analystes financiers d’AMD le 5 mars 2020$^,$$^,$. AMD a affirmé qu’il fournirait une amélioration de 50 % des performances par watt par rapport à RDNA, avec des augmentations de la fréquence d'horloge et des instructions par cycle. Parmi les autres fonctionnalités confirmées par AMD, citons le ray tracing en temps réel accéléré par le matériel, le « Infinity Cache », les shaders de maillage, le retour d’échantillonnage et l’ombrage à taux variable$^,$. La société a annoncé que RDNA 2 serait utilisé dans les consoles de jeu de nouvelle génération et les cartes graphiques PC portant le nom de code « Navi 2X » et également surnommé « Big Navi ».
AMD a dévoilé la série Radeon RX 6000, ses cartes graphiques RDNA 2 de nouvelle génération lors d’un événement en ligne le 28 octobre 2020$^,$. La gamme se composait initialement des RX 6800, RX 6800 XT et RX 6900 XT$^,$. Les RX 6800 et 6800 XT ont été lancés le 18 novembre 2020, le RX 6900 XT étant sorti le 8 décembre 2020. D’autres variantes, dont une série Radeon RX 6700 (XT) basée sur Navi 22, lancée plus tard le 18 mars 2021$^,$$^,$$^,$.
Le 31 mai 2021, AMD a lancé la série RX 6000M de GPU conçus pour les ordinateurs portables$^,$. Il s’agit notamment des RX 6600M, RX 6700M et RX 6800M. Ceux-ci ont été mis à disposition à partir du 1er juin 2021.
Le 1er juin 2021, la PDG d’AMD, le Dr Lisa Su, et le PDG de Tesla, Inc. Elon Musk a confirmé que les systèmes de divertissement des nouveaux modèles S et X de Tesla sont alimentés par RDNA 2. La même microarchitecture a également été annoncée pour être utilisée pour un prochain SoC phare Samsung Exynos, introduit plus tard en janvier 2022 sous le nom d’Exynos 2200, utilisant un GPU Xclipse 920 personnalisé avec 3 processeurs de groupe de travail$^,$.
Un GPU intégré RDNA 2 avec 2 unités de calcul est inclus dans la puce d’E/S des processeurs Ryzen 7000 basés sur Zen 4 d’AMD$^,$. Selon AMD, les processeurs graphiques RDNA 2 intégrés dans le Ryzen 7000 ne sont pas destinés aux jeux et sont plutôt destinés à des fins de diagnostic et offrent des capacités d’encodage et de décodage vidéo.

### Puces

GPU discrets :
* Navi 21
* Navi 22
* Navi 23
* Navi 24
intégrées dans les APU/CPU :
* Rembrandt (en tant que modèles « Radeon 660M » et « Radeon 680M » que l’on trouve sur les APU mobiles de la série Ryzen 6000)
* Raphael (en tant qu’iGPU de marque « Radeon Graphics » que l’on trouve sur les processeurs de bureau Ryzen série 7000)
* Mendocino (en tant que modèle « Radeon 610M » que l’on trouve sur les APU mobiles de la série Ryzen 7020)
* Rembrandt-R (en tant que modèles « Radeon 660M » et « Radeon 680M » que l’on trouve sur les APU mobiles de la série Ryzen 7035)
* Gamme Dragon (comme le modèle « Radeon 610M » que l’on trouve sur les APU mobiles de la série Ryzen 7045)

### Utilisation dans les consoles de jeux vidéo

Des configurations personnalisées de la microarchitecture graphique RDNA 2 sont utilisées dans la PlayStation 5$^,$ de Sony, dans les consoles Xbox Series X et Series S de Microsoft, avec des ajustements propriétaires et différentes modifications du GPU dans l’implémentation de chaque système. Valve a annoncé le 15 juillet 2021 que son Steam Deck serait doté de l’architecture RDNA 2. Le Steam Deck est sorti en février 2022.

## RDNA 3

RDNA 3 (également RDNA3) est le successeur de la microarchitecture RDNA 2 et devait être lancé au quatrième trimestre 2022 selon la feuille de route des GPU de jeu d’AMD$^,$$^,$. Lors d’un événement de révélation des processeurs de la série Ryzen 7000 le 29 août, la PDG d’AMD, Lisa Su, a taquiné RDNA 3 et a révélé qu’il utiliserait des chiplets (en) construits sur le nœud N5 de TSMC. Le 19 septembre 2022, Sam Naffziger, l’actuel vice-président senior d’AMD, a déclaré dans un article de blog que les améliorations apportées à la microarchitecture RDNA 3 permettent des gains de performances et d’efficacité considérables, avec une augmentation estimée à 50 % des performances par watt par rapport à la microarchitecture RDNA 2. De plus, l’architecture RDNA 3 comprend la génération suivante d’Infinity Cache, un pipeline graphique modifié, une gestion adaptative de l’alimentation et des unités de calcul restructurées, ce qui conduit à une augmentation globale robuste des performances de rastérisation et de ray-tracing par rapport à l’architecture grand public précédente.
Le 3 novembre 2022, AMD a dévoilé les cartes graphiques RX 7900 XTX et RX 7900 XT de la série Radeon RX 7000, basées sur la microarchitecture RDNA 3. Ce sont les premiers GPU commerciaux à être basés sur une conception de modules multi-puces (MCM).

### Puces

GPU discrets :
* Navi 31 que l’on trouve sur les cartes graphiques de marque Radeon RX 7900 GRE, RX 7900 XT, RX 7900 XTX, Pro W7800 et Pro W7900 et sur les cartes graphiques mobiles de marque Radeon RX 7900M
* Navi 32 que l’on trouve sur les cartes graphiques de marque Radeon RX 7700 XT et RX 7800 XT
* Navi 33 que l’on trouve sur les cartes graphiques de marque Radeon RX 7600, RX 7600 XT, Pro W7500 et Pro W7600 et sur les cartes graphiques mobiles de marque Radeon RX 7600S, RX 7600M, RX 7600M XT et RX 7700S
intégrées dans les APU/CPU :
* Phoenix (en tant que modèles « Radeon 740M », « Radeon 760M » et « Radeon 780M » que l’on trouve sur les APU mobiles Ryzen série 7040 et Ryzen série Z1)
* Hawk Point (en tant que modèles « Radeon 740M », « Radeon 760M » et « Radeon 780M » que l’on trouve sur les APU mobiles de la série Ryzen 8040)

## Comparison des puces RDNA

| Microarchitecture | RDNA 1 | RDNA 1 | RDNA 1 | RDNA 2 | RDNA 2 | RDNA 2 | RDNA 2 | RDNA 3 | RDNA 3 | RDNA 3 |
| Puce | Navi 10 | Navi 12 | Navi 14 | Navi 21 | Navi 22 | Navi 23 | Navi 24 | Navi 31$^,$ | Navi 32 | Navi 33 |
| Nom de code | Gaming | | Fighter | Sienna Cichlid | Navy Flounder | Dimgrey Cavefish | Beige Goby | Plum Bonito | Wheat Nas | Hotpink Bonefish |
| Fabrication | TSMC N7 | TSMC N7 | TSMC N7 | TSMC N7 | TSMC N7 | TSMC N7 | TSMC N6 | TSMC N5 (GCD), TSMC N6 (MCD) | TSMC N5 (GCD), TSMC N6 (MCD) | TSMC N6 |
| Boîtier | Monolithique | Monolithique | Monolithique | Monolithique | Monolithique | Monolithique | Monolithique | Module multipuce (MCM) | Module multipuce (MCM) | Monolithique |
| Taille de puce (mm$^2$) | 251 | Inconnu | 158 | 520 | 335 | 237 | 107 | ~531 | ~350 | 204 |
| Nb. GCD | - | - | - | - | - | - | - | 1 | 1 | - |
| Nb. MCD | - | - | - | - | - | - | - | 6 | 4 | - |
| Taille GCD (mm$^2$) | - | - | - | - | - | - | - | 306 | 200 | - |
| Taille MCD (mm$^2$) | - | - | - | - | - | - | - | 37.5 | 37.5 | - |
| Nb. transistors (milliards) | 10.3 | Inconnu | 6.4 | 26.8 | 17.2 | 11.06 | 5.4 | 57.7 | 28.1 | 13.3 |
| Densité de transistors (MTr/mm$^2$) | 41.0 | Inconnu | 40.5 | 51.5 | 51.3 | 46.7 | 50.5 | 109.2 (MCM) 132.4 (GCD) | 81.2 | 65.2 |
| Nb. Shader engines | 2 | 2 | 1 | 4 | 2 | 2 | 1 | 6 | À venir | 2 |
| Nb. Shader arrays | 4 | 4 | 2 | 8 | 4 | 4 | 2 | 12 | À venir | 4 |
| Nb. Workgroup processors | 20 | 20 | 12 | 40 | 20 | 16 | 8 | 48 | 30 | 16 |
| Nb. Compute units | 40 | 40 | 24 | 80 | 40 | 32 | 16 | 96 | 60 | 32 |
| Nb. Stream processors | 2560 | 2560 | 1536 | 5120 | 2560 | 2048 | 1024 | 6144 | 3840 | 2048 |
| Nb. TMU | 160 | 160 | 96 | 320 | 160 | 128 | 64 | 384 | 240 | 128 |
| Nb. ROP | 64 | 64 | 32 | 128 | 64 | 64 | 32 | 192 | 96 | 64 |
| Nb. accélérateurs RT | - | - | - | 80 | 40 | 32 | 16 | 96 | 60 | 32 |
| Nb. accélérateurs IA | - | - | - | - | - | - | - | 192 | 120 | 64 |
| cache L0 (ko) | 32 par Workgroup processor (WGP) | 32 par Workgroup processor (WGP) | 32 par Workgroup processor (WGP) | 32 par Workgroup processor (WGP) | 32 par Workgroup processor (WGP) | 32 par Workgroup processor (WGP) | 32 par Workgroup processor (WGP) | 64 par WGP | 64 par WGP | 64 par WGP |
| Cache L1 (ko) | 128 par Shader array (SA) | 128 par Shader array (SA) | 128 par Shader array (SA) | 128 par Shader array (SA) | 128 par Shader array (SA) | 128 par Shader array (SA) | 128 par Shader array (SA) | 256 par SA | 256 par SA | 256 par SA |
| Cache L2 (Mo) | 8 | 4 | 2 | 4 | 3 | 2 | 1 | 6 | 4 | 2 |
| Cache L3 (Mo) | - | - | - | 128 | 96 | 32 | 16 | 96 | 64 | 32 |
| Type mémoire | GDDR6 | HBM2 | GDDR6 | GDDR6 | GDDR6 | GDDR6 | GDDR6 | GDDR6 | GDDR6 | GDDR6 |
| Largeur bus mémoire (bits) | 256 | 2048 | 128 | 256 | 192 | 128 | 64 | 384 | 256 | 128 |
| Display Core Next | 2.0.0 | 2.0.0 | 2.0.0 | 3.0.0 | 3.0.0 | 3.0.2 | 3.0.3 | 3.2.0 | 3.2.0 | 3.2.1 |
| Video Core Next (en) | 2.0.0 | 2.0.2 | 2.0.2 | 3.0.0 | 3.0.0 | 3.0.16 | 3.0.33 | 4.0.0 | 4.0.0 | 4.0.4 |
| Date de lancement | 7 juillet 2019 | 15 juin 2020 | 7 octobre 2019 | 18 novembre 2020 | 18 mars 2021 | 31 mai 2021 | 2 janvier 2022 | 13 décembre 2022 | 6 septembre 2023 | 4 janvier 2023 |
| Introduit sur | RX 5700RX 5700 XT | Pro 5600M | RX 5500RX 5500M | RX 6800RX 6800 XT | RX 6700 XT | RX 6600M | RX 6300MRX 6500M | RX 7900 XTRX 7900 XTX | RX 7700 XTRX 7800 XT | RX 7600SRX 7600MRX 7600M XTRX 7700S |