Pianificazione GPU con accelerazione hardware: cos'è e come funziona

Normalmente quando parliamo di CPU da gioco ci riferiamo sempre al fatto che minore è il carico grafico, più il processore diventa dipendente dalle prestazioni complessive del gioco. Il problema è che molte persone non conoscono i dettagli che questo contiene, poiché le CPU di fascia bassa soffrono maggiormente di questo fatto. Microsoft ha voluto intervenire in merito e ha presentato la prima soluzione a questo problema, che ha chiamato Hardware accelerato GPU Programmazione , Ma che cosa fa?

Come sempre accade in questo tipo di cose, per capire la soluzione devi prima capire il problema e tutto ciò che lo circonda. Prima e dopo l'arrivo di Windows Display Driver Model 1.0 o WDDM 1.0 , un notevole miglioramento chiamato programmazione GPU è stato introdotto in Windows.

Pianificazione GPU con accelerazione hardware

Questa funzionalità creava una coda globale dove segnava il passaggio di cosa doveva essere inviato alla GPU e cosa doveva essere eseguito, ma soprattutto, quando doveva essere fatto. Prima di WDDM, la GPU riceveva il carico di lavoro senza ordine, praticamente senza rispettare il turno, quindi tutto il lavoro veniva terminato dal CPU non era molto ottimale. Nel tempo questo sistema non è stato sufficiente ed è stato allora che Microsoft ha introdotto WDDM, migliorando così le prestazioni.

Ci sono stati più problemi da risolvere come la latenza

GPUNavi Radeon Pro 5600M

Non solo è richiesto un ordine di spedizione ed esecuzione per ogni attività, lo scheduler GPU coordina, assegna le priorità e pianifica il lavoro come una CPU simile a thread, ma ciò genera un chiaro problema di latenza che finora non è stato risolto in modo ottimale.

Idealmente, mentre la GPU esegue il rendering di un frame, la CPU ha già pronto e funzionante il successivo, solo in modo che la GPU ce l'abbia prima di terminare il rendering, ma questo non è il caso nella stragrande maggioranza dei casi, perché ogni CPU ha diversi potenza e diverse latenze interne.

Quando abbassiamo la risoluzione a un gioco, i carichi di lavoro sono più leggeri, il che teoricamente favorisce CPU meno potenti, ma non è così, poiché genera un carico molto più elevato sul WDDM ciò impedisce alla CPU di fornire le informazioni lavorate in tempo e quindi limita la velocità dei frame resi dalla GPU, poiché funziona più liberamente ma non riceve le informazioni in tempo per generare tutte le prestazioni che può offrire.

L'opzione che è stata rimossa dalla manica entrambi NVIDIA e AMD è una patch che non ha molto tempo, ma non è una vera soluzione, dato che quello che si intendeva era generare più frame lavorati sulla CPU e in batch, inviandoli alla GPU tutti in una volta e mantenendo lo stesso numero di frame nel buffer, in modo che ci fosse quel tempo tra ciò che veniva preparato dalla CPU e quello che finiva per inviare alla GPU.

Il buffer avrebbe sempre alcuni frame funzionanti e la CPU poteva respirare con quel poco tempo. Il problema è che questo genera uno svantaggio che molti non sono disposti ad assumere: a ritardo tra le nostre azioni nel gioco e la rappresentazione di quelle azioni sullo schermo, dove anche questo è totalmente casuale, poiché dipende da quanto è caricata la CPU in ogni momento. Cioè, possiamo avere la sensazione di immediatezza in un momento e nell'altro la sensazione di essere in ritardo nel gioco.

Questo effetto è chiamato Parallelismo di esecuzione CPU-GPU e, come diciamo, non è di gradimento per tutti, poiché si ottiene la migliore frequenza FPS, ma una sensazione controproducente durante il gioco.

Pianificazione GPU con accelerazione hardware

Con l'arrivo di Windows 10 maggio 2020, Microsoft ha introdotto un nuovo Schedulatore GPU come opzione per l'utente, che è stato disabilitato di serie. Le modifiche sono sostanziali in questo nuovo scheduler, perché sebbene Windows continui a controllare questa priorità e decida quale sia la priorità e cosa non lo sia, così come il suo contesto, ora viene scaricato sul processore da carichi elevati in modo che non debba decidere tra ridurre la latenza o ridurre il carico sui core.

Ma come lo fa? Scarico nella CPU e passaggio del carico direttamente alla GPU quando necessario. Fondamentalmente quello che stai cercando è modificare la programmazione software della CPU nella programmazione hardware della GPU , quindi ciò richiede che l'intero settore sia un tutt'uno con un tale cambiamento.

Pertanto, l'hardware specifico, un driver specifico e il supporto specifico di Windows sono necessari per farlo funzionare, senza dimenticare che i giochi che verranno rilasciati d'ora in poi devono essere in grado di supportare questa funzione di programmatore.

Pertanto e in sintesi, avremo bisogno di una NVIDIA Pascal o Turing GPU o AMD RDNA GPU, così come il driver corrispondente e almeno Windows 10 2004 maggio 2020 affinché l'opzione appaia nella configurazione.

Questa opzione è disponibile in Configurazione -> Sistema -> Display -> Configurazione grafica e sebbene in NVIDIA possa già essere selezionato, sembra che AMD anche fornendo supporto non riesca ancora a mostrarlo, quindi dovremo aspettare il nuovo Adrenalin 20.5.X.

In ogni caso, essendo questo un cambiamento sostanziale questo Pianificazione GPU con accelerazione hardware arriva disattivato di serie e se decidiamo di attivarlo, potrebbe migliorare le prestazioni o meno, dipenderà dal gioco in questione.