Nvidia GeForce GTX 970: nuova analisi
Le specifiche inferiori a quanto inizialmente diffuso e il ridotto set-up di RAM hanno un impatto sulle prestazioni di gioco?
Quando la GTX 970 uscì, lo scorso anno, la stampa di settore (incluso il Digital Foundry) fu unanime nell'apprezzare le qualità del nuovo hardware Nvidia. Noi stessi l'abbiamo definita "la GPU che rivoluziona il mercato dei processori grafici di fascia alta", in quanto sconfiggeva la R9 290 e R9 290X, costringendo AMD a lanciare nuovi tagli di prezzo e offrendo, al tempo stesso, gran parte della performance ottenibile con la scheda di fascia superiore, la ben più costosa GTX 980. Gli avvenimenti recenti, però, hanno in qualche modo ridimensionato la reputazione di questo notevole prodotto. Nvidia, infatti, ha distribuito alla stampa delle specifiche inesatte, che hanno addirittura portato ad una class action per condotta non trasparente.
Ricapitoliamo rapidamente quello che è andato storto. La documentazione fornita ai recensori dipingeva la GTX 970 come una scheda solo leggermente rivista al ribasso rispetto alla sua sorella maggiore, la GTX 980. È basata sulla medesima architettura, usa lo stesso chip GM204 ma vede il conteggio di CUDA ridotto da 2048 a 1664, mentre le velocità di clock sono ridotte da 1216MHz a 1178 MHz. A parte questo, parliamo della stessa tecnologia, o almeno questo ci era stato detto. L'articolo di Anandtech ha approfondito maggiormente la questione, ma mesi dopo altri elementi sono emersi: la GTX 970 ha 56 ROP, non 64, mentre la sua cache L2 è di 1,75MB, non 2MB.
La questione maggiore, però, è quella della memoria. La GTX 980 ha 4GB di GDDR5 in un unico blocco fisico, a 224GB/s. La GTX 970 ha invece 3,5 GB in una partizione che opera a 196GB/s, con ulteriori 512 MB molto più lenti (28GB/s) in una seconda partizione. I driver di Nvidia danno automaticamente priorità alla RAM più veloce, attivando la partizione più lenta solo quando assolutamente necessario. Anche in quest'ultima eventualità, comunque, Nvidia dice che i driver accedono in modo intelligente alle risorse, impiegando la RAM più lenta solo per allocare i dati a bassa priorità.
Al di là delle tecniche impiegate per allocare la memoria, quello che risulta con evidenza è che i driver riescono a gestire le risorse con successo. A nostra conoscenza, non c'è una singola review che abbia notato problemi di performance dovuti alla memoria partizionata. Persino la più meticolosa delle analisi, la lettura del frame-time usando FCAT (che noi impieghiamo per tutti i nostri test) non ha evidenziato alcun difetto. Non avevamo alcun motivo di mettere in dubbio le specifiche comunicate da Nvidia e poi rivelatesi scorrette, dal momento che il prodotto performava esattamente come atteso, senza introdurre alcun tipo di micro-stutter o artefatti. Ma ci è forse sfuggito qualcosa? Ora che sappiamo del particolare set-up hardware della GTX 970, possiamo metterlo alle strette e mostrarne le debolezze?
Prima di avviare i nostri test, abbiamo consultato un certo numero di developer di prima fascia, inclusi alcuni tecnici al lavoro sui loro futuri motori next-gen, e altri che hanno collaborato con Nvidia nel passato. Un developer di rilievo con una forte esperienza nel settore PC ha minimizzato la questione, dicendo che l'opinione generale del suo team è che si tratti di "molto rumore per nulla". Un altro dei nostri contatti è stato più dettagliato:
"La VRAM è principalmente usata dalle texture, con i draw buffer (vertex, index, buffer uniformi eccetera) al secondo posto", ci è stato detto dal programmatore grafico di The Astronauts, Leszek Godlewski. "Io non mi preoccuperei di una degradazione delle performance, almeno non a breve termine: 3,5 GB di VRAM sono un sacco di spazio, e non ci sono troppi giochi al momento che possano impegnare la GPU con tutti quei dati. Anche quando tali giochi dovessero arrivare, gli ingegneri di Nvidia sicuramente si impegneranno al massimo per adattare i loro driver (come già fanno ora con i titoli di alto profilo): vi sorprenderebbe scoprire quanto sia possibile mascherare la latenza con una buona programmazione."
Sapere cosa finisce nella partizione di RAM più lenta è cruciale per capire se il particolare set-up impiegato dalla GTX 970 funzionerà ancora bene a lungo termine. Nonostante siamo abituati ad avere performance migliori da memorie più veloci, il fatto è che non tutti gli impieghi tipici delle GPU richiedono le ampiezze di banda estreme offerte dalle GPU di fascia altissima.
Gli shader o i buffer costanti (read-only, non read-modify-write come i framebuffer) possono tranquillamente operare su una RAM più lenta, dal momento che sono rapidi da leggere e condivisi su un range piuttosto ampio di risorse cache-friendly della GPU. Lo stesso discorso vale per i compiti pesanti in termini di compute ma leggeri in termini di dati. Questi elementi possono essere scovati dai driver Nvidia ed essere automaticamente allocati nella partizione di memoria più lenta. D'altro canto, di certo non vogliamo scoprire cosa succederebbe se un titolo che usa il virtual texturing, come Rage o Wolfenstein, dividesse gli asset tra la RAM veloce e quella lenta: non sarebbe un bello spettacolo. Nella nostra prova, comunque, Wolfenstein maxato a 1440p non ha mostrato alcun tipo di problema.
Accingendoci ad effettuare i nostri test, abbiamo anche esaminato numerosi commenti postati in vari forum, in cui si discuteva di titoli con i quali la GTX 970 mostrava delle debolezze. Titoli come Watch Dogs e Far Cry 4 sono spesso menzionati come esempi di giochi afflitti dal fenomeno dello "stutter": nei nostri test, evidenziano questo difetto indipendentemente dal fatto che si impieghi una GTX 970, 980 o addirittura una Titan da 6GB. Ad oggi, Watch Dogs ancora non è stato ottimizzato, mentre l'unico modo per eliminare lo stutter da Far Cry 4 è disattivare i livelli di mip-map a qualità maggiore tramite il file .ini. Anche Call of Duty: Advanced Warfare e Ryse sono stati oggetto di esame: usano molta VRAM, ma per la maggior parte come cache per le texture. Il risultato è che questi titoli hanno lo stesso aspetto su schede da 2GB o 3GB: semplicemente, quando c'è meno VRAM disponibile, avviene più streaming delle texture in background.
Tentare di superare l'utilizzo di 3,5GB di RAM è una vera sfida nella maggior parte dei titoli moderni. Per farlo c'è bisogno di impiegare multi-sampling anti-aliasing, dowsampling da risoluzioni più elevate o persino entrambe le cose. Sui motori di rendering avanzati, queste due tecniche sono il modo più rapido per mettere in ginocchio la vostra GPU. L'MSAA tradizionale a volte è ancora inserito nei titoli moderni, ma persino un MSAA 2x può portare ad un calo di prestazioni del 20-30%: gli engine moderni basati sul deferred shading non sono realmente compatibili con l'MSAA, al punto che molti giochi odierni non lo supportano affatto, mentre altri lo fanno con gran difficoltà. Prendete ad esempio Far Cry 4: nel corso della nostra analisi comparativa, abbiamo impiegato l'MSAA per mostrare la versione PC al suo meglio. Quello che abbiamo scoperto è che l'aliasing sul fogliame risultava peggiore che su console (una condizione che persisteva anche impiegando il TXAA proprietario di Nvidia) e i risultati migliori provenivano invece dall'impiego dell'SMAA in post-processing, che a malapena ha un impatto sul frame-rate, a differenza delle alternative di multi-sampling.
Esaminando un altro titolo che supporta l'MSAA, Assassin's Creed: Unity, la tabella più in basso mostra con chiarezza come il multi-sampling sia sul viale del tramonto, sostituito dalle soluzioni di anti-aliasing in post-processing. Qui impieghiamo una GTX Titan per misurare l'utilizzo di memoria e le performance: l'idea è quella di misurare l'impiego di VRAM in un contesto in cui la memoria della GPU è virtualmente illimitata. Persino a 1080p, Unity raggiunge i 4,6GB di memoria con un MSAA 8x, mentre le stesse impostazioni a 1440p vedono l'enorme quantità di VRAM della Titan completamente riempita. I dati sulla performance parlano da soli: a 1440p, si ottengono frame-rate giocabili solo impiegando tecniche di anti-aliasing in post-processing, ma anche in questo caso la performance può occasionalmente calare al di sotto dei 20fps nei nostri benchmark. Di contrasto, una recente presentazione dell'ottima tecnica HRAA di Far Cry 4 (che combina una serie di soluzioni di AA, inclusi l'SMAA e il temporal super-sampling) offre risultati incredibili, con soltanto 1,65ms di tempo di rendering totale a 1080p.
AC Unity/Ultra High/GTX Titan | FXAA | 2x MSAA | 4x MSAA | 8x MSAA |
---|---|---|---|---|
1080p: utilizzo VRAM | 3517MB | 3691MB | 4065MB | 4660MB |
1080p FPS minimi | 28.0 | 24.7 | 20.0 | 12.9 |
1080p FPS medi | 46.1 | 40.2 | 33.6 | 21.2 |
1440p: utilizzo VRAM | 3977MB | 4343MB | 4929MB | 6069MB |
1440p FPS minimi | 20.0 | 16.0 | 12.9 | 7.5 |
1440p FPS medi | 30.3 | 25.6 | 21.5 | 13.0 |
Per riuscire ad introdurre uno stutter in grado di mostrare una vera differenza tra la GTX 970 e la superiore GTX 980, abbiamo dovuto prendere misure davvero estreme. Abbiamo impiegato due schede in SLI, per rimuovere il più possibile il collo di bottiglia di compute, e poi abbiamo fatto girare Assassin's Creed: Unity a impostazioni ultra e risoluzione 1440p, con MSAA 4x. Come potete vedere nel video in questa pagina, ciò produce uno stutter evidente, che risulta meno pronunciato su GTX 980. Ma va detto che in questo caso abbiamo veramente spinto le impostazioni all'estremo, tentando di mettere in crisi il frame-rate per ottenere un miglioramento di qualità relativamente trascurabile. Con questa configurazione SLI high-end, l'FXAA in post-processing porta molto vicini ad un'esperienza 1440p60 fissa... e dall'aspetto davvero sontuoso.
Il nostro test ha anche rivelato un impiego di memoria molto più basso di quello visto sulla Titan, il che suggerisce che la gestione delle risorse del gioco adegui gli asset che sono caricati in memoria in base al quantitativo di VRAM a disposizione. Basandosi sui dati della Titan, l'MSAA 2x dovrebbe aver riempito la VRAM sia della GTX 970 che della 980, ma curiosamente non lo ha fatto. Solo portando l'MSAA a 4x abbiamo riscontrato problemi.
Introdurre uno stutter visibile altrove è stato altrettanto difficile, ma ci siamo riusciti, sebbene ciò abbia richiesto l'impiego di settaggi estremi che né noi né il developer del gioco in questione raccomanderemmo. Facendo girare Shadow of Mordor a impostazioni e texture "ultra", con risoluzione 1440p downscalata da 4K, notiamo una chiara differenza tra la GTX 970 e la 980, che dovrebbe essere causata dal differente set-up di memoria. Sinceramente, queste impostazioni producono un'esperienza meno che ottimale con entrambe le schede, ma ci sono occasioni in cui lo stutter si è dimostrato molto più pesante su 970 che su 980. Il fatto è che lo stesso sviluppatore non raccomanda di impiegare le texture "ultra" a meno che non si disponga di 6GB di memoria video, oltretutto con risoluzione 1080p. Abbassando le texture all'appropriato livello "high" si elimina lo stutter e si produce un'esperienza decente.
In conclusione, le abbiamo davvero provate tutte per mettere in crisi la GTX 970 e non ci siamo riusciti, non nella configurazione a scheda singola e senza incorrere in tetti di compute o di bandwidth irragionevoli, tali da portare la performance a livelli ingiocabili. Nei nostri test più verosimili, non abbiamo notato alcuno stutter che non fosse presente anche su GTX 980, anche se alcuni artefatti potrebbero essere meno semplici da rilevare sulla scheda superiore, che semplicemente è più veloce. In breve, manteniamo le opinioni espresse nella nostra recensione originale e crediamo che la GTX 970 rimanga il miglior acquisto nella fascia dei 350 euro - almeno al momento presente. L'unico interrogativo da porsi è cosa succederà quando i giochi cominceranno a superare la barriera dei 3,5GB e quanto i driver di Nvidia aiuteranno ad assicurare che la parte di memoria più lenta sia impiegata in modo efficiente. Sicuramente, il team di programmatori Nvidia è dotato di talento. Uno dei nostri contatti ci ha riferito che parte del loro processo di ottimizzazione dei vari giochi include la riscrittura integrale di shader troppo pesanti dal punto di vista computazionale, il che porta a miglioramenti di performance (al costo di driver dalle dimensioni sempre maggiori). Quando la creazione dei driver raggiunge tale livello, si può immaginare senza troppa fatica che almeno i titoli più importanti riceveranno l'attenzione che meritano in termini di ottimizzazione su GTX 970.
Il futuro: di quanta VRAM avremo bisogno?
Nvidia ha già usato VRAM partizionate in un certo numero di schede grafiche, sin dai tempi della GTX 550 Ti, ma la comunità dei gamer non ha mai reagito con tanta preoccupazione come nel caso della GTX 970. Ciò dipende, in parte, dal modo in cui il set-up di memoria è stato scoperto, e dalla iniziale mancanza di trasparenza da parte di Nvidia. Ma forse l'aspetto più importante è l'impatto che la memoria unificata delle attuali console avrà sullo sviluppo per PC, che ancora impiega memorie separate per il sistema e per la scheda video. Di quanta memoria c'è bisogno perché una GPU sia veramente a prova di futuro, e quanto dev'essere veloce questa memoria?
Attualmente, sembra che il futuro degli hardware grafici sia quello di rimuovere il potenziale collo di bottiglia rappresentato dall'ampiezza di banda utilizzando moduli di memoria sovrapposti, ma un developer molto influente immagina anche un altro scenario, prefigurando una direzione differente.
"Riesco ad immaginare una situazione in cui avremo GPU con 1GB di memoria DDR6 ultra-veloce e 10GB di DDR3 più lenta", dice. "La maggior parte delle operazioni di rendering in realtà dipendono molto dalla cache: per questo motivo, i developer attualmente più avanzati mirano ad ottimizzare per i pattern di accesso alla cache... Con pattern di accesso corretti, pre-caricamento e swapping dei dati efficienti, si può rimanere costantemente nella cache L1/L2."
Mentre il set-up di RAM unificata delle console current-gen potrebbe costituire un problema per i giocatori PC, le limitazioni di ampiezza di banda nei loro processori APU rendono necessario un livello di ottimizzazione che mantenga il codice fondamentale nell'ambito della memoria direttamente collegata alla GPU stessa, rendendo meno importanti le disponibilità massive di RAM ad alta velocità. Ciò è parte della ragione per cui la tecnologia Maxwell di Nvidia, su cui si basa la GTX 970, offre prestazioni così buone: è costruita intorno ad una partizione di cache L2 molto più ampia di quella osservata nelle schede meno recenti.
Guardando al futuro, però, la verità è che non possiamo essere sicuri di quanta VRAM dovremo avere sulle nostre GPU per renderle adeguate per tutto il corso dell'attuale generazione di console, con la capacità di mantenere intatti tutti i vantaggi solitamente offerti dal gaming su PC, come ad esempio texture migliori, effetti di qualità superiore e risoluzione incrementata. Quello che è chiaro è che le schede da 2GB sono il minimo assoluto per un'esperienza 1080p di qualità equivalente a quella delle console attuali (3GB sono più consigliabili). Le GPU high-end odierne sembrano cavarsela piuttosto bene per ora, ma gli engine dei giochi futuri potrebbero vedere i requisiti salire oltre la soglia dei 4GB oggi montati dalle schede migliori. Per quanto riguarda la GTX 970, arriverà mai un momento in cui 3,5GB non saranno più sufficienti? Oggi non possiamo dirlo con certezza: quello che sappiamo è che più le attuali console verranno spinte verso i loro limiti, più la quantità di memoria disponibile sulla GPU sarà importante.