Architettura Vega e HBM2

Test della scheda video Radeon Vega RX 64, nuova soluzione di gamma nell'offerta grafica di AMD.

Avatar di Andrea Ferrario

a cura di Andrea Ferrario

Editor in Chief

Vega rappresenta una nuova generazione di GPU per AMD, con oltre 200 cambiamenti e miglioramenti che la separano dalla precedente implementazione dell'architettura GCN.

vega 01

Clicca per ingrandire

HBM2: architettura di memoria scalabile

Sia AMD che Nvidia stanno lavorando in molti modi per ridurre l'overhead legato al processore, massimizzare il throughput per alimentare la GPU con abbastanza dati daaggirare i colli di bottiglia esistenti - in particolare quelli che emergono con insiemi di dati molto voluminosi. Avvicinare più capacità alla GPU e farlo in modo efficiente dal punto di vista dei costi è sembrato essere lo scopo della Radeon Pro SSG. Con Vega AMD sembra avanzare di un altro passo in tale direzione con una gerarchia di memoria più flessibile.

Non è un segreto che Vega usi memoria HBM2. AMD chiama questo insieme di memoria "on package" - in precedenza noto come frame buffer - con il nome high-bandwidth cache. HBM2 equivale quindi a high-bandwidth cache. Perché? Perché l'ha deciso AMD.

vega 02

Clicca per ingrandire

No davvero, perché? Secondo Joe Macri, corporate fellow e product CTO, la visione dietro HBM era di avere maggiori prestazioni di memoria il più vicino possibile alla GPU. Si voleva inoltre che memoria di sistema e archiviazione fossero disponibili al processore grafico. Nel contesto di questa gerarchia di memoria allargata è logico pensare all'HBM2 come una cache ad alto bandwidth per le tecnologie più lente. Al fine di non creare troppa confusione, continueremo a chiamarla HBM2.

Dopotutto l'HBM2, in sé e per sé, rappresenta un grande passo avanti. Con un incremento della capacità fino a otto volte per stack verticale rispetto alla HBM di prima generazione, risponde ai dubbi sollevati dagli appassionati circa la longevità della Radeon R9 Fury X. Inoltre, un raddoppio di bandwidth per pin aumenta nettamente il throughput potenziale.

vega 03

Clicca per ingrandire

Questo è il cambiamento che ci aspettiamo impatti maggiormente sui videogiocatori per quanto concerne il sottosistema di memoria di Vega. AMD, inoltre, dà al controller high-bandwidth cache (non più un semplice controller di memoria) accesso a uno spazio di indirizzamento virtuale enorme, ben 512TB, per grandi dataset.

Cercando di capire come potrebbe essere usata la gerarchia di memoria allargata di Vega, AMD ci ha spiegato che Vega può spostare pagine di memoria in modo molto più preciso usando tecniche programmabili multiple. Può ricevere la richiesta di recapitare i dati e recuperarli tramite un trasferimento DMA mentre la GPU passa a un altro thread, continuando il lavoro senza stalli. Il controller può ottenere il dato su richiesta ma anche riportarlo in modo predittivo. L'informazione nella HBM può essere replicata nella memoria di sistema come una cache inclusiva, o l'HBCC può mantenere una sola copia per risparmiare spazio. Tutto questo è gestito in hardware, quindi è rapido e avviene con un overhead contenuto.

Nuova pipeline geometrica programmabile

La GPU Hawaii (Radeon R9 290X) integrava alcuni notevoli miglioramenti rispetto a Tahiti (Radeon HD 7970), uno dei quali era un front end più corposo con quattro geometry engine anziché due. La successiva GPU Fiji (Radeon R9 Fury X) ha mantenuto la stessa configurazione four-way Shader Engine. Tuttavia, grazie alle novità dell'architettura GCN di terza generazione, vi furono progressi anche nel tessellation throughput. Più di recente la GPU Ellesmere (Radeon RX 480/580) ha implementato una manciata di tecniche per ottenere ancora di più dalla configurazione a quattro engine, incluso un Primitive Discard Accelerator.

vega 04

Clicca per ingrandire

AMD ha promesso lo scorso anno un throughput geometrico di picco di Vega pari a 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.

vega 05

Clicca per ingrandire

AMD ha descritto il tutto in modo 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. 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.

vega 06

Clicca per ingrandire

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 di console e di questo sforzo ora beneficeranno i giocatori su PC.

La Next-Generation Compute Unit (NCU)

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 07

Clicca per ingrandire

AMD, al contrario, sembra voler offrire di più a tutti. Il blocco base Compute Unit, con 64 shader IEEE 754-2008, rimane invariato rispetto 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 all'indirizzo di mercato del prodotto.

vega 08

Clicca per ingrandire

L'introduzione di questa flessibilità giunge 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, e porta a prodotti come la Radeon Instinct MI25 che punta a sottrarre mercato a Nvidia. A ogni modo console, datacenter e giocatori PC ne beneficeranno tutti.

vega 09

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

Diamo un'occhiata a quello che AMD chiama Draw Stream Binning Rasterizer, che si suppone sia un supplemento alla ROP tradizionale e come tale dovrebbe migliorare le prestazioni e ridurre i consumi.

C'è ancora un grande punto di domanda su questa caratteristica. Colleghi che lavorano per altre testate hanno svolto dei test e nessuno ha registrato alcun miglioramento prestazionale rilevante. La ragione, come ci è stato recentemente confermato, è che DSBR è attualmente disabilitato e sarà reso disponibile in un futuro aggiornamento driver.

vega 10

Clicca per ingrandire

Di massima, 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 11

Clicca per ingrandire

AMD ha cambiato fondamentalmente la sua gerarchia della cache, rendendo i render back-end dipendenti dalla L2.

vega 12

Clicca per ingrandire

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.

SPOILER: il nuovo driver non ha fornito i grandi miglioramenti prestazionali promessi. Un aggiornamento BIOS, dei driver o forse nulla - potremmo vedere una di queste cose in futuro. Rimaniamo con il confortante pensiero che Fiji e Hawaii, proprio come il buon vino, hanno impiegato un po' di tempo a raggiungere il loro pieno potenziale. Qual è la situazione attuale? Guardate i test nelle prossime pagine.