Scusate ragazzi, cosa sarebbe in pratica questo calcolo asincrono in cui le nuove nvidia dovrebbero andare peggio delle rivali??
E' una delle novita' introdotte da Dx12, consente di elaborare le istruzioni parallelamente nella Gpu, con un aumento di performance di circa il 10% in Ashes of Singularity.
- - - Updated - - -
Vorrei ritornare sulla questione Async Compute per chiarire un po' la questione.
Innanzitutto, perché non è stato possibile implementarlo sulle DX11?
La risposta è semplice, perché non si avrebbero benefici tangibili, anzi si andrebbe a consumare di più ottenendo le medesime performance, i vantaggi di un calcolo parallelo implicano che sia minima la latenza tra il framework dei driver e l'elaborazione del dato. Quindi con un'API più close to metal, si pongono le basi proprio per l'introduzione del calcolo asincrono, che si può considerare come un'ulteriore affinamento dello sfruttamento della GPU.
Cosa succede in DX12?
Poste le basi per abbattere le latenze, si può pensare la pipeline di calcolo in modo diverso: al posto di un calcolo sequenziale, con relativa ottimizzazione sviluppando istruzioni più semplici possibili (per velocizzare e snellire l'onere della GPU), le istruzioni si possono elaborare parallelamente, senza metterle in coda.
Non sempre questo approccio, anche in DX12, può portare benefici, ma ci sono casi in cui si riesce a spremere un 5-10% in più dalla GPU semplicemente perché nel calcolo sequenziale alcune parti della stessa non sono costantemente stressate.
Una sorta di auto ottimizzazione a discapito dei consumi, ma che se ben implementata qualche vantaggio lo porta in determinate, specifiche, situazioni.
Maxwell come si pone verso l'async compute?
Nvidia pone Maxwell come DX 12.1 compilant, quindi perfettamente in grado di supportare l'async compute.
Queste sono le sue caratteristiche: come abbiamo detto la latenza di esecuzione ha un ruolo importante per avere benefici da questa tecnica, parallelizzando un dato, con Async compute abilitato, la stessa non dovrebbe aumentare ma restare costante, in Maxwell questo succede in modo molto efficace fino a 31 istruzioni contemporanee, superata questa soglia, la latenza inizia a salire.
E' chiaro che per avere un beneficio in DX12 da questa tecnica, bisogna restare entro questa soglia, superata la quale in maniera proporzionale si assisterebbe a un calo di performance.
Quindi considerando il guadagno medio di un 5-10%, con 34 istruzioni contemporanee al massimo, le performance sarebbero del tutto identiche abilitandolo o meno, superata quella soglia potrebbero addirittura peggiorare.
Pascal?
Queste sono considerazioni personali: vedendo quello che si sa dell'architettura, è chiaro che il potenziamento del Warp Scheduler consentirà più margine in questo campo specifico, probabilmente con un raddoppio delle possibilità offerte da Maxwell.