Streaming Multiprocessor in Maxwell

Recensione della Nvidia GeForce GTX 750 Ti, la prima scheda video con GPU GM107 basata su architettura Maxwell. Efficienza e prestazioni in un condensato ben riuscito.

Avatar di Tom's Hardware

a cura di Tom's Hardware

Streaming Multiprocessor in Maxwell

Il passo in avanti più grande fatto da Maxwell è figlio di una riprogettazione degli Streaming Multiprocessor, ora abbreviati come SMM. In Kepler ogni SMX aveva 192 CUDA core, quattro warp scheduler e un file di registro da 256 KB. C'erano anche 64 KB usabili come memoria condivisa e cache L1, una cache texture separata e una cache uniforme, più 16 unità texture. Il grande salto nel numero di core e la logica di controllo aiutarono a superare Fermi e la frequenza doppia dei suoi shader. L'SMX si è tuttavia dimostrato difficile da sfruttare appieno.

GM107 SMM (sinistra) vs. GK106 SMX (destra)

Maxwell tentata di risolvere questo problema partizionando l'SMX in quattro blocchi, ognuno con il proprio buffer instruction, warp scheduler e un paio di unità dispatch. Il file di registro da 256 KB ora è stato diviso in quattro segmenti da 64 KB. I blocchi hanno 32 CUDA core ciascuno, per un totale di 128 in ogni SMM - meno dei 192 presenti nell'architettura Kepler. Le 32 unità load/store e le altrettante a funzione speciale presenti in Kepler trovano spazio anche in Maxwell. I calcoli a doppia precisione, però, sono stati ulteriormente castrati a 1/32 di quelli FP32; con le GPU Kepler di fascia media Nvidia ci era andata meno pesante (1/24).

Ogni paio di blocchi è legato a una texture da 12 KB e una cache L1, per un totale di 24 KB per SMM. Le coppie di blocchi sono inoltre associate a quattro unità texture, il che significa che gli SMM ne hanno otto. Si tratta della metà delle unità texture presenti in un SMX di Kepler. La tabella sopra vi permette di confrontare il GM107 con il GK106. Non preoccupatevi: ricordate che l'architettura dovrebbe fare di più con meno risorse.

Per SM: GM107 GK106 Ratio
CUDA Core 128 192 2/3x
Unità a funzione speciale 32 32 1x
Load/Store 32 32 1x
Unità Texture 8 16 1/2x
Warp Scheduler 4 4 1x
Geometry Engine 1 1 1x

Infine, c'è uno spazio di memoria condiviso da 64 KB per SMM, già presente in Fermi e poi in Kepler, ma non è più sfruttato come cache L1 per operazioni di calcolo generico.

Come potete immaginare, tagliare 64 CUDA core e otto unità texture per SMM significa che ogni blocco richiede molto meno spazio sul die, e allo stesso tempo secondo Nvidia è in grado di offrire circa il 90% delle prestazioni. In poche parole la casa di Santa Clara è semplicemente in grado di mettere più SMM in un determinato spazio. La GTX 650 Ti, rimpiazzata da questa scheda, ha quattro SMX, mentre la GTX 750 Ti ha cinque SMM.