Shading a velocità variabile

Oltre a ottimizzare il modo in cui Turing processa la geometria, Nvidia supporta anche un meccanismo per scegliere la velocità alla quale i pixel sono ombreggiati (shading) in diverse parti di una scena per migliorare le prestazioni. Naturalmente l'hardware può comunque fare lo shading di ogni singolo pixel di un modello 1x1. Ma l'architettura facilita anche opzioni 2x1 e 1x2, insieme a blocchi 2x2 e 4x4.

full rate shading
Shading a piena velocità - clicca per ingrandire
content adaptive shading color coded
Content-adaptive shading, codificato con i colori - Clicca per ingrandire
content adaptive shading final output
Content-adaptive shading, risultato finale - Clicca per ingrandire

Nvidia ha illustrato diversi casi in cui uno shading a velocità variabile è funzionale - non bisogna applicarlo ovunque influenzando negativamente la qualità d'immagine. Il primo è definito "content-adaptive shading", dove le parti meno dettagliate di una scena non cambiano così tanto e possono essere ombreggiate a velocità inferiore.

Esiste una build di Wolfenstein II con ombreggiatura a tasso variabile attiva. In questa build potete attivare la visualizzazione della velocità di shading per osservare come gli oggetti complessi non sono affatto influenzati da questa tecnologia, mentre le aree a minor frequenza sono ombreggiate a una risoluzione inferiore. Un numero di passaggi intermedi facilita una maggiore velocità.

Immaginiamo che gli sviluppatori di giochi che cercheranno di sfruttare lo shading a velocità variabile adattandolo al contenuto (content-adaptive) daranno priorità alla qualità rispetto alle prestazioni. Ci piacerebbe tuttavia vedere questa soluzione abilitata come opzione selezionabile in modo che le terze parti possano fare confronti tra la funzione abilitata e disabilitata.

pattern
Clicca per ingrandire

Lo shading "motion-adaptive" è un'altra interessante applicazione della tecnologia di ombreggiatura a velocità variabile di Nvidia, dove gli oggetti che passano rapidamente sono percepiti a una risoluzione inferiore rispetto a qualsiasi soggetto su cui ci stiamo concentrando. In base al vettore di movimento di ogni pixel, gli sviluppatori di giochi possono determinare quanto aggressivamente ridurre la velocità di shading e applicare gli stessi modelli visti nell'esempio sul content-adaptive. Farlo in modo corretto richiede un accurato modello di risposta in frequenza per garantire che vengano usate le giuste velocità quando ci si muove, si accelera, si rallenta.

Nvidia ha presentato una demo di Wolfenstein II con content e motion-adaptive shading abilitati. L'aumento prestazionale attribuito allo shading a velocità variabile in quel titolo è stato nell'ordine del 15%, ma solo perché il gioco girava già a frame rate elevati. Su una scheda video più lenta con un gioco più esigente, sarebbe possibile andare oltre il 20%. Cosa più importante, non c'è un calo percepibile della qualità d'immagine.

Anche se Nvidia non ha detto molto su come queste funzionalità hardware saranno usate dagli sviluppatori, si può assumere che la demo di Wolfenstein II funzionasse sotto Vulkan usando le estensioni dell'API e che Nvidia stia lavorando con Microsoft per l'integrazione nelle DirectX. Fino ad allora esporrà la funzionalità Adaptive Shading tramite l'SDK NVAPI, che permette accesso diretto alle caratteristiche della GPU più di quanto permesso da DirectX e OpenGL.

Pagina precedente

RTX-OPS: Nvidia s'inventa una nuova unità di misura

L'aumento della complessità dei chip grafici, che integrano risorse che svolgono funzioni differenti ma influenzano il quadro prestazionale generale, rende sempre più difficile quantificare le loro capacità.

Usiamo già termini come fillrate per confrontare quanti miliardi di pixel o elementi texture una GPU è teoricamente in grado di renderizzare sullo schermo in un secondo.

Con l'aggiunta di Tensor e RT core ai propri Turing Streaming Multiprocessors, Nvidia ha trovato necessario dare vita a un nuovo metro che riesca a riflettere le capacità delle sue pipeline matematiche INT32 e FP32, gli RT core e Tensor core. Non abbiamo intenzione di usare il valore RTX-OPS per ogni confronto, ma dato che Nvidia lo cita, vogliamo almeno spiegare l'equazione che lo compone.

turing frame
Clicca per ingrandire

Il modello RTX-OPS richiede l'uso di tutte le risorse, che è un assunto tanto audace quanto lungimirante. Dopotutto, finché i giochi non adottano ampiamente le capacità di ray tracing e di deep learning di Turing, gli RT core e i Tensor core restano inattivi. Non appena iniziano a essere usati, Nvidia ha sviluppato una propria approssimazione della capacità di calcolo coinvolta in un frame renderizzato da una GPU Turing.

Nel diagramma qui sopra Nvidia mostra che all'incirca l'80% del frame è stato "consumato" dal rendering e il 20% è andato nell'AI. Nella fetta dedicata allo shading c'è una suddivisione di circa 50/50 tra lavoro ray tracing e FP32.

Esaminando ancora più in profondità i CUDA core, abbiamo già detto che Nvidia ha riscontrato circa 36 operazioni INT32 per ogni 100 istruzioni FP32 su una striscia di tracce shader, dando un'idea ragionevole di ciò che accade in una scena "ideale" che sfrutta ogni unità funzionale.

Perciò...

Potenza FP32 = 4352 FP32 core * 1635 MHz (GPU Boost) * 2 = 14.2 TFLOPS

Potenza RT core = 10 TFLOPS per gigaray, assumendo che la GeForce GTX 1080 Ti (11.3 TFLOPS FP32 a 1582 MHz) può generare 1,1 miliardi di raggi usando l'emulazione software = ~100 TFLOPS su una GeForce RTX 2080 Ti capace di generare circa ~10 miliardi di raggi

Istruzioni INT32 al secondo = 4352 INT32 core * 1635 MHz (GPU Boost) * 2 = 14.2 TIPS

Potenza Tensor core = 544 Tensor core * 1635 MHz (GPU Boost) * 64 operazioni in virgola mobile FMA per clock * 2 = 113.8 FP16 Tensor TFLOPS

... siamo in grado di andare a ritroso nei calcoli matematici di Nvidia per vedere come ha ottenuto una specifica di 78 RTX-OPS per la GeForce RTX 2080 Ti Founders Edition:

(14 TFLOPS [FP32] * 80%) + (14 TIPS [INT32] * 28% [~35 operazioni INT32 per ogni 100 operazioni FP32, che occupano fino all'80% del carico]) + (100 TFLOPS [ray tracing] * 40% [metà di 80%]) + (114 TFLOPS [FP16 Tensor] * 20%) = 77.9

Di nuovo, ci sono molte ipotesi in questo modello, e non vediamo alcun modo di usarlo per confronti generazionali o competitivi. Allo stesso tempo, è chiaro che Nvidia voleva un modo per rappresentare le prestazioni in modo olistico e non possiamo criticare l'azienda per averci provato, in particolare perché non ha aggiunto semplicemente le funzionalità di ciascun sottosistema, ma piuttosto ha isolato i singoli contributi a un frame.

Uscite video e controller

Le GeForce RTX Founders Edition hanno tre connettori DisplayPort 1.4a, un'uscita HDMI 2.0b e un'interfaccia VirtuaLink. Le schede supportano fino a quattro monitor contemporaneamente e naturalmente sono conformi ad HDCP 2.2.

Turing abilita anche Display Stream Compression (DSC) su DisplayPort, permettendo di pilotare uno schermo 8K (7680x4320) tramite un singolo flusso a 60 Hz. Questa funzionalità è importante anche per gestire un monitor 4K (3840x2160) con un refresh a 120 Hz e HDR.

Parlando di HDR, Turing legge nativamente il contenuto HDR tramite un hardware dedicato al tone mapping.  Pascal, d'altra parte, necessitava di applicare dei calcoli che aggiungevano latenza.

Infine, tutte e tre le Founders Edition hanno connettori VirtualLink per i visori di realtà virtuale di prossima generazione. L'interfaccia VirtualLink usa un connettore USB Type-C ma è basata su una Alternate Mode con pin riconfigurati per fornirvi quattro linee DisplayPort, un canale dati USB 3.1 Gen2 bidirezionale per sensori ad alta risoluzione e un'energia fino a 27 W. Secondo il VirtualLink Consortium, gli attuali visori operano all'interno dei 15 W, includendo schermi, controller, audio, dispersione di energia su un cavo di 5 metri e altro.

Questa nuova interfaccia è pensata per supportare dispositivi più esigenti con capacità migliorate. Ricordatevi che la richiesta energetica di VirtualLink non è riflessa nel TDP delle GeForce RTX: Nvidia dice che usare l'interfaccia richiede fino a 35 W in più.

Accelerazione video: codifica e decodifica migliorate

L'accelerazione hardware delle funzionalità video non raccoglie molta attenzione quanto il gaming, ma le nuove architetture grafiche solitamente aggiungono miglioramenti che supportano gli ultimi standard di compressione, incorporando strumenti/profili di codifica più avanzati e scaricando la CPU dal lavoro.

Le prestazioni di codifica sono più importanti che mai per lo streaming di giochi verso le piattaforme social. Una GPU capace di gestire il carico in hardware allevia le altre risorse della piattaforma, quindi la codifica ha un impatto minore sul frame rate dei giochi. Storicamente la codifica accelerata dalla GPU non ha mai raggiunto in qualità la codifica software a un dato bit rate. Nvidia afferma che Turing cambia tutto, assorbendo il carico di lavoro e superando la qualità della codifica x264 Fast basata su software - in base a un proprio benchmark sul rapporto tra segnale di picco e rumore.

Oltre un determinato punto, i miglioramenti della qualità garantiscono ritorni inferiori. È comunque degno di nota che Nvidia affermi che almeno è in grado di pareggiare il profilo Fast. Ma gli streamer sono maggiormente interessati alla capacità della GPU di minimizzare l'uso della CPU e il bit rate.

turing encode decode
Clicca per ingrandire

In questa generazione di schede l'encoder NVEnc è abbastanza veloce per 8K HDR a 30 FPS in tempo reale. Ottimizzazioni all'encoder facilitano risparmi di bit rate fino a 25% in HEVC (o un aumento di qualità corrispondente allo stesso bit rate) e fino al 15% in H.264. L'accelerazione hardware rende la codifica in tempo reale a risoluzione 4K un'opzione percorribile, anche se Nvidia non specifica quale CPU abbia usato come confronto per generare un dato d'uso del 73% nel confronto software.

Il blocco di decodifica supporta VP9 10-12-bit HDR. Non è chiaro in cosa differisca dalle soluzioni GP102, dato che la GTX 1080 Ti fa lo stesso. Similmente anche HEVC 4:4:4 10/12-bit HDR è indicato tra le nuove caratteristiche di Turing. Dato che l'intero portfolio di GPU Pascal supporta già HEVC 4:4:4 10-bit, dobbiamo assumere che Nvidia abbia aggiunto il profilo Main 4:4:4 12 a TU102.

Continua a pagina 12

Pubblicità

AREE TEMATICHE