L’architettura
Come abbiamo avuto modo di illustrare in più riprese su queste pagine durante i mesi scorsi, l’architettura Maxwell è composta – in modo molto simile a quelle che l’hanno preceduta – da una batteria di blocchi logici denominati Gpc (Graphics Processing Cluster), all’interno dei quali sono organizzate le unità SMM (Maxwell Streaming Multiprocessor), affiancati da una struttura di supporto che comprende l’unità Giga Thread Engine, una cache di secondo livello (L2), il controller di memoria e quello Pci Express 3.0.
Per quanto riguarda i blocchi costitutivi, il processore grafico G200 (Titan X) presenta le stesse caratteristiche dei modelli GM204 (GTX 980 e GTX 970) e GM206 (GTX 960). Il primo stadio vero e proprio della Gpu è costituito dal Giga Thread Engine che si occupa di ricevere le istruzioni e di distribuire il carico di lavoro sui blocchi di calcolo Gpc presenti nel processore grafico.
Ogni blocco o cluster Gpc contiene un motore di rasterizzazione dedicato che presiede alle fasi di generazione delle primitive della scena 3D e di ripartizione del carico computazionale sui quattro moduli SMM di propria competenza. In ogni modulo SMM sono presenti un PolyMorph Engine 3.0, un totale di quattro warp schedule, 128 Cuda Core, 32 unità di Load/Store, 32 unità per funzioni speciali, otto unità di texture, una cache per le istruzioni una cache di primo livello (L1) e 96 Kbyte di memoria condivisa.
Il Polymorph Engine 3.0 – evoluzione della versione 2.0 presente in Kepler – integra le unità che servono all’acquisizione delle informazioni relative ai vertici della struttura geometrica da elaborare e quelle per le operazioni di tessellation; le unità di elaborazione supportano in modo completo le funzioni delle librerie DirectX 11.2 e DirectX 12 che debutteranno in modo ufficiale con il rilascio di Windows 10.
Scendendo ulteriormente nella struttura dei moduli SMM incontriamo i warp scheduler e i Cuda Core. Questi sono i mattoni fondamentali dell’architettura in quanto le unità di calcolo elementari servono a costruire il complesso motore adatto sia alla grafica, sia alle applicazioni Gpgpu proprio attraverso la tecnologia Cuda. I quattro warp scheduler gestiscono in modo indipendente e dedicato un blocco di 32 Cuda Core così come 8 unità di Load/Store e 8 unità per le funzioni speciali. All’interno di un modulo SMM le uniche risorse a essere rimaste condivise sono quindi le unità Cuda Core in doppia precisione (FP64) e le unità di texture. Nel processore GM200 – come per tutte le Gpu Maxwell dedicate al mercato consumer – le unità in doppia precisione sono in rapporto 1:32 con quelle a singola precisione: 4 unità FP64 per modulo SMM moltiplicate per i 24 moduli SMM presenti nel processore GM200 fanno un totale di 96 Cuda core capaci di lavorare in doppia precisione.
Si tratta di un numero esiguo per una Gpu di questa classe, ma è una scelta strategica adottata da Nvidia per evitare che la Titan X vada ad insidiare il mercato dei prodotti professionali Quadro e Tesla; questi ultimi dispongono, infatti, di un maggior numero di unità in doppia precisione.