1. La nuova architettura Pascal


Squadra che vince non si cambia, ma semplicemente si adatta e migliora con l'innesto di nuovi elementi e la ricerca di schemi e soluzioni tecniche che valorizzino il progetto che si vuole sviluppare.

Questo è sicuramente il principio seguito da NVIDIA che, da Fermi in avanti, ha costantemente migliorato le sue GPU partendo da un punto fisso, ovvero i macroblocchi GPC (Graphics Processing Clusters) ed i sottoblocchi SM (Streaming Multiprocessors) a cui ha progressivamente aggiunto funzionalità e su cui ha operato un costante lavoro di affinamento e ottimizzazione.

I blocchi SM costituiscono infatti il nucleo dell'architettura dato che quasi tutte le operazioni svolte dalla GPU nel corso del processo di rendering di una scena prima o poi passano attraverso un SM.

Facciamo quindi un balzo nel passato e torniamo subito al presente con un piccolo ripasso per immagini dell'evoluzione dei moduli SM da Fermi a Pascal.


ASUS ROG STRIX GeForce GTX 1060 OC 1. La nuova architettura Pascal 1


Partiamo con le unità SM di GF100, ovvero Fermi, estremamente pulite e lineari, che rappresentavano la terza generazione dei blocchi SM ed erano dotate di 32 CUDA Core ciascuna affiancati da 16 unità di load/store.

Interessante notare anche la presenza di un doppio warp scheduler e di due dispatch unit che sono quindi entrambi in rapporto 1:16 con i CUDA Core complessivi del blocco SM ed in rapporto 1:1 tra di loro.


ASUS ROG STRIX GeForce GTX 1060 OC 1. La nuova architettura Pascal 2


Cura di steroidi per gli SMX di Kepler, GK100, ora dotati di 192 CUDA Core, e riorganizzazione interna dei blocchi primari con ampio ricorso alla condivisione delle risorse elaborative all'interno di ogni SMX.

Notiamo come i rapporti tra i warp scheduler e le dispatch unit con i CUDA Core siano stati variati a 1:48 e 1:24 e quello tra di loro sia salito a 1:2 (un warp scheduler ogni due dispatch unit).


ASUS ROG STRIX GeForce GTX 1060 OC 1. La nuova architettura Pascal 3


Profonda riorganizzazione interna e ottimizzazione spinta per gli SMM di Maxwell Mark II (GM200) in modo tale da avere più ordine e meno traffico di informazioni dato che le risorse non sono più condivise su larga scala come avveniva in Kepler, ma solo in blocchi più ridotti.

I CUDA Core scendono nuovamente a 128 ma sono suddivisi in quattro blocchi da 32, ognuno dei quali dispone del proprio buffer per le istruzioni, di un warp scheduler e di due dispatch unit.

Ritroviamo quindi il rapporto 1:2 tra warp scheduler e dispatch unit di Kepler, quello 1:16 tra dispatch unit e CUDA Core visto in Fermi ed un nuovo valore di 1:32 per quello tra warp scheduler e CUDA Core.


ASUS ROG STRIX GeForce GTX 1060 OC 1. La nuova architettura Pascal 4


Ed eccoci "ritornare" agli SM di Pascal dove ritroviamo sempre gli stessi elementi costituivi delle precedenti generazioni di SM e l'organizzazione interna più snella ed efficiente degli SMM di Maxwell Mark II, in modo tale da massimizzare lo sfruttamento delle risorse a disposizione riducendo gli eccessi di condivisione tra i vari blocchi.

La differenza più sostanziale rispetto alle unità SMM di Maxwell Mark II riguarda la posizione del PoliMorph Engine, giunto alla versione 4.0, a cui è stato aggiunto un blocco per la funzionalità SMP (Simultaneous MultiProjection) che vedremo in seguito.

Facciamo infatti notare come questo blocco sia ora al di fuori dei moduli SM, motivo per cui non l'avete trovato nell'immagine sopra, con i quali ovviamente è comunque legato ed inserito in un nuovo macroblocco denominato TPC (Thread Processing Cluster), la nuova unità costitutiva dei GPC di Pascal che potete vedere qui sotto.


ASUS ROG STRIX GeForce GTX 1060 OC 1. La nuova architettura Pascal 5


Ricapitolando quidi la lineup Pascal di NVIDIA: GP104-400, di cui potete vedere sotto il diagramma a blocchi, (GTX 1080) è composta da 4 GPC, collegati tramite il GigaThread Engine, ognuno dei quali contiene 5 TPC, ovvero 5 unità SM da 128 CUDA Core ciascuna abbinate ad altrettanti PolyMorph Engine 4, configurazione quindi diversa da quella di Maxwell che prevedeva 4 SMM per ogni GPC.


ASUS ROG STRIX GeForce GTX 1060 OC 1. La nuova architettura Pascal 6 


Come per Maxwell, gli SM di Pascal sono dotati di un buffer condiviso da 96kB, che permette di ridurre ulteriormente l'accesso alla cache L2 integrata o alla memoria esterna alla GPU, una cache L1 da 48kB e 256kB di spazio di archiviazione per i file di registro.

GP104 dispone di 8 controller per la memoria a 32 bit, che forniscono un bus aggregato da 256 bit, ognuno dei quali è servito da 8 ROP e 256kB di cache L2.

Considerando quindi che ogni SM è dotato di 8 Texture Unit e 128 CUDA Core, con le debite moltiplicazioni otteniamo i dati della GPU GP104-400: 160 TMU e 2560 CUDA Core che servono 64 ROP collegate a 8 controller crossbar con accesso ad una cache L2 da 2048kB e a 8GB di memoria GDDR5X.

Quest'ultima, a differenza della GDDR5 "liscia", è in grado di fornire il doppio dei bit per singolo accesso, 64 contro 32, raddoppiando di fatto il data rate per singolo pin che, nella configurazione a 1.25GHz utilizzata sulla GTX 1080 Founders Edition, si traduce in 10Gbps con una frequenza di 10GHz (1250x4x2).

Se abbiniamo questi dati al bus di memoria a 256 bit troviamo il valore di banda passante dichiarato per le nuove GPU GP104-400, ovvero 320 GB/s (10Gbps x 256/8) valore paragonabile ai 336 GB/s delle schede GM200 (Titan X e GTX 980 Ti) che utilizzavano però un bus a 384 bit e memorie GDDR5.

Per realizzare GP104-200 (GTX 1070) NVIDIA ha disabilitato 5 TPC, o se preferite un GPC, rispetto a GP-104-400 portando il numero totale a 15 e quindi, con le solite moltiplicazioni, ha creato una scheda da 1920 CUDA Core (128x15), 120 TMU (15x8) e, sempre 64 ROP.


ASUS ROG STRIX GeForce GTX 1060 OC 1. La nuova architettura Pascal 7 


GP106-400, ovvero la GPU delle schede GTX 1060, pur restando pin compatibile con GP104, ha in pratica la metà dei GPC di quest'ultima e, quindi, esattamente la metà delle risorse computazionali di una GTX 1080.


ASUS ROG STRIX GeForce GTX 1060 OC 1. La nuova architettura Pascal 8 


Facendo i debiti calcoli ricaviamo infatti i dati di GP106-400 che equipaggia la ASUS ROG STRIX GTX 1060 OC oggetto di questa recensione: 2 GPC, collegati tramite il GigaThread Engine, ognuno dei quali contiene 5 TPC, ovvero 5 unità SM da 128 CUDA Core, per un totale di 1280 CUDA Cores (128x5x2), 80 TMUs (10x8) e 48 ROPs.

Sul versante memoria la tipologia utilizzata, come sulle GTX 1070, è ovviamente GDDR5 e non GDDR5X, mentre il il numero dei controller, e quindi anche il bus, subiscono un "ritocco" verso il basso scendendo dagli 8/256 bit di GTX 1080 e 1070, a 6/192 bit per la GTX 1060, dati che, uniti alla frequenza di lavoro delle memorie, pari a 8GHz, forniscono un valore di banda passante di 192 GB/s.

Tutte le GPU Pascal offrono, ovviamente, il supporto alle librerie DirectX 12 e Vulkan, sono compatibili con i più recenti dispositivi e applicazioni VR e sono in grado di pilotare schermi 4K, 5K e HDR, oltre a disporre di una nuova serie di tecnologie e funzionalità che andremo a esaminare più in dettaglio.