Skrivet av RaBlack:
Kan någon "expert" tolka detta? Vad handlar det om? Är det Async snack eller bara BS?
http://i.imgur.com/E0goZfA.png
Tack på förhand med svar snarast.
Edit
DX 12 - Async Compute...
Every bit of independent research on this topic has confirmed that AMD and Nvidia have profoundly different asynchronous compute capabilities. Nvidia’s own slides illustrate this as well. Nvidia cards cannot handle asynchronous workloads the way that AMD’s can, and the differences between how the two cards function when presented with these tasks can’t be bridged with a few quick driver optimizations or code tweaks. Beyond3D forum member and GPU programmer Ext3h has written a guide to the differences between the two platforms — it’s a work-in-progress, but it contains a significant amount of useful information.
Joel Hruska, Extremetech.com
http://ext3h.makegames.de/DX12_Compute.html
"Best case scenario for AMD is the absolute worst case scenario for Nvidia.
And exactly the same vice versa as well, if you count in the use of CUDA."
MVH
Börjar man med det du har i bilden så hade det inlägget inte många rätt...
Tessellation ökar antal trianglar som ska renderas rätt ordentligt, ska man ge något rätt till vad som skrivs där så kan man säga att kommunikationskostnaden mellan CPU och GPU är extremt låg så tessellation är väldigt lämpligt att använda om möjligt. Ett bra exempel på hur man kan använda denna teknik är Rise of the Tomb Raider som använder tessellation för att rendera effekten som Laura gör i snön när hon pulsar igenom den.
Att tessellation är dyrt på dagens GCN-kretsar har inget med att AMD är lata att göra, i stället handlar det om att dagens GCN-kretsar har rätt mycket lägre geometrikapacitet jämfört med Kepler/Maxwell. En av punkterna som AMD fokuserat på i Polaris är just detta, så kommande GCN-kretsar kommer vara betydligt bättre här.
Tessellation har ingenting att göra med "async compute" och det lindrar inte "popin".
Nästa om DX11 och "async compute". Varken DX11 eller DX12 "har" async compute, däremot möjliggör DX12 användande av async compute på GPU-kretsar som stödjer detta.
Personen är korrekt i det att Nvidia använder flera trådar i sina DX11 drivare och att det är något man tappar i DX12, går att göra samma sak som Nvidia gör i drivers men det måste explicit göras av spelet. Att dagens spel typiskt tappar lite prestanda på Nvidia kort i DX12 beror rimligen på att Nvidias drivrutins-team är så här långt så pass mycket bättre att optimera för Nvidia GPUer att de klara av att kompensera för den högre overhead DX11 har mot DX12. Fast det är kanske inte så svårt... Tittar man på Quantum Break så får man ju en betydligt bättre upplevelse med XboxOne, nära nog noll frame-time variance, är verkligen 33 ms mellan varje fram. PC må ha högre genomsnittlig FPS med 390/970, men frame-time har extrem varians (hoppar mellan 33 ms och 17 ms vilket ger en sämre upplevelse än konstant 33 ms).
Så här långt är tyvärr DX12 en katastrof, en större katastrof på Nvidia än AMD. Men undantaget AotS så fungerar DX11 än DX12 bättre även på AMD-korten (på Nvidia är DX11 att föredra även i AotS). Personligen hade jag förväntat mig en del problem med DX12 då det lägger rätt mycket mer krav i knät på utvecklaren, man hade inte riktigt förväntat mig att det skulle bli så här illa. Hoppas det förbättras snart, för DX12 har långt mer potential än DX11!
Angående om Maxwell har "async compute" eller ej. Finns en anledning varför CUDA nämns i det du länkar, när man kör rena beräkningar (d.v.s. ingen grafik) så har Nvidias kort haft "async compute" sedan Fermi. Specifik i Maxwell finns 31 st köer. Av den anledning förutsatte de flesta, inklusive Nvidia själva av allt att döma, att Maxwell även skulle hantera "async shaders" i DX12.
Nu tyder mycket på att så inte är fallet. Maxwell och Kepler (är inte säker hur det står till med Fermi) har två separata lägen, ett för beräkningar (och där finns definitivt stöd för "async compute") och ett för grafik. Verkar allt mer som Nvidia inte hittar något sätt att kombinera dessa två lägen, baserar detta på den kompakta tystnaden från Nvidia angående stöd för "async compute" i DX12.
Det sagt, avsaknad av "async shaders" är inget som hindrar ett kort från att göra något som DX12 (eller Vulkan) är kapabel till. "async shaders" är rent logiskt väldigt snarlikt SMT (Intels Hyperthreading) för CPUer. En CPU utan SMT kan fortfarande utföra alla uppgifter en CPU med SMT kan utföra, men i lägen där man har väldigt många oberoende uppgifter kommer CPUn med SMT stöd utföra mer arbete per cykel.
Finns två typer av parallellism man måste hålla isär för att förstå värdet av "async compute".
Ena typen är data-parallellism, grafik är extremt dataparallellt vilket är orsaken till varför grafikkort skalar så väldigt bra med CUDA/stream-cores. Så även med DX11 har man en massiv mängd parallellism. "async compute" har ingenting med detta att göra. För CPUer hanterar man lämpligen data-parallella system med SSE/AVX-instruktioner för bästa resultat.
Den andra typen av parallellism är uppgiftsparallellism. Två uppgifter som är helt oberoende av varandra är väldigt lämpade för denna typ, i CPUer kan man dra nytta av fler CPU-kärnor om man har flera uppgifter som är oberoende. För GPUer kan "async compute" användas för att få en boost i lägen där man har flera uppgifter som dels är oberoende och dels stressar olika delar av GPUn. Säg att du gör väldigt avancerad ljusberäkning som stressar shaders men lastar ROPs väldigt lite, finns då möjlighet att göra vissa ROP-intesiva post-processing beräkningar parallellt och är i dessa lägen man kan vinna prestanda med "async shaders".
Om det skulle visa sig att Maxwell inte man använda sig av "async compute" så är det naturligtvis trist för de som sitter på sådana kort (eller så kan man se det som en orsak att skaffa nytt ). Men finns en möjlighet till att åstadkomma samma fördel ändå i de flesta fall: iGPU. Väldigt många spelriggar har en iGPU som idag aldrig används, med DX12/Vulkan är det möjligt för spel att använda flera GPUer då varje GPU är åtkomlig som en eller flera köer. "compute" jobb som på ett GCN-kort skickas till en separat kö på samma kort skulle i de flesta fall lika gärna kunna skickas till iGPUn vilket ger likartad effekt.