Sp3ci3s8472 schreef op donderdag 18 juni 2015 @ 22:48:
Geen flauw idee, volgens mij niet want ik krijg 0 hits met zowel nVidia als Maxwell plus asynchronous shading. De hits die ik krijg gaan allemaal over AMD.
Asynchronous shading wordt door de LiquidVR sdk aangesproken.
Mischien dat Werelds hier meer van weet? Hint hint

.
Even in het (relatief) kort dan
Anand's artikel (
http://www.anandtech.com/...p-on-asynchronous-shading) legt aardig uit wat Async Computing is. Een heel belangrijk deel hiervan is het ouderwetse texture streaming. Dat kan nu asynchroon gebeuren, waardoor je er minder van merkt als gebruiker en er voor de developer minder latency is. Dat wordt nog veel mooier zodra je Tiled Resources in de mix gooit, want ook de tiles die je nodig hebt moet je nog steeds in het geheugen krijgen - ook dat kan dus asynchroon. Dit is het eenvoudigste voorbeeld, maar dit principe kan op alles toegepast worden. Zelfs iets als culling (bepalen wat niet zichtbaar is) kan hier profijt van hebben.
Alle DX12 kaarten
moeten dit ondersteunen vanuit een software perspectief. Het is een basis vereiste. Dat een GPU het ondersteunt betekent echter niet dat het ook daadwerkelijk iets oplevert en dit is waar AMD een behoorlijke streep voor heeft. Met uitzondering van GM20x kan Nvidia namelijk niet daadwerkelijk 100% asynchroon werken; beide fabrikanten "ondersteunen" dit soort dingen al veel langer, alleen zat het voorheen (en voor Nvidia dus nog steeds) vooral in hoe de driver alle data naar de GPU stuurde. Nvidia moet buiten GM20x nog steeds context switchen wat gewoon een beetje latency met zich mee brengt. Met andere woorden, op Fermi, Kepler en GM107 is daar weinig plezier aan te beleven. Vanaf Kepler zit het wel in de hardware, dus daar kan er al meer dan op Fermi.
Het is echter ook niet zo dat meer queues meteen betekent dat het ook beter of sneller loopt.
Ik neem er even Anand's tabel bij, met bonus update voor de respins. Volgens het blok diagram dat je op alle sites ziet heeft Fury er ook gewoon 1 + 8, dus daar ga ik nu even van uit.
Architectuur | Mixed Mode | Pure Compute |
---|
AMD GCN 1.2 (R9 285/380, Fury) | 1 Graphics + 8 Compute | 8 Compute |
AMD GCN 1.1 (R9 290/390) | 1 Graphics + 8 Compute | 8 Compute |
AMD GCN 1.1 (R7 260/360) | 1 Graphics + 2 Compute | 2 Compute |
AMD GCN 1.0 (7000, R5/R7 200/300) | 1 Graphics + 2 Compute | 2 Compute |
NVIDIA Maxwell 2 (GM20x) (GTX 900) | 1 Graphics + 31 Compute | 32 Compute |
NVIDIA Maxwell 1 (GM10x) (GTX 750) | 1 Graphics | 32 Compute |
NVIDIA Kepler GK110 (GTX 780/Ti, Titan) | 1 Graphics | 32 Compute |
NVIDIA Kepler GK10x (GTX 600 + 700) | 1 Graphics | 1 Compute |
Op papier zou Maxwell 2 gehakt maken van welke GCN versie dan ook. In de praktijk werkt dat niet zo, want het is nog steeds aan de developers om die queues ook te vullen - en vervolgens moet de GPU die queues ook op efficiënte wijze leeg weten te halen. De meeste engines zullen vooralsnog op 2 queues blijven steken (waarbij vooral streaming dus apart gequeued wordt, de andere voor "graphics"). De grotere engines zullen waarschijnlijk tot 4-6 queues komen met normaal werk. Nvidia heeft echter alsnog een "probleem" met hun queues, bekijk hiervoor het blok diagram van GM20x maar eens.
Ze laten het niet duidelijk zien in het blok diagram, maar hoewel ze in totaal 32 queues hebben (32 shader clusters), zijn die niet allemaal even direct aanspreekbaar. Ze hebben 8 queues per GPC, 2 queues per SMM en 1 per shader cluster. Als je heel even na denkt zie je nu al waar ik naar toe ga, die queues zijn sterk gekoppeld aan de clusters. Dat betekent dat er vóór die queues dus nog een "dirigent" zit die bepaalt wat waar terecht komt en je uiteindelijk toch niet helemaal asynchroon werkt. Ik gok dat er hier meerdere van zijn (Nvidia noemt hun queues zoals je ziet nergens uitdrukkelijk; Ryan heeft z'n cijfers pas gekregen nadat hij Nvidia er naar vroeg), maar het zijn er geen 32. Als Nvidia deze wél volledig aanspreekbaar had gemaakt ten opzichte van GM10x (die er ook 32 in totaal heeft) hadden ze daar echt wel melding van gemaakt, is veel te leuk voor marketing. GM20x bevat wel enkele andere tweaks waardoor ik denk dat er in de praktijk nauwelijks verschil met GCN zal zijn
Bij AMD staan de ACEs echt buiten de clusters. Elke ACE kan elk cluster aan sturen. Ik kan niet genoeg benadrukken hoe verdomd goed GCN in elkaar zit. Ik weet dat sommigen hier ook op Beyond3D zitten, voor diegenen raad ik aan om vooral eens naar de posts van mensen als sebbbi (een developer) of Andrew Lauritzen (Intel Graphics Engineer) te kijken. Het wil best wel iets zeggen als iemand van Intel aardig wat lovende woorden over GCN heeft. Sebbbi is een programmeur bij RedLynx (Trials Evolution) maar draait al bijzonder lang mee in de industrie en geniet veel respect. Ook hij is heel positief over GCN.
Tot slot: waarom is dit verhaal belangrijk voor VR? Omdat er bij VR veel meer dingen "naast" de render taken kunnen/moeten lopen.
Time Warping bijvoorbeeld.