La GTX 970 funziona bene, ma cambiano le specifiche

Nvidia interviene nuovamente sul tema dell'uso della memoria da parte della GTX 970. L'azienda spiega per filo e per segno come lavora la scheda e perché non c'è alcun problema ed è tutto sotto controllo.

Avatar di Manolo De Agostini

a cura di Manolo De Agostini

Nei giorni scorsi vi abbiamo parlato della GeForce GTX 970 e di come la scheda gestisce i 4 GB di memoria. Diversi appassionati hanno notato che oltre un certo livello, all'incirca 3,5 GB, le prestazioni di memoria subiscono un calo drastico. La scheda non sembra usare al meglio la totalità della memoria.

Nvidia GeForce GTX 970

Nvidia ha spiegato che la GTX 970 gestisce la memoria in modo diverso dalla GTX 980, ma ciò non ha impatti prestazionali rilevanti. Le due schede, seppur basate sulla stessa GPU GM204, hanno configurazioni differenti. La GTX 980 ha un GM204 con tutte le unità di calcolo attivate, mentre per creare la GTX 970 Nvidia ha disabilitato tre dei 16 shader multiprocessor (SM) totali.

Forse conscia di non aver comunicato troppi dettagli, Nvidia è tornata sull'argomento sottolineando che la GeForce GTX 970 "funziona esattamente per come è stata progettata". Ad affermarlo è Jonah Alben, Senior VP of Hardware Engineering, parlando della vicenda con diversi siti di hardware statunitensi.

Alben ha assicurato che la GTX 970 possiede effettivamente 4 GB di memoria e che la scheda "li usa quando è necessario farlo". Il progettista ha poi spiegato che la modalità di accesso alla memoria è la conseguenza di una nuova caratteristica delle GPU Maxwell, legata al modo in cui Nvidia disabilita porzioni difettose dei suoi chip.

GM204 GTX 970 Diagramma

Il diagramma semplificato del chip GM204 che vedete qui sopra ci aiuta a capire meglio questa caratteristica e il suo impatto sulla GTX 970. Nella parte superiore ci sono gli shader multiprocessors (SM), dove avviene la maggior parte dei calcoli grafici. La metà inferiore mostra la configurazione di memoria del chip. La GPU ha quattro partizioni di memoria, ognuna con un due collegamenti a 32 bit ai chip DRAM esterni. Queste partizioni di memoria sono divise in due blocchi, ognuna con la propria sezione di cache L2, controller di memoria e così via.

La parte centrale del diagramma raffigura il crossbar, che facilita la comunicazione tra gli shader e la memoria. Questo crossbar permette a tutti gli SM d'interagire con cache L2 e controller di memoria. Dato che il diagramma dipinge una GTX 970, tre degli SM del chip sono stati schiariti (eliminati), insieme a una delle due sezioni di cache L2 nella partizione di memoria (a destra).

Gigabyte GeForce GTX 970 G1 Gaming Gigabyte GeForce GTX 970 G1 Gaming
Inno3D iChiLL GTX 970 HerculeZ X4 Inno3D iChiLL GTX 970 HerculeZ X4

Alben ha spiegato che nelle precedenti schede video derivate dal chip GK104 Kepler, qualsiasi chip con porzioni difettose di cache L2 avrebbe richiesto la disattivazione di un'intera partizione di memoria. Ad esempio, la GTX 660 Ti è basata su un chip GK104 con diversi SM e un'intera partizione di memoria in meno, perciò ha un'interfaccia di memoria a 192 bit, 64 bit in meno rispetto ai 256 bit massimi.

Con la nuova caratteristica Nvidia può fare un uso più completo di un chip non perfetto. Nel caso una partizione di memoria abbia una sezione di cache L2 difettosa, l'azienda può disabilitare la sezione fallata della cache. La rimanente cache L2 nella partizione di memoria può poi servire sia i controller di memoria nella partizione grazie a un'interfaccia ("buddy" interface) tra la cache L2 e i controller.

Quell'interfaccia è mostrata come attiva, con una freccia scura orizzontale, nella parte destra bassa del diagramma, dove c'è la partizione di memoria. Nelle altre tre partizioni di memoria questa freccia non è in evidenza perché l'interfaccia non è in uso.

  GeForce GTX 980 GeForce GTX 970 (specifiche riviste)
Nome in codice GPU GM204 GM204
Core GPU 2048 1664
Frequenza base 1126 MHz 1050 MHz
Unità texture 128 104
ROPs 64 56 (prima 64)
Cache L2 2048 KB 1792 KB (prima 2048 KB)
Memoria 4 GB 4 GB
Frequenza memoria 7000 MHz 7000 MHz
Bus 256-bit 256-bit
Bandwidth 224 GB/s 224 GB/s*
TDP 165 watts 145 watts
Potenza di calcolo 4.61 TFLOPS 3.49 TFLOPS

Grazie a questa soluzione Nvidia ha potuto dotare la GTX 970 di un bus a 256 bit. Tale funzione ha però delle conseguenze. La prima è che la GTX 970 non ha parte della capacità della cache e throughput ROP che inizialmente pensavamo avesse. Ogni sezione di cache L2 sul GM204 ha una partizione ROP associata.

Con una delle cache L2 disabilitate, la GTX 970 ha solo 56 pixel per clock di throughput ROP, non i 64 pixel per clock di throughput ROP indicati nelle specifiche iniziali della scheda. Inoltre la cache L2 totale della GTX 970 è di 1792 KB, non 2048 KB, dal momento che è stata disabilitata una sezione di 256 KB.

Alben ha ammesso che Nvidia ha fallito nel comunicare correttamente le specifiche alla stampa. Problemi di comunicazione interna, a quanto pare (e visto che siamo buoni, ci crediamo, anche se...). Per quanto riguarda l'uso effettivo della memoria da parte della GTX 970 l'argomento si fa ancora più complesso.

Shadow of Mordor

Lo spegnimento di una sezione della cache L2 porta a una disattivazione del collegamento crossbar dedicato. E mentre il collegamento alla memoria della GTX 970 conserva un'ampiezza di 256 bit, quella del collegamento crossbar si riduce notevolmente. I due controller di memoria in quella partizione sono perciò costretti a condividere un singolo collegamento crossbar, sostenuto da una sola cache L2. L'accesso ai 512 MB di memoria dietro almeno uno di questi controller sarà perciò necessariamente più lento.

Per impedire che i 512 MB di memoria più lenti diventassero un problema i progettisti hanno diviso la memoria della scheda in due segmenti, uno veloce da 3,5 GB e uno più lento da 512 MB. Il segmento più grande include sette controller di memoria che la GPU gestisce in modo uguale. Quando la GPU accede a questo segmento, dovrebbe raggiungere sette ottavi del suo bandwidth potenziale di picco. Il trasfer rate degli ultimi 512 MB è invece molto più lento, un ottavo del totale.

Ed è proprio quello che hanno ravvisato gli utenti nelle prove specifiche o nei test quotidiani con alcuni giochi. Con una GPU come quella della GTX 980 Nvidia indica al sistema operativo la presenza di due segmenti di memoria: la RAM della GPU e la memoria di sistema aggiuntiva disponibile tramite il PCI Express. Con la GTX 970 Nvidia riporta due segmenti separati per la memoria della GPU, prima il più veloce pezzo da 3,5 GB e poi quello più lento, insieme ad alcuni suggerimenti che dicono al sistema di preferire il segmento più veloce ove possibile.

Quando un'applicazione richiede più di 4 GB totali, si va a bussare al bus PCIe. Jonah Alben afferma che ciò contribuisce a spiegare il comportamento ravvisato da alcune persone, secondo cui la GTX 980 sembra usare più della sua capacità di memoria rispetto alla GTX 970.

"Alcuni dei dati memorizzati nella RAM video finiscono in un'area "grigia": sono stati usati, ma recentemente e potrebbero non essere usati nuovamente. La presenza di quei dati non è strettamente necessaria al lavoro in corso, ma potrebbe rivelarsi utile successivamente. Invece di togliere i dati dalla memoria, la GPU li mantiene in quella posizione, se tale spazio non è altrimenti necessario", spiega Tech Report.

Jonah Alben, Senior VP of Hardware Engineering Nvidia

Jonah Alben, Senior VP of Hardware Engineering di Nvidia

Sulla GTX 980, con un segmento di memoria singolo, questi dati non saranno eliminati fino a quando l'uso della memoria non si avvicinerà al limite di 4 GB. Sulla GTX 970, i dati sono eliminati a 3,5 GB. Così, durante la stessa operazione, la GTX 970 potrebbe usare meno memoria rispetto alla GTX 980. Alben ha confermato che questo comportamento è stato deciso a tavolino, non è figlio di un malfunzionamento.

Alcuni lettori si sono chiesti come mai Nvidia non ha realizzato la GTX 970 con solo 3,5 GB di memoria anziché 4 GB. Secondo l'azienda i 512 MB per quanto più lenti sono utili, e comunque sono più veloci della memoria di sistema (di ben 4 volte), nel caso vi fosse bisogno di attingervi. Alben ha poi spiegato che tramite driver Nvidia potrebbe ottimizzare il modo in cui sono archiviati i dati nella memoria della scheda.

In ultimo, l'azienda ribadisce l'impatto minimo sulle prestazioni di questa modalità di funzionamento inedita, ma si dice pronta a monitorare la situazione per studiare eventuali interventi atti a mitigare veri problemi prestazionali.

"Siamo orgogliosi di quello che abbiamo costruito, penso che sia un grande prodotto. Abbiamo pensato che questa caratteristica avrebbe reso il prodotto migliore e pensiamo di aver raggiunto l'obiettivo. Vogliamo fare in modo la gente lo capisca bene", ha concluso Jonah Alben.