ASRock Phantom Gaming U Radeon RX590 8G OC

Processore Grafico AMD Polaris - Uno sguardo all’architettura

Il processore grafico Polaris non rappresenta certamente una novità per gli appassionati del settore. La sua prima apparizione, infatti, risale niente meno che al giugno del 2016, mese in cui AMD presentò ufficialmente le soluzioni grafiche di fascia media di classe Radeon RX 400, soluzioni che riscossero un discreto successo poiché capaci di assicurare buone performance velocistiche unitamente ad un deciso passo avanti nell’efficienza energetica.

A distanza di poco meno di un anno, nel mese di aprile 2017, l’azienda americana aggiornò l’intera line-up introducendo la serie Radeon RX 500, proposte senz’altro interessanti grazie a frequenze di clock sensibilmente superiori, ma di fatto identiche alle precedenti sotto l’aspetto prettamente architetturale.

Alla base di tutte queste soluzioni grafiche, infatti, troviamo la collaudata architettura Graphics Core Next (GCN), opportunamente rivista ed aggiornata all’ultima revisione (1.4) in maniera da offrire non soltanto maggiori prestazioni velocistiche ma soprattutto, al pari delle soluzioni di fascia superiore, tutte le ultime funzionalità e tecnologie proprietarie disponibili.

Questa revisione architetturale fu la prima ad essere sviluppata con l’avanzata tecnologia produttiva a 14 nanometri con transistor FinFET di GlobalFoundries, capace di assicurare non soltanto un deciso incremento dell’efficienza energetica ma soprattutto di offrire la possibilità di integrare un maggior quantitativo di unità di calcolo, grazie ad una densità superiore, e nuove funzionalità all’interno del processore grafico.

Il colosso di Sunnyvale ha così dimostrato in modo inequivocabile come una migliore tecnologia produttiva possa incidere in maniera decisa nella fase di progettazione dell’architettura, consentendo agli ingegneri di apportare modifiche e ottimizzazioni particolari, come il perfezionamento delle latenze e la pulizia dei vari segnali, mirate a garantire prestazioni e frequenze operative in precedenza impensabili, pur senza stravolgerne le fondamenta.

Polaris, infatti, come osserveremo a breve, eredita buona parte delle caratteristiche peculiari di Tonga e Hawaii, andando sostanzialmente a colmarne le lacune incrementandone l’efficienza media degli shader del +15% a pari frequenza di clock grazie all’implementazione di un supporto nativo FP16 e Int16, ad interventi mirati all’ottimizzazione della gestione della memoria Cache L2 e del Prefetch delle istruzioni (con caching delle stesse reso molto più efficiente).

Il processore grafico Polaris 30, presentato lo scorso mese di novembre, rappresenta la massima espressione dell’architettura GCN 1.4 per le soluzioni di fascia media destinate al mercato consumer. Rispetto al suo diretto predecessore, Polaris 20, non sono stati previsti interventi a livello architetturale, al contrario a cambiare è esclusivamente la tecnologia produttiva, che passa da un nodo a 14 nanometri ad uno da 12 nanometri, scelta che pur non portando alcun vantaggio per quanto concerne la densità dei transistor a parità di superficie, assicura un’apprezzabile riduzione dei consumi (e di conseguenza delle temperature di esercizio) unitamente ad un sensibile incremento delle frequenze operative di targa.

La complessità di questo processore grafico dopotutto è indubbiamente notevole, basti pensare alla presenza di ben 5,7 miliardi di transistor in una superficie di appena 232 mm2. Ne consegue una densità estremamente elevata, pari a circa 24 Milioni di Transistor per mm2, ovvero un incremento prossimo all’80% rispetto ai diretti predecessori sviluppati con l’ormai obsoleto processo produttivo a 28 nanometri.

L’unica soluzione attualmente sul mercato, sviluppata con questo particolare nodo da parte di GlobalFoundries è la Radeon RX 590, alla cui base troviamo il processore grafico Polaris 30 XT. Come sottolineato pocanzi non si evidenziano differenze rispetto al precedente Polaris 20 XTX (anima delle soluzioni Radeon RX 580) per quanto riguarda l’architettura interna. Al pari del predecessore ci troviamo dinanzi alla variante completa della GPU Polaris, provvista di 36 Compute Units attive, e di conseguenza di ben 2.304 Stream Processor e 144 TMU.

Osserviamo quindi, nel dettaglio, la struttura interna del nuovo processore grafico di fascia media Polaris 30 XT:

Come vediamo dal diagramma, la maggior parte delle unità fondamentali per l’esecuzione dei calcoli grafici sono raggruppate all’interno di quattro blocchi principali, denominati Shader Engine.

Nella massima espressione di Polaris, ognuno di questi blocchi comprende ben nove Compute Units (CU), ciascuna con all’interno 64 Stream Processor, 4 unità Texture e 16 unità Load/Store a 32-bit. In ogni Shader Engine, inoltre, sono presenti 2 unità Render Back-end capaci di renderizzare fino a 2 full-color pixel per ogni ciclo di clock ciascuna, ossia un massimo di 32 pixel/clock.

Esternamente ai blocchi Shader Engine troviamo la logica dedicata all’Asynchronous Compute, una funzionalità introdotta con le ultime librerie DirectX 12, espressamente pensata per ottimizzare il bilanciamento dei carichi di lavoro, al fine di consentire un migliore sfruttamento del processore grafico ed evitare che questi si trovi in condizione di inattività.

La presenza di unità hardware, capaci di allocare il carico di lavoro dinamicamente tra le risorse di calcolo disponibili, consente l’esecuzione contemporanea dei molteplici processi indipendenti che contribuiscono all’elaborazione della scena finale, senza che questi interferiscano tra di loro. In Polaris troviamo quattro unità ACE (Asynchronous Compute Engine), un Graphics Command Processor e due unità Hardware Scheduler (HWS).

Il processore grafico Polaris dispone di 32 unità ROPs (Raster Operator), suddivise blocchi separati e connessi ad un Memory Controller con bus di memoria aggregato pari a 256 bit, a sua volta in grado di accedere ad una porzione dei 2.048KB di memoria Cache L2 presenti.

Rispetto alla passata generazione assistiamo quindi ad un raddoppio di questa porzione di memoria, aspetto che assicura una maggiore efficienza nello sfruttamento della banda di memoria (anche fino al 40%) e delle tecniche di Delta Color Compression (DCC), arricchite ora del pieno supporto alla compressione Full 2/4/8:1.

Ricordiamo che l’archiviazione dei dati colore del frame buffer in formato compresso non comporta una perdita di qualità degli stessi. Nessuna differenza, invece, per quanto riguarda la tipologia dei moduli di memoria supportati, sempre di tipo GDDR5, ma con frequenza operativa massima certificata che raggiunge quota 8Gbps, garantendo una bandwidth massima teorica pari a ben 256GB/s.

Rispetto alla passata generazione il motore geometrico (Geometry Engine) è ora in grado di sfruttare un nuovo ed efficiente algoritmo di filtraggio per lo scarto delle primitive superflue, denominato Primitive Discard Accelerator. È comune, infatti, che triangoli piccoli o molto sottili non intersechino alcun pixel sullo schermo e quindi non possano influenzare la scena renderizzata.

I nuovi algoritmi rileveranno tali triangoli e li scarteranno automaticamente prima della rasterizzazione, risparmiando energia riducendo il lavoro sprecato e liberando i motori di geometria per rasterizzare i triangoli che avranno un impatto effettivo sulla scena.

Il nuovo algoritmo di filtraggio può migliorare le prestazioni fino a 3,5X e i benefici sono più pronunciati nelle scene con molti poligoni (ad esempio durante l’utilizzo della Tessellation). Polaris prevede anche l’introduzione di una nuova Cache di Index dedicata alle richieste elaborative non particolarmente impegnative, così da ridurre lo spostamento dei dati liberando così risorse in termini di bandwidth e lasciando la GPU libera per altri compiti più significativi.

Newsletter HW Legend


Caricamento