La prova di AMD Navi e l’analisi dell’architettura RDNA.
La prima traccia di AMD Navi risale al Financial Analyst Day del maggio del 2017, ma solo dallo scorso luglio e dopo due anni di sviluppo sono disponibili i primi modelli della nuova generazione di schede grafiche Radeon. In questo caso parliamo della Radeon RX 5700 XT, il modello destinato a rimpiazzare le soluzioni Vega partendo dal segmento intermedio del mercato per arrivare il prossimo anno a rimpiazzare l’attuale top di gamma Radeon VII. L’obiettivo della serie Radeon RX 5700 è di lasciare il segno nel cuore dei videogiocatori alla ricerca di una prodotto in grado di offrire prestazioni di alto livello senza prosciugare il portafogli.
La prima fase di questo cambiamento si concentra sul segmento di mercato più effervescente con due modelli: Radeon RX 5700 XT e Radeon RX 5700. Mentre la prima è basata su Navi 10 in versione completa, la seconda utilizza una versione ridotta della stessa Gpu che rinuncia a una parte delle prestazioni in cambio di un minor prezzo e di un minor consumo. A listino trovate anche la versione Anniversary Edition della RX 5700 XT – AMD festeggia il compleanno numero 50 – caratterizzata da un overclock di fabbrica.
Sebbene Navi 10 non sia la prima Gpu prodotta a 7 nanometri è però la prima che merita un’attenzione particolare. Uno dei punti chiave di questo progetto si trova nelle fondamenta dell’architettura: AMD ha abbandonato dopo anni l’architettura GCN (Graphics Core Next) in favore della nuova RDNA (Radeon DNA). Quest’ultima nasce dalla volontà di migliorare la precedente e ormai consolidata soluzione GCN con l’obiettivo di aumentare le prestazioni e massimizzare l’efficienza, mantenendo al tempo stesso la piena compatibilità del software tra le due generazioni. Come ha dichiarato la stessa Lisa Su, l’architettura RDNA è stata sviluppata focalizzando l’attenzione sulle prestazioni con i giochi – non è un caso che vedremo proprio delle varianti di Navi a bordo delle future Playstation 5 e Xbox – e sulla scalabilità.
Nei piani di AMD questa scalabilità si concretizza con la possibilità di creare prodotti in grado di spaziare dal mondo degli smartphone – è di giugno la notizia della partnership con Samsung per la cessione di proprietà intellettuali al fine di creare un SoC Exynos con grafica Radeon – fino a quello del super computing, passando per le piattaforme notebook, desktop e workstation.
L’intero ventaglio di soluzioni richiederà almeno un paio di anni di sviluppo, ma già entro la metà del prossimo anno saremo in grado di valutare l’efficacia dell’architettura RDNA e del progetto Navi: nei primi sei mesi del 2020 è previsto il debutto di un nuova Gpu Navi basata su architettura RDNA 2.0 – frutto dell’esperienza accumulata con questa prima Gpu Navi – che equipaggerà una Radeon top di gamma e sarà alla base della prossima generazione di console Microsoft e Sony. All’interno di questo articolo ci concentriamo sulla Radeon RX 5700 XT, sul processore grafico Navi 10 e sulle novità introdotte da AMD con l’architettura RDNA.
Architettura RDNA
L’ingrediente segreto dei processori grafici Navi è la nuova architettura RDNA. Vediamo quindi nel dettaglio qualche numero per che ci permette di confrontare la nuova Gpu con quella Vega 20 impiegata sull’attuale top di gamma Radeon VII, con quella Vega 10 presente sulle Radeon Vega 64 e Radeon Vega 56 e con quella Polaris 20 alla base delle Radeon RX 580 e RX 570.
Navi 10 è prodotta da TSMC con tecnologia a 7 nanometri e si sviluppa su una superficie di 251 millimetri quadrati: parliamo del 24% in meno rispetto ai 331 millimetri quadrati di Vega 20 prodotta con la stessa tecnologia, del 48% in meno rispetto ai 486 millimetri quadrati di Vega 10 prodotta a 14 nanometri e di circa l’8% in più rispetto ai 232 millimetri quadrati di Polaris 20 prodotta anch’essa a 14 nanometri. Delle prime tre Gpu prese in considerazione, Navi 10 è quella che contiene il minor numero di transistor: 10,3 miliardi contro i 13,2 miliardi e i 12,5 miliardi presenti rispettivamente in Vega 20 e Vega 10; rispetto a Polaris 20, l’incremento in termini di transistor raggiunge addirittura l’80%.
LE CARATTERISTICHE TECNICHE | ||||
---|---|---|---|---|
Modello | Radeon RX 5700 XT AE | Radeon RX 5700 XT | Radeon RX 5700 | Radeon RX 5500 |
Gpu | Navi 10 XTX | Navi 10 XT | Navi 10 XL | Navi 14 XL |
Dimensione die (mm2) | 251 | 251 | 251 | 158 |
Numero di transistor (miliardi) | 10.3 | 10.3 | 10.3 | 6.4 |
Tecnologia produttiva (nm) | 7 FinFET | 7 FinFET | 7 FinFET | 7 FinFET |
Frequenza base / boost / gaming (MHz) | 1.680 / 1.830 | 1.605 / 1.755 / 1.905 | 1.465 / 1.625 / 1.725 | 1.670 / 1.717 / 1.845 |
Generazione architettura | RDNA 1.0 | RDNA 1.0 | RDNA 1.0 | RDNA 1.0 |
Moduli Compute Unit | 40 | 40 | 36 | 22 |
Stream Processor | 2560 | 2560 | 2304 | 1408 |
Unità di texture | 160 | 160 | 144 | 88 |
Unità Rop | 64 | 64 | 64 | 32 |
Frequenza memoria (MHz) | 1750 | 1750 | 1750 | 1750 |
Frequenza memoria equivalente (MHz) | 14000 | 14000 | 14000 | 14000 |
Ampiezza del bus di memoria (bit) | 256 | 256 | 256 | 128 |
Tipo di memoria | GDDR6 | GDDR6 | GDDR6 | GDDR6 |
Quantità di memoria (Gbyte) | 8 | 8 | 8 | 4 |
Banda di memoria (Gbyte/s) | 448 | 448 | 448 | 224 |
Interfaccia | Pci Express 4.0 | Pci Express 4.0 | Pci Express 4.0 | Pci Express 4.0 |
TDP (watt) | 235 | 225 | 180 | 150 |
Elaborazione mezza precisione (GFlops) | 17.203 / 20.276 | 16.435 / 19.510 | 13.501 / 15.900 | 9.405 / 10.390 |
Elaborazione singola precisione (GFlops) | 8.602 / 10.138 | 8.218 / 9.754 | 6.751 / 7.949 | 4.703 / 5.196 |
Elaborazione doppia precisione (GFlops) | 537 / 633,6 | 513,6 / 609,6 | 421,9 / 496,8 | 293,9 / 324,7 |
Supporto Microsoft DirectX | 12.0 | 12.0 | 12.0 | 12.0 |
Supporto OpenGL | 4.6 | 4.6 | 4.6 | 4.6 |
Supporto OpenCL | 2.0 | 2.0 | 2.0 | 2.0 |
Nel confronto con le Gpu Vega non lasciatevi però ingannare dai numeri: più piccolo non significa necessariamente meno potente perché qui entrano in gioco le differenze a livello di architettura. Quella RDNA, che per AMD rappresenta la pietra angolare attorno alla quale saranno progettate le Gpu del prossimo futuro, modifica l’organizzazione con cui avviene l’elaborazione dei dati: potremmo dire che siamo in presenza di un’evoluzione paragonabile al passaggio dall’architettura Bulldozer a quella Zen nel campo delle Cpu.
L’architettura RDNA è molto più efficiente rispetto alla precedente GCN – soprattutto con le applicazioni consumer e con i giochi – pur condividendone alcuni principi progettuali. I cambiamenti hanno permesso di ottenere prestazioni superiori del 25% per ciclo di clock e del 50% per watt consumato. Questi numeri sono il motivo per cui Navi 10 fornisce prestazioni di poco inferiori a quelle di Vega 20 – fatta eccezione per le applicazioni di calcolo puro e in particolare per le elaborazioni in doppia precisione – e superiori a quelle di Vega 10 anche con un minor numero di unità di calcolo.
A livello macroscopico Navi 10 è organizzato in blocchi funzionali connessi tra loro da un’infrastruttura Infinity Fabric: abbiamo il Graphics Command Processor, un Geometry Processor, il controller Pci Express 4.0, un Multimedia Engine, un Display Engine, un set di cache di secondo livello, quattro controller di memoria GDDR6 e due grandi Shader Engine all’interno dei quali sono racchiuse tutte le risorse di calcolo programmabili. Ciascuno dei due Shader Engine è organizzato in due gruppi – denominati Shader Array – che comprendono le nuove unità Dual Compute Unit, una cache grafica L1 di tipo condiviso, un’unità per la gestione delle primitive, un motore di rasterizzazione e quattro render backend. Il processore grafico nella sua forma completa – quello che trovate sulle schede Radeon RX 5700 XT – utilizza 20 Dual Compute Unit, ovvero un totale di 40 Compute Unit se si vuole avere un numero comparabile con quelli delle Gpu basate sull’architettura GCN.
LE CARATTERISTICHE TECNICHE | ||||
---|---|---|---|---|
Modello | Radeon RX 5700 XT | Radeon RX 5700 | Radeon VII | Radeon RX Vega 64 |
Gpu | Navi 10 XT | Navi 10 XL | Vega 20 | Vega 10 XT |
Dimensione die (mm2) | 251 | 251 | 331 | 486 |
Numero di transistor (miliardi) | 10.3 | 10.3 | 13.2 | 12.5 |
Tecnologia produttiva (nm) | 7 FinFET | 7 FinFET | 7 FinFET | 14 FinFET LPP |
Frequenza base / boost / gaming (MHz) | 1.605 / 1.755 / 1.905 | 1.465 / 1.625 / 1.725 | 1.400 / 1.750 | 1.247 / 1.546 |
Generazione architettura | RDNA 1.0 | RDNA 1.0 | GCN 5.0 | GCN 5.0 |
Moduli Compute Unit | 40 | 36 | 60 | 64 |
Stream Processor | 2560 | 2304 | 3840 | 4096 |
Unità di texture | 160 | 144 | 240 | 256 |
Unità Rop | 64 | 64 | 64 | 64 |
Frequenza memoria (MHz) | 1750 | 1750 | 1000 | 945 |
Frequenza memoria equivalente (MHz) | 14000 | 14000 | 2000 | 1890 |
Ampiezza del bus di memoria (bit) | 256 | 256 | 4096 | 2048 |
Tipo di memoria | GDDR6 | GDDR6 | HBM2 | HBM2 |
Quantità di memoria (Gbyte) | 8 | 8 | 16 | 8 |
Banda di memoria (Gbyte/s) | 448 | 448 | 1028 | 483.8 |
Interfaccia | Pci Express 4.0 | Pci Express 4.0 | Pci Express 3.0 | Pci Express 3.0 |
TDP (watt) | 225 | 180 | 300 | 295 |
Elaborazione mezza precisione (GFlops) | 16.435 / 19.510 | 13.501 / 15.900 | 22.272 /27.648 | 20.431 / 25.330 |
Elaborazione singola precisione (GFlops) | 8.218 / 9.754 | 6.751 / 7.949 | 11.136 / 13.824 | 10.215 / 12.665 |
Elaborazione doppia precisione (GFlops) | 513,6 / 609,6 | 421,9 / 496,8 | 2.784 / 3.458,5 | 638 / 792 |
Supporto Microsoft DirectX | 12.0 | 12.0 | 12 | 12 |
Supporto OpenGL | 4.6 | 4.6 | 4.5 | 4.5 |
Supporto OpenCL | 2.0 | 2.0 | 2.0 | 2.0 |
AMD Navi RDNA Compute Unit
Per comprendere come AMD sia riuscita a migliorare l’efficienza passando dall’architettura GCN a quella RDNA è necessario aprire una parentesi. Semplificando molto il concetto diciamo che per migliorare le prestazioni di un’architettura di calcolo è possibile adottare due strategie: la prima consiste nell’incrementare il numero di istruzioni che i core sono in grado di elaborare per ogni ciclo di clock (IPC); la seconda consiste nell’aumentare il parallelismo e quindi nell’utilizzare un maggiore numero di core. Le Gpu sono per loro natura architetture parallele in quanto un’elaborazione tipica prevede l’esecuzione di un singolo programma (o set di istruzioni) su più elementi (ad esempio gruppi di pixel). La frequenza modifica le prestazioni indipendentemente dalla strategia scelta. L’architettura RDNA incrementa il numero di istruzioni per ciclo di clock e riduce le fasi di idle delle unità di calcolo attraverso una riorganizzazione della pipeline.
Cominciamo ad analizzare una singola RDNA Compute Unit – non proprio metà di una Dual Compute Unit vista la presenza di risorse condivise – per avere dati di raffronto con quelli delle GCN Compute Unit. Ogni RDNA CU contiene al suo interno 64 stream processor organizzati in due unità Simd (Single Instruction Multiple Data) indipendenti, ciascuna delle quali è composta da 32 Alu (Aritmetic Logic Unit). A fianco di ciascuna unità Simd sono presenti i registri vettoriali, un’unità di calcolo scalare con il proprio set di registri, uno scheduler e quattro unità di texture. L’architettura è in realtà più complessa perché due unità RDNA CU accoppiate formano la Dual Compute Unit che al suo interno dispone di una nuova struttura di cache condivise tra le due RDNA CU: troviamo infatti una cache per le istruzioni degli shader, una cache per gli scalari e una cache condivisa denominata Local Data Share.
AMD Vega GCN Compute Unit
Se passiamo all’analisi di singola GCN CU troviamo sempre 64 stream processor che però sono organizzati in quattro unità Simd indipendenti, ciascuna delle quali è composta da 16 Alu e corredata dei proprie registri vettoriali. Ciascuna GCN CU contiene poi uno scheduler, un’unità di calcolo scalare con il proprio set di registri, quattro unità di texture e una cache Local Data Share condivisa dalle quattro Simd.
Bilanciamento dell’architettura
Le microrarchitetture grafiche sono strutturate per operare principalmente su vettori, ovvero gruppi di dati accorpati in un singolo elemento. L’architettura GCN utilizza una struttura dati a 64 elementi denominata wavefront 64 o wave64. Ciascuno di questi ultimi è assegnato a una singola unità GCN che per portare a termine un’istruzione su un wave64 consuma quattro cicli di clock: un quarto di wave64 per ciclo. Lo scheduler è progettato per inoltrare un wave64 a una GCN CU ogni quattro cicli di clock così che in una situazione ideale ogni GCN CU riceve un wave64 quando almeno una Simd è libera. Questa architettura è estremamente efficiente se si utilizzano wavefront completi di tutti gli elementi e se non si presentano biforcazioni di codice che richiedono l’esecuzione di istruzioni differenti su porzioni differenti di un wavefront. Qualora il wave64 sia incompleto, ad esempio, saranno necessari comunque quattro cicli di clock prima di poter passare a una nuova istruzione.
L’architettura RDNA utilizza una struttura dati a 32 elementi denominata wavefront 32 o wave32. I motivi di questa scelta sono molteplici: il primo riguarda la compatibilità in quanto sono supportate entrambe le modalità wave32 e wave64 (questi sono ripartiti in due wave32). Il secondo motivo coinvolge la progettazione delle unità Simd che nell’architettura RDNA sono composte da 32 Alu: ciò significa che per portare a termine una singola istruzione su un wave32 è sufficiente un solo ciclo di clock. Gli scheduler e le cache sono state riprogettate in modo da rifornire in modo corretto le nuove unità di calcolo.
In questa analisi è necessario tenere conto che in una GCN CU sono presenti quattro unità Simd16, mentre all’interno di una RDNA CU sono presenti solo due unità Simd32. Sebbene l’architettura GCN sia in grado di avere un maggior numero di wave64 in esecuzione in simultanea il codice tipico di applicazioni consumer e soprattutto dei giochi porta ad avere un’alta frammentazione dei wave64 e quindi un elevato spreco di cicli sulle Simd16. L’utilizzo di wave32 e Simd32 garantisce un minor numero di idle e riduce le strutture di registri associati alla pipeline in quanto i vettori sono più compatti e le risorse sono liberate in tempi più rapidi.
Nel suo complesso Navi 10 è più efficiente pur avendo 2.560 stream processor rispetto ai 3.584 stream processor di Vega 10 usato per la Radeon Vega 56. La struttura di cache permette di ridurre l’impatto sulla memoria permettendo l’uso di quella GDDR6 al posto di quella HBM2.
Display e Multimedia Engine
Le schede equipaggiate con Gpu Navi 10 introducono migliorie anche sul fronte della gestione dei contenuti multimediali e dei dispositivi video collegati, sebbene non supportino ancora i formati più recenti in commercio. Le Radeon RX 5700 supportano lo standard FreeSync 2 e quindi anche la tecnologia Dolby Vision HDR10. Sulle schede troverete uscite video Displayport 1.4 e Hdmi 2.0b, ma manca il supporto allo standard Hdmi 2.1 con tecnologia Variable Rate Refresh. Sulla maggior parte delle schede grafiche in commercio non troverete nemmeno l’uscita mini Usb relativa al connettore VR, segno che la moda di questa tecnologia è ormai passata.
Il motore multimediale è stato aggiornato rispetto a quello presente nei processori grafici Vega e ora supporta la decodifica per formati H.264 4K150/8K30 e la codifica 4K90 (registrazioni Ultra HD a 90 Hz/PS). Per quanto riguarda lo standard H.265 è supportata la decodifica 4K60 e la codifica 4K90. Infine, vista la popolarità del formato VP9 soprattutto nei video destinati alle piattaforme YouTube e Twitch, Navi supporta la decodifica 4K60 di questo formato. I processori grafici Navi, inoltre, supportano entrambi gli standard HDR10 e Dolby Vision.
Radeon RX 5700 XT
Con la Radeon RX 5700 XT AMD ha rafforzato in modo consistente la propria offerta nel segmento medio del mercato. Rispetto alle precedenti soluzioni basate sull’architettura Polaris, il salto di prestazioni è evidente tanto che la Radeon RX 5700 XT riesce a tenere testa alle schede di fascia alta con Gpu Vega e lo fa a un prezzo decisamente più appetibile e concorrenziale. Questi sono i motivi che supportano la previsione di una rapida dismissione di tutte le soluzioni Vega: sul mercato non sembra esserci più spazio sia in termini di prestazioni e soprattutto di costo. L’unico modello che potrebbe resistere più a lungo è la Radeon VII, indirizzata più al settore del computing puro piuttosto che a quello gaming.
Questa strategia di mercato ha consentito ad aMD di guadagnare il tempo necessario a terminare lo sviluppo della seconda generazione dell’architettura Navi; questa dovrebbe essere la base della prossima Radeon top di gamma e delle Gpu che troveremo nelle console di prossima generazione. Le architetture RDNA 2.0 di seconda generazione – in arrivo il prossimo anno – introdurranno il supporto per la tecnologia ray tracing e molto probabilmente integreranno ulteriori ottimizzazioni rispetto all’attuale RDNA 1.0.
PRESTAZIONI | |||
---|---|---|---|
AMD Radeon RX 5700 XT | AMD Radeon VII | AMD Radeon RX Vega 56 | |
Futuremark 3DMark (patch 2.8.6446) | |||
Time Spy Extreme | 3963 | 4196 | 3163 |
Time Spy | 8728 | 8663 | 6564 |
Fire Strike Ultra | 6322 | 6473 | 4701 |
Fire Strike Extreme | 11668 | 11864 | 8678 |
Fire Strike | 22087 | 22262 | 17310 |
Pci Express (Gbyte/s) | 21.1 | 14.23 | 5.2 |
Unigine Superposition Benchmark (1.0) | |||
4K Optimized | 7013 | 7433 | 5038 |
1080P Exteme | 4978 | 5407 | 3806 |
1080P High | 11822 | 12211 | 8469 |
1080P Medium | 16500 | 16756 | 11930 |
Ashes of the Singularity: Escalation (Extreme) | |||
3.840 x 2.169 | 63.9 | 64.4 | 46.1 |
2.560 x 1.440 | 81.9 | 75.4 | 56.5 |
1.920 x 1.080 | 81.8 | 73.3 | 59.4 |
Strange Bridgade (Ultra) | |||
3.840 x 2.169 | 68 | 84 | 54 |
2.560 x 1.440 | 116 | 135 | 91 |
1.920 x 1.080 | 161 | 183 | 129 |
Borderland 3 | |||
3.840 x 2.169 | 57.1 | 36.2 | 25.7 |
2.560 x 1.440 | 64.9 | 65.2 | 48.4 |
1.920 x 1.080 | 86.4 | 85.1 | 70.3 |
Tessmark 0.3.0 | |||
Set 3 / Set 4 - 1.920 x 1.080 | |||
Tessellation level 16 | 82.622 / 82.952 | 91.482 / 92.381 | 91.982 / 86.680 |
Tessellation level 32 | 65.407 / 59.272 | 68.053 / 63.068 | 54.978 / 49.469 |
Tessellation level 64 | 21.931 / 21.073 | 27.354 / 25.275 | 22.544 / 20.324 |
Luxmark 3.1 | |||
Neumann TLM-102 SE | 18661 | 29906 | 19294 |
Hotel lobby | 3053 | 7698 | 5203 |
SPEC Viewperf 13 (1.900 x 1.060) | |||
3dsmax-06 | 184.81 | 173.81 | 148.37 |
catia-05 | 263.46 | 276.72 | 229.27 |
creo-02 | 167.35 | 120.91 | 108.19 |
energy-02 | 28.57 | 35.12 | 23.3 |
maya-05 | 241.47 | 248.02 | 201.38 |
medical-02 | 83.54 | 83.54 | 68.03 |
showcase-02 | 138.06 | 144.61 | 101.25 |
snx-03 | 64.28 | 35.49 | 37.12 |
sw-04 | 123.89 | 106.62 | 99.48 |
La Radeon RX 5700 XT è la soluzione AMD ideale per gestire tutti gli scenari di utilizzo fino alla risoluzione massima di 2.560 x 1.400 pixel (Wide QHD) e riesce anche a spingersi nel territorio dell’Ultra HD con alcuni giochi. La scheda è costruita utilizzando una camera di evaporazione collegata al radiatore per mezzo di pompe di calore; l’intero radiatore è quindi racchiuso in una scocca attraverso la quale fluisce l’aria convogliata da una singola ventola di tipo centrifugo. Questa soluzione, che riprendere le precedenti adottate da AMD, garantisce un corretto raffreddamento, ma risulta piuttosto rumorosa quando la scheda opera a pieno carico.
A fianco della Gpu Navi 10 sono presenti 8 Gbyte di memoria GDDR6 che garantiscono una elevata banda passante per i dati; la tecnologia GDDR6 è meno costosa di quella HBM2 utilizzata per le soluzioni Vega e questo è un altro fattore che gioca a favore delle nuove Radeon e del prezzo di mercato.