# RDNA (microarquitetura)

RDNA (Radeon DNA) é uma microarquitetura de unidade de processamento gráfico (GPU) e uma arquitetura de conjunto de instruções desenvolvida pela AMD. É o sucessor do conjunto de microarquitetura/instruções Graphics Core Next (GCN). A primeira linha de produtos com RDNA foi a série de placas de vídeo Radeon RX 5000, lançada em 7 de julho de 2019. A arquitetura também é usada em produtos móveis. É fabricado com N7 FinFET da TSMC chips gráficos usados ​​na série Navi de placas gráficas AMD Radeon.
A segunda iteração do RDNA foi apresentada pela primeira vez nos consoles PlayStation 5 e Xbox Series X/S. Ambos os consoles utilizam uma solução gráfica personalizada baseada em RDNA 2 como base para sua microarquitetura de GPU. No PC, o RDNA 2 é apresentado na série de placas de vídeo Radeon RX 6000, lançada pela primeira vez em novembro de 2020. O RDNA 2 também é apresentado no Exynos 2200 da Samsung como arquitetura gráfica.
A terceira iteração do RDNA foi anunciada em 3 de novembro de 2022 e é apresentada na série Radeon RX 7000 de placas gráficas móveis e para desktops de consumo.

## RDNA 1

RDNA 1 (também RDNA1) é a primeira implementação da microarquitetura RDNA e é a sucessora da série Radeon RX Vega. O lançamento ocorreu em 7 de julho de 2019.

### Arquitetura

A arquitetura apresenta um novo design de processador, embora os primeiros detalhes divulgados na palestra Computex da AMD sugiram que aspectos da arquitetura Graphics Core Next (GCN) anterior estão presentes para fins de compatibilidade com versões anteriores, o que é especialmente importante para seu uso (na forma de RDNA 2) nos principais consoles de jogos de nona geração (Xbox Series X/S e PlayStation 5) para preservar a compatibilidade nativa com suas bibliotecas de jogos preexistentes de oitava geração projetadas para GCN. Possui hierarquia de cache multinível e um pipeline de renderização aprimorado, com suporte para memória GDDR6.
Começando pela arquitetura em si, uma das maiores mudanças para o RDNA é a largura da frente de onda, grupo fundamental de trabalho. GCN em todas as suas iterações tinha 64 threads de largura, o que significa que 64 threads foram agrupados em uma única frente de onda para execução. O RDNA reduz isso para 32 threads nativos de largura. Ao mesmo tempo, a AMD expandiu a largura de seus SIMDs de 16 para 32 slots (também conhecidos como SIMD32), o que significa que o tamanho de uma frente de onda agora corresponde ao tamanho do SIMD. $^{(p2)}$
RDNA também apresenta shaders primitivos funcionais. Embora o recurso estivesse presente no hardware da arquitetura Vega, era difícil obter um aumento de desempenho no mundo real e, portanto, a AMD nunca o habilitou. Os shaders primitivos no RDNA são controlados pelo compilador. $^{(p2)}$
O controlador de exibição no RDNA foi atualizado para suportar Display Stream Compression 1.2a, permitindo saída em 4K@240 Hz, HDR 4K@120 Hz, e HDR 8K@60 Hz. $^{(p2)}$

### Conjunto de instruções

O site GPUOpen da AMD hospeda um documento PDF com o objetivo de descrever o ambiente, a organização e o estado do programa dos dispositivos RDNA. Ele detalha o conjunto de instruções e os formatos de microcódigo nativos desta família de processadores acessíveis a programadores e compiladores.

### Diferenças entre GCN e RDNA

Existem mudanças arquitetônicas que afetam a forma como o código é agendado:
* Problema de instrução de ciclo único:
** GCN emitiu uma instrução por onda uma vez a cada 4 ciclos.
** RDNA emite instruções a cada ciclo.
* Wave32:
** GCN usou um tamanho de frente de onda de 64 threads (itens de trabalho).
** RDNA suporta tamanhos de frente de onda de 32 e 64 threads.
* Processadores de grupo de trabalho:
** GCN agrupou o hardware shader em "unidades de computação" (CUs) que continham ALUs escalares e ALUs vetoriais, LDS e acesso à memória. Uma UC contém 4 SIMD16s que compartilham um caminho para a memória.
** RDNA introduziu o "processador de grupo de trabalho" ("WGP"). O WGP substitui a unidade de computação como a unidade básica de hardware/computação de computação de shader. Um WGP abrange 2 CUs. Isso permite que um poder de computação e largura de banda de memória significativamente maiores sejam direcionados a um único grupo de trabalho. No RDNA, 1 CU é metade de um WGP.

### Chips

GPUs discretas:
* Navi 10 encontrado nas placas gráficas Radeon RX 5600, Radeon RX 5600 XT, Radeon RX 5600M, Radeon RX 5700, Radeon RX 5700M, Radeon RX 5700 XT, Radeon Pro 5700, Radeon Pro 5700 XT, Radeon Pro W5700X e Radeon Pro W5700
* Navi 12 encontrado na placa de vídeo da marca Radeon Pro V520, na placa de vídeo móvel da marca Radeon Pro 5600M e na placa de mineração BC-160 para criptomoeda
* Navi 14 encontrado em Radeon RX 5300, Radeon RX 5300 XT, Radeon Pro 5300, Radeon Pro W5300, Radeon RX 5500, Radeon RX 5500 XT, Radeon Pro 5500, Radeon Pro 5500 XT e Radeon Pro W5500, placas gráficas de marca; Placas gráficas móveis das marcas Radeon RX 5300M, Radeon Pro 5300M, Radeon Pro W5300M, Radeon RX 5500M, Radeon Pro 5500M e Radeon Pro W5500M

## RDNA 2

RDNA 2 (também RDNA2) é o sucessor da microarquitetura RDNA. Foi anunciado publicamente pela primeira vez no início de 2020 com um lançamento projetado para o quarto trimestre de 2020. De acordo com declarações da AMD, RDNA 2 seria um "refresh" da arquitetura RDNA.
Mais informações sobre o RDNA 2 foram divulgadas no Dia do Analista Financeiro da AMD em 5 de março de 2020. A AMD afirmou que forneceria uma melhoria de 50% desempenho-por-watt em relação ao RDNA, com aumentos no clock speed e instruções-por-clock. Recursos adicionais confirmados pela AMD incluem ray tracing em tempo real, acelerado por hardware "Infinity Cache", shaders mesh, feedback de amostrador e shader de taxa variável. A empresa anunciou que RDNA 2 seria usado em consoles de jogos de próxima geração e placas gráficas de PC codinome "Navi 2X" e também apelidado de "Big Navi".
A AMD revelou a série Radeon RX 6000, suas placas gráficas RDNA 2 de próxima geração em um evento online em 28 de outubro de 2020. A linha inicial consistia em RX 6800, RX 6800 XT e RX 6900 XT. A RX 6800 e 6800 XT foi lançada em 18 de novembro de 2020, com a RX 6900 XT sendo lançada em 8 de dezembro de 2020.
Outras variantes, incluindo uma série Radeon RX 6700 (XT) baseada em Navi 22, lançada posteriormente em 18 de março de 2021.
Em 31 de maio de 2021, a AMD lançou a série RX 6000M de GPUs projetadas para laptops. Isso inclui RX 6600M, RX 6700M e RX 6800M. Elas foram disponibilizadas a partir de 1º de junho de 2021.
Em 1 de julho de 2021, a CEO da AMD, Dra. Lisa Su, e o CEO da Tesla, Inc., Elon Musk, confirmaram que os sistemas de entretenimento dos novos Model S e Model X da Tesla são equipados com RDNA 2. A mesma microarquitetura também foi anunciada para ser usada em um futuro carro-chefe Samsung Exynos SoC, posteriormente introduzido em janeiro de 2022 como Exynos 2200, utilizando uma GPU Xclipse 920 personalizada com 3 processadores de grupo de trabalho.
Uma GPU integrada RDNA 2 com 2 unidades de computação está incluída na matriz de I/O nas CPUs Ryzen 7000 Series baseadas em Zen 4 da AMD. De acordo com a AMD, os gráficos RDNA 2 integrados no Ryzen 7000 não se destinam a jogos e, em vez disso, destinam-se a fins de diagnóstico e oferecem recursos de codificação e decodificação de vídeo.

### Chips

GPUs discretas:
* Navi 21
* Navi 22
* Navi 23
* Navi 24
integrado em APUs/CPUs:
* Rembrandt (como modelos "Radeon 660M" e "Radeon 680M" encontrados nas APUs móveis da série Ryzen 6000)
* RRaphael (como iGPU da marca "Radeon Graphics" encontrado em CPUs de desktop da série Ryzen 7000)
* Mendocino (como modelo "Radeon 610M" encontrado nas APUs móveis da série Ryzen 7020)
* Rembrandt-R (como modelos "Radeon 660M" e "Radeon 680M" encontrados nas APUs móveis da série Ryzen 7035)
* Dragon Range (como modelo "Radeon 610M" encontrado em APUs móveis da série Ryzen 7045)

### Uso em consoles de videogame

Configurações personalizadas da microarquitetura gráfica RDNA 2 são usadas nos consoles PlayStation 5 da Sony, Xbox Series X e Series S da Microsoft, com ajustes proprietários e diferentes modificações de GPU na implementação de cada sistema. A Valve anunciou em 15 de julho de 2021 que seu Steam Deck apresentaria a arquitetura RDNA 2. O Steam Deck foi lançado em fevereiro de 2022.

## RDNA 3

RDNA 3 (também RDNA3) é o sucessor da microarquitetura RDNA 2 e foi projetado para lançamento no quarto trimestre de 2022, de acordo com o roteiro de GPU para jogos da AMD. Em um evento de revelação em 29 de agosto para CPUs da série Ryzen 7000, a CEO da AMD, Lisa Su, provocou RDNA 3 e revelou que utilizaria chips construídos no nó N5 da TSMC. Em 19 de setembro de 2022, Sam Naffziger, o atual vice-presidente sênior da AMD, declarou em uma postagem de blog que as melhorias feitas na microarquitetura RDNA 3 permitem ganhos consideráveis ​​de desempenho e eficiência, com um aumento estimado de 50% no desempenho-por-watt em comparação com a microarquitetura RDNA 2.. Além disso, a arquitetura RDNA 3 apresenta a próxima geração do Infinity Cache, um pipeline gráfico modificado, gerenciamento de energia adaptativo e unidades de computação rearquitetadas, levando a um aumento geral robusto no desempenho de rasterização e rastreamento de raios em relação à arquitetura de consumidor anterior.
Em 3 de novembro de 2022, a AMD revelou as placas gráficas RX 7900 XTX e RX 7900 XT, baseadas na microarquitetura RDNA 3. Estas são as primeiras GPUs comerciais baseadas no design de módulo multichip (MCM).

### Chips

GPUs discretas:
* Navi 31 encontrado nas placas gráficas das marcas Radeon RX 7900 XT, Radeon RX 7900 XTX, Radeon Pro W7800 e Radeon Pro W7900
* Navi 33 encontrado nas placas gráficas móveis das marcas Radeon RX 7600S, Radeon RX 7600M, Radeon RX 7600M XT e Radeon RX 7700S
integrado em APUs/CPUs:
* Phoenix (como modelos "Radeon 740M", "Radeon 760M" e "Radeon 780M" encontrados em APUs móveis da série Ryzen 7040)

## Comparação de chips RDNA

| Microarquitetura | RDNA 1 | RDNA 1 | RDNA 1 | RDNA 2 | RDNA 2 | RDNA 2 | RDNA 2 | RDNA 3 | RDNA 3 | RDNA 3 |
| Chip | Navi 10 | Navi 12 | Navi 14 | Navi 21 | Navi 22 | Navi 23 | Navi 24 | Navi 31 | Navi 32 | Navi 33 |
| Codinome | Gaming | ? | Fighter | Sienna Cichlid | Navy Flounder | Dimgrey Cavefish | Beige Goby | Plum Bonito | Wheat Nas | Hotpink Bonefish |
| Fab | 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 |
| Pacote | Monolítico | Monolítico | Monolítico | Monolítico | Monolítico | Monolítico | Monolítico | MCM GCD + 6×MCD | MCM GCD + 4×MCD | Monolítico |
| Tamanho da matriz (mm²) | 251 | Desconhecido | 158 | 520 | 335 | 237 | 107 | ~531 | ~346 | 204 |
| Tamanho do GCD (mm²) | — | — | — | — | — | — | — | 306 | 200 | — |
| Tamanho do MCD (mm²) | — | — | — | — | — | — | — | 37.5 | 36.6 | — |
| Transistores (bilhões) | 10.3 | Desconhecido | 6.4 | 26.8 | 17.2 | 11.06 | 5.4 | 57.7 | 28.1 | 13.3 |
| Densidade do transistor (MTr/mm²) | 41.0 | Desconhecido | 40.5 | 51.5 | 51.3 | 46.7 | 50.5 | 109.2 (MCM) 132.4 (GCD) | | 65.2 |
| Mecanismos de Shader | 2 | 2 | 1 | 4 | 2 | 2 | 1 | 6 | 4 | 2 |
| Matrizes de Shader | 4 | 4 | 2 | 8 | 4 | 4 | 2 | 12 | 8 | 4 |
| Workgroup processors | 20 | 20 | 12 | 40 | 20 | 16 | 8 | 48 | 30 | 16 |
| Compute units | 40 | 40 | 24 | 80 | 40 | 32 | 16 | 96 | 60 | 32 |
| Stream processors | 2560 | 2560 | 1536 | 5120 | 2560 | 2048 | 1024 | 6144 | 3840 | 2048 |
| Unidade de mapeamento de textura | 160 | 160 | 96 | 320 | 160 | 128 | 64 | 384 | 240 | 128 |
| Unidade de saída de renderização | 64 | 64 | 32 | 128 | 64 | 64 | 32 | 192 | 120 | 64 |
| Aceleradores RT | — | — | — | 80 | 40 | 32 | 16 | 96 | 60 | 32 |
| Acelerador de IA | — | — | — | — | — | — | — | 192 | 120 | 64 |
| cache L0 (KB) | 32 por Workgroup processor (WGP) | 32 por Workgroup processor (WGP) | 32 por Workgroup processor (WGP) | 32 por Workgroup processor (WGP) | 32 por Workgroup processor (WGP) | 32 por Workgroup processor (WGP) | 32 por Workgroup processor (WGP) | 64 por WGP | 64 por WGP | 64 por WGP |
| cache L1 (KB) | 128 por Shader array (SA) | 128 por Shader array (SA) | 128 por Shader array (SA) | 128 por Shader array (SA) | 128 por Shader array (SA) | 128 por Shader array (SA) | 128 por Shader array (SA) | 256 por SA | 256 por SA | 256 por SA |
| cache L2 (MB) | 8 | 4 | 2 | 4 | 3 | 2 | 1 | 6 | 4 | 2 |
| cache L3 (MB) | — | — | — | 128 | 96 | 32 | 16 | 96 | 64 | 32 |
| Tipo de memória | GDDR6 | HBM2 | GDDR6 | GDDR6 | GDDR6 | GDDR6 | GDDR6 | GDDR6 | GDDR6 | GDDR6 |
| Barramento de memória (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 | 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 |
| Lançamento | 7 de julho de 2019 | 15 de junho de 2020 | 7 de outubro de 2019 | 18 de novembro de 2020 | 18 de março de 2021 | 31 de maio de 2021 | 2 de janeiro de 2022 | 13 de dezembro de 2022 | 6 de setembro de 2023 | 4 de janeiro de 2023 |
| Introduzido com | Radeon RX 5700Radeon RX 5700 XT | Radeon Pro 5600M | Radeon RX 5500Radeon RX 5500M | Radeon RX 6800Radeon RX 6800 XT | Radeon RX 6700 XT | Radeon RX 6600M | Radeon RX 6300MRadeon RX 6500M | Radeon RX 7900 XTRadeon RX 7900 XTX | Radeon RX 7700 XTRadeon RX 7800 XT | Radeon RX 7600SRadeon RX 7600MRadeon RX 7600M XTRadeon RX 7700S |