Nemesis Elite ha scritto:Si IlPresidente, ho capito cosa vuoi dire. Via, sono d'acordo per metà sul post perchè mi ripeto : se il driver è scritto bene la gestione delle nuove API va già bene anche così lato NVIDIA intendo ma è palese che la cosa venga ulteriormente migliorata con Volta.

Ciao Nemesis, praticamente cambia questo:
Con Pascal- Maxwell (lo cito anche se un pelo cambia), il giga thread, invia i dati ai vari warp. All'interno sono presenti i 32 thread (128 su SMM). Ogni warp è affidato ad un unico contatore.
Il Warp gestisce, la coda, le chiamate e l'assegnazione del lavoro.
Quando si fa lavoro parallelo dx12, se il warp non è programmato, si rischia che il warp, viene suddiviso a blocchi di 4.
Ogni blocco non riesce a comunicare con l'altro, uno lavora, uno va di conservative ( mette quanto calcolato in via secondaria in cache) ed altri rimangono in attesa. Quindi vanno sincronizzati o la scheda sostanzialmente lascia vari thread in idle. Questo porta giochi come BF1 a perdere in DX12.
Con Volta, almeno sulla carta, non sarà così.
Non ci sarà più un contatore su 32 thread, ma ogni thread, avrà tutte le funzioni del contatore.
Quando lavori su due fronti, dx12, ogni thread, all'interno del warp, può lavorare indipendentemente, quindi può occuparsi di altri dati, lavorare con il conservatore e dialogare con i thread che stanno lavorando su altro.
In linea di massima, si elimineranno i thread in idle, e non solo, si potranno scambiare i dati anche all'interno dell SMM.
Su un SMM, ci sono 4 warp da 128 cc (thread)
Ora con Pascal, si è limitati al warp, 32 thread e questo viene suddiviso.
Immagina una sequenza simile:
Pascal
warp 32:
8 lavorano
4 idle
4 lavorano in parallelo e memorizzano
4 aspettano che tutto il lavoro sia finito per ripartire.
4 idle
4 accedono ai registri
4 idle
Volta:
1 lavora
1 aspetta ed elabora
1 accede ai registri e lavora.
1 scambia il dato con l'atro warp.
Su 128 cc Volta hai sempre lavoro, su 128 cc Pascal(4 warp), ti ritrovi un botto di thread in idle.
