Nvidia è intenta in un’opera di rilancio di uno dei suoi cavalli di battaglia: il DLSS. La sigla sta per Deep Learning Super Sampling, ovvero Supercampionamento attraverso reti neurali artificiali.

Bisogna partire da lontano per capire perché si è arrivati a questa tecnologia. Uno dei limiti dei videogiochi sono le performance ottenibili su un determinato hardware. Nel mondo dei PC è possibile, attraverso la regolazione dei parametri grafici, ottenere molteplici esperienze diverse. Posso giocare a 30 FPS favorendo il dettaglio grafico, o abbassare ogni impostazione per riuscire a giocare a 120 FPS. Il limite è sempre stato il budget di spesa: una GPU da 200 € non ha di certo le capacità di una da 1000 €. Il compito di una GPU è quello di andare a decidere il colore dei pixel che compongono l’immagine finale. Minore è il numero di pixel, più velocemente riesce a completare il calcolo e quindi avere maggiori performance.

Resolutiongate

Eppure, toccare la risoluzione sembra essere uno dei tabù più grandi del mondo del gaming su PC, mentre nel mondo console è usato quotidianamente. Principalmente perché giocando ad una corta distanza dallo schermo, la perdita di dettaglio che incorre nello spalmare un’immagine a risoluzione inferiore a quella nativa su un monitor è abbastanza evidente. Quindi in generale molto meglio giocare al minimo, ma sempre a risoluzione nativa del vostro monitor per avere la massima chiarezza visiva.

play-sharp-fill

Negli ultimi anni, con il diffondersi del 4K e la volontà di spostarsi verso l’uso del Ray Tracing, l’illuminazione in tempo reale calcolata secondo una diffusione di raggi, tanto vicina alla realtà quanto pesante computazionalmente, sono state ideate molte nuove tecniche di upscaling in grado di ricostruire un’immagine ad alta risoluzione partendo da una più bassa, con algoritmi sempre più efficienti ed efficaci. Tecniche di ricostruzione temporale come quelle usate in Rainbow Six Siege e Watch Dogs 2 oppure il checkerbord rendering usato su PlayStation 4 con ottimi risultati. Sono tecniche che comunque presentano molti artefatti ed una perdita di qualità percettibile, ma sono buoni compromessi per avere indietro delle performance.

Less is more

Negli ultimi anni si stavano sviluppando numerosissime tecniche di ricostruzione e upscaling delle immagini basate su algoritmi di deep learning, con risultati molto notevoli, superiori a quelli di qualsiasi altro programma o lavoro umano preesistente. Si trattava di calcoli effettuati non in tempo reale, quindi utili per restaurare vecchi film, o opere distrutte o corrotte dal tempo, o migliorare la propria galleria di foto in bassa risoluzione, figlie di tempi tecnologicamente inferiori. Nvidia vide qui un’opportunità: qualora fosse riuscita ad eseguire l’algoritmo neurale in un tempo paragonabile a quello delle generazione di un frame, poteva applicare le stesse regole nei videogiochi in tempo reale.

Ecco quindi uno dei motivi per il quale l’architettura Turing è così densa di unità di calcolo. Unità FP32 per il classico calcolo grafico, unità INT32 per elaborare molti degli effetti che non richiedono la precisione della virgola mobile senza interrompere la pipeline principale. Moduli RTX per accelerare il calcolo dell’intersezione dei raggi con la geometria del mondi di gioco per l’illuminazione realistica. Ed infine, i protagonisti di questa tecnologia: i Tensor Core. Unità di calcolo ottimizzate per elaborare matrici, strutture algebriche alla base del calcolo Deep Learning.

DLSS 2.0 Training
Le immagini ricostruite dalla rete vengono testate rispetto ad immagini alla risoluzione nativa di 16K per individuare dove l’algoritmo sbaglia e farlo migliorare in modo autonomo

Ecco quindi che sul finire del 2018, DLSS 1.0 fece la sua comparsa. E non fu certamente rose e fiori, anzi, la tecnologia era particolarmente acerba. L’approccio di Nvidia era particolarmente “immagine-centrico”. La tecnologia funzionava bene nell’eseguire un semplice upscaling su immagini statiche, o per meglio dire deterministiche, ma molto meno con quelle in movimento e dinamiche di un videogioco. Ogni software aveva bisogno dell’allenamento specifico della rete neurale. I tensor core erano molto lenti ad eseguire l’algoritmo e questo comportava la non disponibilità su certe configurazioni. Il rischio sarebbe stato di avere un decremento delle prestazioni invece che un aumento. La qualità delle immagini finali era passabile solo quando si puntava ad ottenere il 4K, mentre provare ad usarlo in Full HD era un suicidio. Nonostante le promesse di miglioramenti dovuti all’allenamento ulteriore della rete, cambiò poco.

Fare tesoro dei propri errori, sempre

Nvidia ha quindi deciso di ripensare la tecnologia, rendendola un qualcosa degno di essere usato e soprattutto molto più semplice da usare. Il DLSS 2.0 è una enorme passo avanti, un modo di ricostruire l’immagine completamente nuovo rispetto alla sua prima iterazione. Abbiamo un algoritmo generico, non più costruito ad hoc per ogni singolo gioco, quindi applicabile a tutti i software ed a tutte le risoluzioni. L’algoritmo è stato inoltre velocizzato, a detta della casa ora viene eseguito al doppio della velocità di prima, rimuovendo completamente ogni restrizione di configurazione. Per rimpiazzare le informazioni generate dai precedenti network dedicati per ogni singolo gioco, Nvidia ha integrato delle informazioni vettoriali sul movimento all’interno del frame. In questo modo, dopo la prima immagine generata, si genere un feedback temporale e dalla seconda in poi, viene creata un’immagine temporalmente stabile.

play-sharp-fill

Questo metodo è alla base delle tecniche di Anti Aliasing Temporali, conosciute con il nome di TAA, che hanno il compito di smussare gli angoli spigolosi delle immagini. Quindi si potrebbe dire, semplificando molto il lavoro svolto dai tecnici di Nvidia, che il DLSS 2.0 combina un upscaler ad alta qualità con un filtro TAA. Con un risultato però che prende i punti di forza dei due mondi e non i lati peggiori. L’algoritmo è inoltre molto più flessibile e si presenta al giocatore in tre livelli di qualità: Quality, Balanced e Performance. Quest’ultima opera al 50% della risoluzione finale (upscala di 4 volte), Balanced che opera al 57% della risoluzione finale e Quality al 66%.

DLSS 2.0 di Nvidia, presentazione ufficiale e tech dive.
Non solo migliori performance, ma qualità grafica resa migliore, anche rispetto alla risoluzione nativa in molti particolari!

Nuovi giochi supportati, si spera aumentino

Non è solo propaganda senza nulla da toccare. Nvidia ha lavorato per alleggerire il carico per gli sviluppatori nell’implementare questa tecnologia. Richiede comunque accesso alle informazioni vettoriali di cui sopra dal motore di gioco, fortunatamente oggi molto comuni visto l’uso del TAA, ma non è ancora un qualcosa in grado di funzionare direttamente dai driver su ogni software esistente. Io stesso ho avuto modo di provare DLSS 2.0 in Deliver Us The Moon, ottenendo performance che non mi sarei mai aspettato, potendo giocare a 2560×1080 tutto ad ultra, inclusi gli effetti RTX, ad un framerate superiore a 60 FPS sulla RTX 2060.

Control, il bellissimo shooter di Remedy Entertainment, ci mostrò un assaggio del DLSS 2.0, con una variante preliminare eseguita sui normali core FP32. Ora riceverà con la prossima espansione, il vero DLSS 2.0. Novità che mi rende propenso a fare una seconda run. A riprova che non c’è bisogno di avere l’RTX per poter beneficiare dall’aumento prestazionale dato dal DLSS, Mechwarrior 5 sarà dotato di questa tecnologia.

Non so voi, ma io sto apprezzando molto questa deriva verso tecnologie che cercano di migliorare le performance senza sacrificare la qualità grafica globale, in grado di rendere le nostre schede grafiche più versatili e più longeve. Il Variable Rate Shading sarà il futuro, vista la sua adozione sia sulle prossime console che sulle schede Turing e successive, ma sono convinto che questa nuova incarnazione del DLSS sia davvero rivoluzionaria ed un asso nella manica sul quale puntare. Spettasse a me decidere, la vorrei vedere implementata in ogni gioco PC da qui fino alla fine dei tempi.