AMD FidelityFX Super Resolution (FSR) e NVIDIA DLSS sono due tecnologie simili che permettono di giocare a risoluzione elevata senza però pesare troppo sulla GPU. Il trucco è renderizzare l’immagine a risoluzione più bassa e poi procedere con l’upscaling, ma con due modalità molto diverse
NVIDIA già da diverso tempo lavora al suo DLSS che ormai è arrivato alla versione 2.0 con enormi passi in avanti in termini di qualità e prestazioni con l’unico problema che richiede un hardware dedicato per poter funzionare correttamente. Un hardware che troviamo solamente sulle GPU RTX di ultima generazione (o meglio che non troviamo dato che acquistarle è davvero complicato e costoso). AMD invece ha presentato da poco il suo FidelityFX Super Resolution (FSR) con una filosofia molto diversa: la neonata tecnologia di upscaling è stata accolta con estremo fervore dai fan perché può teoricamente essere applicata a qualsiasi GPU, anche quelle con qualche anno di più come la serie RX 4xx o addirittura le GPU NVIDIA GTX 9xx. Un’opportunità estremamente interessante perché permette di giocare a risoluzioni elevate anche con GPU un po’ più datate, senza rinunciare alle prestazioni. Ma non è tutto oro colato. La tecnologia di AMD infatti sembra diversa da quella NVIDIA. In questo articolo tenteremo di fare un po’ di chiarezza per capire come e perché NVIDIA DLSS è diverso da AMD FidelityFX Super Resolution (FSR).
NVIDIA DLSS: la magia del Deep Learning
Da appassionati di tecnologia probabilmente sentiamo parlare di machine learning e deep learning almeno tre volte alla settimana. In effetti si tratta di un argomento caldissimo che da circa una decina d’anni ha catturato l’interesse dei ricercatori nel mondo dell’informatica e delle IA e che oggi sta sbordando un po’ in tutti i settori scientifici ed industriali. Un campo dove però il successo del deep learning è stato rivoluzionario è quella della Computer Vision, branca dell’informatica che si occupa dell’elaborazione delle immagini al fine di ricavarne delle informazioni.
Proprio in questo settore molte aziende hanno investito ad esempio per migliorare le prestazioni delle fotocamere degli smartphone. E anche NVIDIA ha fiutato l’affare e si è adoperata in modo da utilizzare il deep learning per migliorare l’esperienza di gioco. Le reti neurali profonde sono strumenti incredibilmente potenti che sono in grado di ricavare le correlazioni spaziali e temporali all’interno dei dati. Questo è davvero importante quando parliamo di video perchè che cos’è un video (o un videogioco) se non una serie di immagini (informazione spaziale) correlate tra loro nel tempo? Ovviamente non è possibile sapere quale sia la soluzione adottata da NVIDIA, ma possiamo supporre che sia faccia largo uso di reti neurali convoluzionali e ricorrenti per analizzare entrambe le dimensioni spaziali e temporali.
Come funziona in pratica? Il deep learning è basato su una fase di allenamento dove vengono forniti un numero elevatissimo di esempi del problema che si vuole risolvere con le corrispettive soluzioni. In questo modo la rete neurale impara a predire le soluzioni al problema. In sostanza è come quando si studia il modo di attaccare di un boss in un videogioco: dopo svariate volte che si prova e si viene sconfitti, si elabora una strategia per abbatterlo. Avere tanti esempi è fondamentale per riuscire ad ottenere soluzioni buone. Ma siamo molto fortunati perché i videogiochi sono oggetti completamente digitali e questa è stata la grande fortuna di NVIDIA DLSS. I supercomputer del colosso di Santa Clara si divertivano a far girare i giochi per produrre i dati necessari ad allenare la rete neurale. Una volta che il modello era in grado di produrre immagini soddisfacenti, veniva inviato nelle GPU dei consumatori attraverso aggiornamenti del firmware e voilà : giochi in alta risoluzione senza sforzo.
Inizialmente con NVIDIA DLSS 1.0 un modello diverso veniva allenato su un singolo videogioco e quindi ogni videogioco necessitava di utilizzare un modello specifico. Le nuove versioni di NVIDIA DLSS invece sono in grado di generalizzare meglio, anche se non tutti i giochi sono correttamente supportati.
AMD FidelityFX Super Resolution (FSR): un approccio più tradizionale?
Passiamo invece alla proposta di AMD. Anche se non sappiamo quale sia la strategia adottata per implementare AMD FidelityFX Super Resolution (FSR) è ragionevole supporre che non si faccia uso del deep learning come avviene per il DLSS di NVIDIA. Perché? Prima di tutto un buon responsabile del marketing lo avrebbe sbandierato ai quattro venti dato che ormai le parole “machine learning” e “intelligenza artificiale” sembrano trasformare tutto in oro. Invece silenzio. Oltretutto nella descrizione presente nel sito ufficiale dedicato ad AMD FidelityFX Super Resolution (FSR) si può leggere:
A state-of-the-art spatial upscaling algorithm delivers near-native resolution quality gaming experiences with super high-quality edges and detail.
“Upscaling spaziale” è un termine molto blando che non dà molte spiegazioni, tuttavia possiamo dire subito una cosa: non si andranno a sfruttare le correlazioni temporali. Questo è già un campanello di allarme perché come già discusso il tempo è una dimensione fondamentale, specialmente nei videogiochi dove spesso e volentieri ci sono oggetti in rapido movimento. L’upscaling spaziale può basarsi su algoritmi classici dove essenzialmente il programmatore decide una strategia per effettuare l’upscaling. Un esempio molto semplice è quello dell’interpolazione bilineare: in pratica per colmare i “buchi” dopo l’upscaling si colorano i pixel vuoti facendo una media di quelli adiacenti, in modo da ottenere un passaggio graduale. Questo è sicuramente molto più rapido rispetto ad una rete neurale profonda, ma comporta anche una perdita di dettagli dell’immagine. Ovviamente ci aspettiamo che AMD FidelityFX Super Resolution (FSR) utilizzi delle tecniche più avanzate dell’interpolazione bilineare. Essendo una tecnologia più aperta rispetto a quella di NVIDIA DLSS possiamo aspettarci che in futuro ci venga data la possibilità di saperne di più dal punto di vista tecnico.
Il confronto: meglio AMD FidelityFX Super Resolution (FSR) o NVIDIA DLSS?
Quali sono quindi le principali differenze tra un AMD FidelityFX Super Resolution (FSR) che secondo gli indizi si affiderà a tecniche più tradizionali e NVIDIA DLSS che invece sfrutta il deep learning? Qual è il migliore?
Andiamo con ordine. A livello di qualità assoluta il deep learning dovrebbe vincere tranquillamente. Se osserviamo la classifica “Image Super-Resolution on Set14 – 4x upscaling” di paperswithcode ci accorgiamo di come le tecnologie più performanti in termini di qualità dell’upscaling di immagini siano tutte basate sul deep learning. Infatti le reti neurali sono in grado di riconoscere all’interno dell’immagine pattern e oggetti e quindi ad un livello superiore rispetto a quello dei singoli pixel. Inoltre il deep learning ha un potenziale enorme: man mano che nuovi dati vengono resi disponibili per il training e le architetture delle reti neurali vengono raffinate, i risultati migliorano a vista d’occhio. Recentemente in una pubblicazione scientifica alcuni ricercatori sono riusciti a migliorare la grafica di GTA V rendendola molto simile al monde reale.
Tuttavia c’è una limitazione: i modelli di deep learning non generalizzano bene con tutti i giochi, infatti ci sono voluti anni per ottenere un supporto per poco più di cento giochi su migliaia di titoli disponibili. Inoltre sono incredibilmente complessi e pesanti. Infatti NVIDIA DLSS richiede l’hardware dedicato dei Tensor Core per funzionare senza impattare sulle prestazioni di tutto il sistema.
Un approccio più tradizionale come quello che sembra seguire AMD FidelityFX Super Resolution (FSR) invece non soffre di questi limiti. Un upscaling tradizionale può essere applicato a qualsiasi gioco (anche se non è chiaro se sarà possibile con FSR) ed è molto più efficiente, tanto che AMD lo propone per schede grafiche anche un po’ datate. Purtroppo la qualità dell’upscaling non è buonissima. Come hanno notato i colleghi di wccftech, la stessa demo mostrata da AMD mostrava alcune limitazione a livello di qualità d’immagine tra cui la perdita di dettagli e un effetto blur. AMD propone diversi preset, basati su algoritmi diversi, per decidere se si vuole privilegiare la qualità d’immagine o le prestazioni, ma in sostanza i limiti in termini di qualità rimangono.
Quindi, concludendo: che cosa è meglio? Il DLSS di NVIDIA potrebbe essere paragonato ad una ferrari: grandi prestazioni, ma ad un costo più elevato (sia per i giocatori che per gli sviluppatori); AMD FidelityFX Super Resolution (FSR) invece e più simile ad una utilitaria: fa il suo lavoro dignitosamente ed è facilmente accessibile da tutti. Tra l’altro, per vostra conoscenza, anche Microsoft sta lavorando in questa direzione. Nelle librerie DirectX 12 è presente un pacchetto chiamato DirectML che permette di accelerare carichi di machine learning su diverse piattaforme a partire da AMD GCN 1st Gen e NVIDIA Kepler. In ogni caso nessun approccio attualmente può raggiungere una qualità dell’immagine paragonabili al render diretto. Speriamo con questo articolo di aver un po’ chiarito i vostri dubbi, continuate a seguirci nella nostra sezione hardware!
Lascia un commento