Architettura AMD Vega: ecco le novità della futura GPU

AMD ha svelato alcuni dettagli sull'architettura grafica Vega. Con oltre 200 novità è attesa al debutto nella prima metà di quest'anno.

Avatar di Chris Angelini

a cura di Chris Angelini

AMD ha invitato stampa e partner sul finire dello scorso anno per parlare della roadmap 2017. Si parte nel primo trimestre con i processori Ryzen per computer desktop, FreeSync 2, per poi passare a nuove piattaforme per server e portatili, oltre a un grande impegno sul fronte del machine learning. Ovviamente c'è spazio anche per Vega, l'anticipato successore del progetto Graphics Core Next di terza generazione. Prima di addentrarci in alcuni particolari dell'architettura, meglio essere chiari: i prodotti basati sull'architettura Vega non sono ancora pronti, ma ci li aspettiamo tra ora e la fine di giugno.

raja amd

Raja Koduri, vicepresidente senior e chief architect del Radeon Technologies Group, ha preso la parola al Tech Summit di AMD mostrando la nuova GPU Vega, sottolineando che sono oltre 200 i cambiamenti compongono la nuova architettura. Koduri si è concentrato su quattro punti in particolare.

Architettura di memoria scalabile basata su HBM2

Per parlarci del primo aggiornamento dell'architettura, Koduri ci ha presentato delle slide che mostrano il rapido aumento delle dimensioni dei giochi su PC, i carichi grafici professionali di classe petabyte e i set di dati di apprendimento applicabili al machine learning da oltre un exabyte. AMD ha anche mappato la crescita delle prestazioni di calcolo rispetto alla capacità di memoria.

Vega Final Presentation page 011

Clicca per ingrandire

Sia AMD che Nvidia stanno lavorando a modi per ridurre l'overhead sul processore, massimizzando il throughput per alimentare la GPU e aggirare i colli di bottiglia esistenti - in particolare quelli che affiorano di fronte a un set di dati di grandi dimensioni. Portare più capacità vicina alla GPU in un modo abbastanza conveniente è sembrato lo scopo della Radeon Pro SSG. Vega sembra compiere un passo in più in quella missione, con una gerarchia di memoria più flessibile.

Non è un segreto che Vega faccia uso di HBM2, un'informazione nota dalle roadmap pubblicate nel 2016. Ora sappiamo come AMD ha scelto di chiamare quell'insieme di memoria on-package (noto in precedenza come frame buffer): high-bandwidth cache. HBM2 equivale quindi ad "high-bandwidth cache". Perché? Perché lo ha deciso AMD.

Vega Final Presentation page 013

Clicca per ingrandire

No davvero, perché? Beh, secondo Joe Macri, corporate fellow e product CTO di AMD, la visione che ha portato ad HBM era quella di avere memoria ad alte prestazioni più vicina alla GPU. Tuttavia, AMD voleva anche che la memoria di sistema e l'archiviazione fossero disponibili anche al chip grafico. Nel contesto di questa gerarchia di memoria più ampia è perciò logico pensare ad HBM2 come a una cache a bandwidth elevato rispetto alle tecnologie più lente. Per essere più precisi e non trarvi in confusione continueremo a chiamarla HBM2, per ora.

Dopotutto HBM2 rappresenta già di per sé un passo avanti rilevante. Un aumento di capacità fino a 8 volte per stack verticale rispetto alla HBM1, risolve i dubbi sollevati dagli appassionati sulla longevità della R9 Fury X. Inoltre il raddoppio del bandwidth per pin aumenta di molto il throughput potenziale. Messa in questo modo, se AMD usasse gli stessi stack 4-hi di HBM2 a 700 MHz che Nvidia adotta per l'acceleratore Tesla P100, avremmo una scheda con 16 GB capace di offrire fino a 720 GB/s.

Vega Final Presentation page 016

Clicca per ingrandire

Questo è il cambiamento che ci aspettiamo avrà l'impatto maggiore sui giocatori per quanto concerne il sottosistema di memoria di Vega. AMD ha però dato accesso all'high-bandwidth cache controller (non più memory controller) a un enorme address space virtuale di 512TB per gestire gli enormi insiemi di dati a cui ha fatto riferimento Koduri. Chiaramente vi sono punti in comune tra quanto vi stiamo spiegando e la gamma Radeon Instinct annunciata a dicembre.

Da questa presentazione siamo usciti con tantissime domande su come verrà usata la gerarchia di memoria più ampia dell'architettura Vega. Scott Wasson, senior product marketing manager di AMD, ci ha aiutato a fare chiarezza, descrivendoci quello che può fare l'high-bandwidth cache controller.

Secondo Wasson Vega può spostare pagine di memoria in modo più preciso usando più tecniche programmabili. Può ricevere una richiesta per portare un dato e poi recuperarlo tramite un trasferimento DMA mentre la GPU passa a un altro thread e continua il lavoro senza attese. Il controller può andare a prendere il dato su richiesta, ma anche riportarlo indietro in modo predittivo. L'informazione nella HBM può essere replicata nella memoria di sistema come una cache inclusiva, o l'HBCC può mantenerne solo una copia per risparmiare spazio. Tutto questo è gestito in hardware, quindi aspettatevi rapidità e basso overhead.

Nuova Geometry Pipeline programmabile

Vega Final Presentation page 022

Clicca per ingrandire

La GPU Hawaii (R9 290X) aveva alcuni importanti miglioramenti rispetto a Tahiti (HD 7970), tra i quali un front-end più nerboruto con quattro geometry engine anziché due. La più recente GPU Fiji (R9 Fury X) manteneva la stessa configurazione four-way Shader Engine. Insieme alla terza generazione dell'architettura GCN però ci furono passi avanti anche per quanto riguarda il throughput della tessellation. Più recentemente la GPU Ellesmere (RX 480) ha implementato una manciata di tecniche per ottenere ancora di più dalla disposizione a quattro engine, incluso un Primitive Discard Accelerator.

Vega Final Presentation page 024

Clicca per ingrandire

Alcune slide ci dicono che il throughput geometrico di picco di Vega è 11 poligoni per clock, 2,75 volte in più rispetto ai quattro della generazione precedente. Questo dato giunge dall'uso di un nuovo stadio "primitive shader" aggiunto alla pipeline geometrica.

Anziché usare hardware a funzione fissa, il primitive shader usa un insieme di shader per il suo funzionamento. Mike Mantor, AMD corporate fellow, ha descritto il tutto come se fosse simile all'accesso a un compute shader per il processo della geometria della scena, in quanto è leggero e programmabile, ma con l'abilità di scartare primitive a un tasso elevato.

Wasson ha chiarito inoltre che la funzionalità del primitive shader include molto di ciò che possono fare gli stadi DirectX vertex, hull, domain e geometry shader, ma è più flessibile sul contesto che porta e l'ordine nel quale il lavoro è completato.

Il front-end beneficia anche di un migliorato workgroup distributor, responsabile per il bilanciamento del carico sull'hardware programmabile. AMD ha spiegato che questa miglioria deriva dalla collaborazione con gli sviluppatori console e di questo sforzo ora beneficeranno i giocatori su PC.

Vega NCU (Next-Generation Compute Unit)

Vega Final Presentation page 026

Clicca per ingrandire

Creando molte GPU Pascal, Nvidia è chirurgica sulla segmentazione. Il processore più grande e costoso GP100 offre una potenza di picco FP32 di 10,6 TFLOPS (se usate la frequenza GPU Boost). Un rapporto 1:2 di core FP64 porta a una potenza con calcoli a doppia precisione di 5,3 TFLOPs. E il supporto per calcolo/archiviazione half precision garantisce fino a 21,2 TFLOPs. I chip più consumer GP102 e GP104 offrono naturalmente prestazioni FP32 massime, ma Nvidia ha deliberatamente frenato i calcoli FP64 e FP16 in modo che non si possano usare schede a basso costo per impieghi scientifici o altro.

Vega Final Presentation page 028

Clicca per ingrandire

AMD, al contrario, sembra voler offrire di più a tutti. Il blocco base Compute Unit, con 64 shader IEEE 754-2008-compliant, rimane invariato al passato. Ora però è chiamato NCU, o Next-Generation Compute Unit, riflettendo il supporto a nuovi tipi di dati. Con 64 shader e un picco di due operazioni/ciclo in virgola mobile, si ottiene un massimo di 128 operazioni a 32 bit per ciclo di clock. Con calcoli FP16 quel numero passa a 256 operazioni a 16 bit per clock. AMD afferma persino che può fare fino a 512 operazioni a 8 bit per ciclo di clock. I calcoli a doppia precisione sono differenti - AMD non sembra aver problemi ad ammettere che stabilisce la velocità FP64 in base al mercato del prodotto.

L'introduzione di questa flessibilità giungere dal mondo delle console. Dopotutto sappiamo che PS4 Pro può usare l'half-precision per raggiungere una potenza fino a 8,4 TFLOPs - il doppio delle prestazioni con operazioni a 32 bit. Forse questo sviluppo è legato alle aspirazioni di AMD nel settore del machine learning, portando a prodotti come la futura Radeon Instinct MI25 che punta a sottrarre mercato a Nvidia. A ogni modo console, datacenter e giocatori PC ne beneficeranno tutti.

Vega Final Presentation page 029

Clicca per ingrandire

AMD afferma anche che le NCU sono ottimizzate per frequenze più elevate. L'azienda ha anche implementato buffer instruction più ampi per mantenere occupate le Compute Unit.

Pixel Engine di nuova generazione

Vega Final Presentation page 031

Clicca per ingrandire

Il quarto punto di questa prima presentazione di Vega è in realtà in due parti. Il primo è il draw stream binning rasterizer, collegato all'hardware tradizionale per la rasterizzazione, che secondo Koduri permette di migliorare le prestazioni e consumare meno. A livello generale una cache bin on-chip permette al rasterizzatore di raccogliere i dati una sola volta per primitive sovrapposte, e poi fare lo shading dei pixel una sola volta tagliando i pixel non visibili nella scena finale.

Vega Final Presentation page 032

Clicca per ingrandire

In secondo luogo AMD ha cambiato fondamentalmente la sua gerarchia della cache, rendendo i render back-end sudditi della L2. Nelle architetture prima di Vega AMD aveva un accesso di memoria pixel e texture non coerente, il che significava che non c'era un punto condiviso da sincronizzare per ogni stadio della pipeline. Nell'esempio del texture baking, dove una scena veniva renderizzata verso una texture per l'uso successivo e poi rivisitata nuovamente tramite l'array shader, il dato doveva essere pescato tramite la memoria off-die. Ora l'architettura ha un accesso coerente, che secondo AMD aumenta le prestazioni in particolare con applicazioni che usano il deferred shading.

Vega Final Presentation page 034

Clicca per ingrandire

Anche se molto di quanto annunciato da AMD richiede uno sforzo di sviluppo sul fronte software per essere usato, l'azienda ha confermato che una scheda Vega riesce a far girare Doom in 4K con i dettagli più alti a oltre 70 FPS, un risultato tra la GTX 1080 e la Titan X.

Quando il team driver di AMD metterà maggiormente le mani su Vega le prestazioni dovrebbero aumentare. Speriamo solo che non passino altri sei mesi per vedere la scheda. Per allora la concorrenza sarebbe già sul mercato da un anno.