Doom får stöd för Vulkan

Permalänk
Skrivet av Stoff3th3m4n:

Nu finns det ju dock tester som visar en rejäl vinst med async compute i Doom både med och utan Vulkan vs ingen async compute så att du försöker förklara bort det även denna gång blir lite märkligt. Vi börjar ju se fler och fler tecken på en reell vinst med async compute, inte enbart overhead som du försöker hävda. Så det blir nog svårare och svårare för dig att förklara bort en till synes så trevlig "funktion".

Länkarna finns i den här tråden om du inte redan ögnat igenom dem.

Sedan tycker jag att det är rejält ledsamt att varje gång en tråd handlar om AMD, Nvidia eller båda så verkar du ha någon form av behov att bagatellisera det som är bra för AMD och tvärt om gällande Nvidia. Mycket sällan frångår du detta och jag begriper personligen inte hur andra än Nvidia-fantaster kan uppskatta dina inlägg. Personligen använder jag mer än gärna vilket märke som, och just idag är det Nvidia-kort. Men det är som sagt beklämmande och rejält tydligt vad det är du håller på med, rik på kunskap eller inte.

Den stora anledningen till att prestandavinsterna syns mer hos AMD är att deras drivrutiner är relativt sämre. Vilket är särskilt märkbart vad gäller OpenGL. Med vulkan är det närapå omöjligt att knåpa ihop en dålig drivis, då de är exceptionellt "tunna". Vilket iofs kommer föra med sig att drivrutiner inte kan anpassas för olika spel för att "rädda" undermåligt programmerad dynga.

Permalänk
Medlem
Skrivet av Kraeshok:

@Yoshman:
Har du läst computerbase.de artikel om Doom och Vulkan?
Att RX 480 inte ser någon ändring i 4k är ganska enkelt förklarat med antal ROP:s 32st och peak pixel fill rate, Fury X som annars ser 66% förbättring i 1080p och 52% i 1440p ser endast 11% förbätting i 4k. RX 480 kan helt enkelt inte pusha mera pixels och samma händer för Fury X i 4k - ROP antalet och pixels per clock gör att det inte når högre FPS, finns inte flera pixlar att pusha genom till CU's?

https://www.computerbase.de/2016-07/doom-vulkan-benchmarks-am...

Gamersnexus siffror är med async off då de kör med FXAA. Osäker på om Computerbase och Gamersnexus använder ungefär samma område för benchmarking, om så är fallet är utslaget påslaget async ca 10 fps/9% ökning. TSSAA kontra FXAA är inget jag har koll på idag angående belastningsgrad. Async kanske ger lite mer men som äts upp lite av TSSAA? Lite trist bara att Computerbase inte har ett Nv 1080 med i sitt test och att Nvidia inte fått sin version av Async Compute redo till Vulkan patchen. Men, vi ser nog den jämförelsen inom några månader får vi hoppas...

Precis, ROPen blir ett problem. Skulle vara ytterst intressant att se hur CF står sig.

Men tycker att man kan dra ganska klara slutsatser att ju mer parallellt en utvecklare kör mellan CPU och GPU på draw calls med Vulkan och DX12 ju bättre kommer AMDs CGN står sig, speciellt mot Maxwell som inte alls kan komma upp i samma nivå parallellt.

Detta inlägg förklarar det väldigt bra, även om folk gärna ville påstå att den typen av gains som AMD såg i AoS bara skulle vara i AoS:
http://www.overclock.net/t/1569897/various-ashes-of-the-singu...

"Therefore in game titles which rely heavily on Parallelism, likely most DirectX 12 titles, AMD GCN 1.1/1.2 should do very well provided they do not hit a Geometry or Rasterizer Operator bottleneck before nVIDIA hits their Draw Call/Parallelism bottleneck. The picture bellow highlights the Draw Call/Parallelism superioty of GCN 1.1/1.2 over Maxwell 2:"

Visa signatur

Speldator: Intel i7 4770k - 16 GB DDR3 - GeForce GTX 1060 EVGA SC MiniITX - Samsung 850 Pro 256GB (OS) - Samsung 840 EVO 500GB (Install) - 3x4TB Seagate (Mix) - Fractal Node 304

Permalänk
Medlem
Skrivet av CamelCase:

Den stora anledningen till att prestandavinsterna syns mer hos AMD är att deras drivrutiner är relativt sämre. Vilket är särskilt märkbart vad gäller OpenGL. Med vulkan är det närapå omöjligt att knåpa ihop en dålig drivis, då de är exceptionellt "tunna". Vilket iofs kommer föra med sig att drivrutiner inte kan anpassas för olika spel för att "rädda" undermåligt programmerad dynga.

Indeed är det en del av förklaringen. Men samtidigt så ser vi att RX480 är på en nivå av GTX980 med Vulkan där man i DX11 är på en nivå mer likt GTX970.

Detta är såklart inte på grund av dåliga drivrutiner utan för att DX11 är gjort for mestadels seriell körning där nVidias drivurtiner via optimeringar kölägger tasks för bästa genomkörning seriellt.

Med DX12/Vulkan så sker detta parallellt direkt från CPUn utan att vara bundet till en tråd på CPUn där drivrutinerna sen får använda övriga trådar för att strukturera om kön för seriellt körning.

Visa signatur

Speldator: Intel i7 4770k - 16 GB DDR3 - GeForce GTX 1060 EVGA SC MiniITX - Samsung 850 Pro 256GB (OS) - Samsung 840 EVO 500GB (Install) - 3x4TB Seagate (Mix) - Fractal Node 304

Permalänk
Medlem
Skrivet av PalmiNio:

Precis, ROPen blir ett problem. Skulle vara ytterst intressant att se hur CF står sig.

Men tycker att man kan dra ganska klara slutsatser att ju mer parallellt en utvecklare kör mellan CPU och GPU på draw calls med Vulkan och DX12 ju bättre kommer AMDs CGN står sig, speciellt mot Maxwell som inte alls kan komma upp i samma nivå parallellt.

Detta inlägg förklarar det väldigt bra, även om folk gärna ville påstå att den typen av gains som AMD såg i AoS bara skulle vara i AoS:
http://www.overclock.net/t/1569897/various-ashes-of-the-singu...

"Therefore in game titles which rely heavily on Parallelism, likely most DirectX 12 titles, AMD GCN 1.1/1.2 should do very well provided they do not hit a Geometry or Rasterizer Operator bottleneck before nVIDIA hits their Draw Call/Parallelism bottleneck. The picture bellow highlights the Draw Call/Parallelism superioty of GCN 1.1/1.2 over Maxwell 2:"

Man kan komma förbi ROPs begränsningen genom att använda "Primitive discard accelerator" som är en feature i 480. Tekniken utvecklades av konsoll folket som mjukvara. Innebär att man behöver inte göra en Crysis2 där tessalation pågick fast det inte syntes. Utan det som inte syns tas bort. Folk som testat funktionen i vissa scenarier säger att inget kort på marknaden kan jämföras när det används rätt. Att 480 är svagare på 4k är för det är ett mainstream kort.

Permalänk
Medlem

@CamelCase:
För några år sedan såg det ut så här:
http://www.anandtech.com/show/4061/amds-radeon-hd-6970-radeon...
http://gamegpu.com/action-/-fps-/-tps/wolfenstein-the-new-ord... - se högre upplösningar min fps

Det hela ändrades iom lanseringen av Maxwell - 900-serien. Dispatchern i den samt en primitive discard accelerator och 4 triangles samt 16 pixels per rasterizer per och clock-cykel ger en hel del skjuts över allt. AMD OpenGL prestanda blev inte dålig över en natt så att säga. Det var bara att Nvidia slängde bort double precision och fyllde upp utrymmet med dessa egenskaper vilket resulterade i problem för AMD som bara rebrandade 200-serien till 300-serien med högre clocks. Om jag inte är helt ute och cyklar förstås...

Edit: Blandade ihop Maxwell och Kepler, Maxwell är 16 pixels per raster varav varje SM ger 4/2 (int8/fp16) pixels/clock, Kepler är 8 per raster med samma förhållande för SM - om jag fått rätt information...

Permalänk
Medlem

Doom får stöd för Vulkan

Fick en ganska ordentlig boost med Vulkan, Gick från en fps som pendlade mellan 60-90 FPS till konstant 144FPS :). Kör med upplösningen 2560x1440 samt alla grafik inställningar på ultra. Se signatur för info om min dator.

Mvh

Permalänk
Medlem
Skrivet av Sacred:

Fick en ganska ordentlig boost med Vulkan, Gick från en fps som pendlade mellan 60-90 FPS till konstant 144FPS :). Kör med upplösningen 2560x1440 samt alla grafik inställningar på ultra. Se signatur för info om min dator.

Mvh

Låter märkligt? Kan du köra side by side svreenshots.

Låter som du haft MSAA på innan vilket är av på Vulkan.

Skickades från m.sweclockers.com

Visa signatur

Speldator: Intel i7 4770k - 16 GB DDR3 - GeForce GTX 1060 EVGA SC MiniITX - Samsung 850 Pro 256GB (OS) - Samsung 840 EVO 500GB (Install) - 3x4TB Seagate (Mix) - Fractal Node 304

Permalänk
Inaktiv

Råkade se denna nu i eftermiddag, Kepler-korten hänger inte med alls. Känns verkligen som att jag valde rätt kort för 2,5 år sedan:

Nu är exemplet extremt men kanske något vi ser mer av framöver. Min R9 290 lär användas i ett par år framöver som det ser ut hitills.

Permalänk
Medlem
Skrivet av anon5930:

Råkade se denna nu i eftermiddag, Kepler-korten hänger inte med alls. Känns verkligen som att jag valde rätt kort för 2,5 år sedan:

http://gamegpu.com/images/stories/Test_GPU/Action/DOOM/test/vulkan/doom_1920_v.jpg

Nu är exemplet extremt men kanske något vi ser mer av framöver. Min R9 290 lär användas i ett par år framöver som det ser ut hitills.

Keppler kan bara jobba seriellt så det är ganska enkelt förklarat

Skickades från m.sweclockers.com

Visa signatur

Speldator: Intel i7 4770k - 16 GB DDR3 - GeForce GTX 1060 EVGA SC MiniITX - Samsung 850 Pro 256GB (OS) - Samsung 840 EVO 500GB (Install) - 3x4TB Seagate (Mix) - Fractal Node 304

Permalänk

Det går inte att "komma runt" ROP:ar

@dahippo: ROP:ar ligger sist i pipelinen de skriver direkt till framebuffern, primitive discard görs tidigt innan texturer läggs på. De har inget direkt samband.

Det enda som kan hjälpa output från ROP:ar är högre klocka eller fler ROP:ar.

Permalänk
Medlem

@PalmiNio: Får ta tillbaka mitt påstående, av nån anledning så verkar skärmens "inbyggda" fps mätare låsa fast sig på 144 när skiftar över till vulcan :S, satte igång spelets egna fps mätare och då pendlade fps mellan 60-100 :/. Så det var inte så mycket till ökning. angående inställningar så kör jag allt på ultra samt Anti-aliasing inställt på TSSA [8TX].

Mvh

Permalänk
Datavetare
Skrivet av PalmiNio:

Det jag läst från GDC är bara att man på konsol kommit längre på konsol med använding av Async Compute, vilket inte bör mixas med att det "bara" fungerar på konsol.

Att man kommit längre där är såklart ganska givet då Sony och MS troligen jobbat aktivt med en del utvalda studios redan innan maskinerna släpptes 2013/2014 vilket är år före APIer på PC har kunnat prestera detta.

Så om man lyckas klämma ut 30% på konsol (quoted från Oxide devs) så finns det såklart möjligheter att nå bra bit över 10% på PC när välk verktyg och utvecklare har mognat med standarden.

Du har såklart rätt att med svåra verktyg och liten kunskap så är det såklart en fråga om hur mycket tid man ska lägga på det. Men ett sådant faktum kan man inte räkna som en konstant utan får ta det som ett faktum just här och nu, inget som kommer stå sig med tiden.

Sen är det såklart ett dilemma för en del utvecklare att den tillverkare som har mest kort på marknaden, nVidia, inte rimmar bra med DX12 vilket gör att man kanske inte kan lägga fullt fokus på det då Maxwell serien är så populär.

Hade jag haft en Jaguar/Atom hemma hade jag gärna testat men som sagt, med CPU lika så vi ändå en större vinst på AMD mot nVidia vad gäller flytten till Vulkan eller DX12, så uppenbarligen klarar AMD korten med sin ACE struktur av att jobba effektivare med en flerkärnig CPU.

Du har rätt i ditt påstående att nVidia korten ser mest vinst i låga upplösningar med Vulkan (i alla fall Pascal och 1080 korten), så där ser man uppenbarligen CPU avlatsningen.

Men det förklarar inte varför (utan AC) AMD kort ser sån boost över hela plan. Både på 1080p och 1440p så ser vi 30% ökning, Maxwell ser vi 0% och på Pascal är det 15% vs 5,5%.

Så uppenbarligen kan man inte lägga allt till att bara CPUn blir mindre belastad utan även att med rätt arkitektur på grafikkortet så blir det bättre samspel överlag.

Oavsett vad, time will tell - sooner or later, time will tell.

För de som genuint är intresserad av att förstå varför Maxwell inte alls skalar med en typiskt gaming PC CPU rekommenderar jag att man läser detta: Nvidias DX12 Do's And Don'ts och även t.ex. denna presentation från AMD, notera specifikt sidan 6.

Nvidia har plöjt ner enorma resurser i sin DX11 drivare, specifikt har man detta

"On DX11 the driver does farm off asynchronous tasks to driver worker threads where possible – this doesn’t happen anymore under DX12"

något som AMD saknar, där kör driverkoden i praktiken helt på det man kallar "rendering thread" i DX11/OpenGL. Nvidia blir därför CPU-bundna långt senare då redan deras DX11/OpenGL drivare kan utnyttja flera CPU-trådar "under huven". Då DX11 inte alls är designat för detta krävs handpåläggning i var enda titel för att detta ska fungera bra, något som kräver enorma resurser.

Men det är fel att tolka Maxwells brist på skalning som att den är dålig på DX12, grejen är att den är extremt bra i DX11. Tänk på att sett till rå beräkningskraft är det extremt jämt skägg mellan 970 och 380 samt mellan 980 Ti och 390/480, men inte riktigt dessa kort som striden står mellan i praktiken.

HardOCP har gjort ett test med en i7-5960X nerklockat till 1,2 GHz. Två saker man ska titta på här, dels att Nvidia faktiskt kan använda en del extra kärnor redan i DX11 och 980 Ti är därför ~80 % snabbare än Fury X i Ashes of the Singularit @ 1,2 GHz. Båda GPUerna får en rejäl boost av DX12 (och 980 Ti är Maxwell...) och hamnar på mer eller mindre identiskt resultat.

Jag vet inte hur jag skulle kunna "bevisa" det jag hävdar mer tydligt än så här. Har i.o.f.s. en 8-kärnors Atom-server @ 2,4 GHz på jobbet, kanske kolla om man får låna hem den och stoppa i lite olika grafikkort för att testa t.ex. Doom

Och visst har konsolerna kommit längre. Men även här vet jag inte hur jag tydligare kan peka på elefanten i rummet: PS4 och XBO är typiskt CPU-bundna i spel och majoriteten av vinsten man får av "async compute" där kommer från att man avlastar det som är flaskhals, d.v.s. CPU-delen.

Gaming PCs är inte ens nära att vara CPU-bundna. För att göra en liten mellan tummen och pekfingret kan man jämföra flyttalsprestanda mellan CPU-delen i PS4 med en oklockad i7-6700K, det är 77 GFLOPS mot 512 GFLOPS. D.v.s det skiljer en faktor 6,6 i beräkningskapacitet. På PC är det mer intressant att göra det omvända, flytta en del GPU-jobb till CPU-delen, Intel är väldigt intresserade kring detta då det skulle höja vill-ha faktorn på E-serien rejält bland gamers. Föga oväntat har just Intel jobbat en del på detta.

I korthet: PC-system kan i dagsläge inte få samma boost av async compute som konsoler då en av huvudnumren som konsolerna använder inte är relevant på PC. Det sagt så kan man i framtiden mycket väl komma högre med denna teknik än vad man ser idag, men om inget radikalt ändras kommer man aldrig i närheten av dagens konsoler (i hur mycket boost "async compute" ger).

Och visar inte videon jag åter-länkande ovan, @kelthar postade länken först i tråden, att det stora lyftet på 480 kommer när man går från OpenGL till Vulkan utan async compute. Det är absolut <10 % extra i genomsnitt när man sedan lägger på async compute. Så ser liksom inte var jag har haft fel i mina uttalanden, men peka gärna ut dem och allra helst genom en länk till en artikel eller annan förklaring så man kan lära sig något nytt!!!

Skrivet av Kraeshok:

@Yoshman:
Har du läst computerbase.de artikel om Doom och Vulkan?
Att RX 480 inte ser någon ändring i 4k är ganska enkelt förklarat med antal ROP:s 32st och peak pixel fill rate, Fury X som annars ser 66% förbättring i 1080p och 52% i 1440p ser endast 11% förbätting i 4k. RX 480 kan helt enkelt inte pusha mera pixels och samma händer för Fury X i 4k - ROP antalet och pixels per clock gör att det inte når högre FPS, finns inte flera pixlar att pusha genom till CU's?

https://www.computerbase.de/2016-07/doom-vulkan-benchmarks-am...

Gamersnexus siffror är med async off då de kör med FXAA. Osäker på om Computerbase och Gamersnexus använder ungefär samma område för benchmarking, om så är fallet är utslaget påslaget async ca 10 fps/9% ökning. TSSAA kontra FXAA är inget jag har koll på idag angående belastningsgrad. Async kanske ger lite mer men som äts upp lite av TSSAA? Lite trist bara att Computerbase inte har ett Nv 1080 med i sitt test och att Nvidia inte fått sin version av Async Compute redo till Vulkan patchen. Men, vi ser nog den jämförelsen inom några månader får vi hoppas...

Har inte läst, men +1 för tipset och ska absolut läsa detta under kvällen!

I de mätningar Gamersnexus gjort ser ju trots allt FX480 en förbättring och precis som SMT kan ge en klar boost i lägen där man är begränsad av t.ex. minnesbandbredd så nämner Oxide i artikeln jag länkade ovan att ett fall där "async shaders" kan ge en boost är när en av jobben är VRAM-begränsade, ypperligt tillfälle att kombinera med något med hög datalokalitet som då inte stressar VRAM. 480 lär precis som du skriver vara kraftigt bandbreddsbegränsat i 4k.

Däremot hjälper det inte i detta fall

"The RX 480 is completely unplayable [in 4k] – as one might expect – but still produces a consistent scaling of 24.7% AVG FPS increase."

Om man inte använder "async compute" alls i Gamersnexus mätningar undrar man ju lite vad skalningen kommer av...

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Medlem

Inväntar stöd för Ubuntu, sedan köper jag på direkten...

Men tummen upp för Vulkan!

Skickades från m.sweclockers.com

Visa signatur

Nybörjare på Linux? Se hit! #15665841

Permalänk
Datavetare
Skrivet av kelthar:

Detta är ju inte särskillt konstigt. När man tar bort fler lager av abstraktion och kommer närmare hårdvaran så öppnas nya möjligheter. Då kan man komma åt funktioner på korten som man tidigare inte kunde komma åt. Det är ju helt naturligt. Eftersom AMD dominerar konsolvärlden, för att de har överlägsna GPU:er under de förutsättningarna, så är det inte konstigt att de tar med sig sina bästa koncept över till PC. Det kallar jag för utveckling. Abstraktionslager ger standarder, men kan också förhindra innovation.

Det skulle kanske bli så att vissa spel blir mycket slöare på en viss sorts kort, men det är väl inte något nytt? GameWorks är exakt det, i annan förpackning, på en annan nivå. Och om AMD kan kontra genom att göra något liknande mot Nvidia så säger jag: Gör det! GameWorks påverkar inte AMD lika mycket längre, det var framför allt tesseleringen som kissade på AMDs kort. Om AMD kan få ett försprång genom att göra detta så tycker jag att de ska göra det. Nvidia försöker utrota AMD och de behöver göra det som de behöver för att hålla sig kvar. Viva la kapitalism. Nvidia kommer definitivt fortsätta att göra så som de gör, så jag tycker inte att det skulle vara "ett svar" som du säger. Bara en fortsättning...

Edit: Det är ju knappast så att det redan inte finns olika renderpaths baserade på vilken leverantör och i många fall t.o.m beroende på vilket kort som sitter i maskinen. Ett exempel är 970, 3.5GB-versionen.

Som jag redan påpekat, anser att både AMD med "Shader Instrinsic Functions" och Nvidia med Gameworks aggregerar precis som de rimligen borde givet att båda är börsnoterade företag och är direkta konkurrenter mot varandra. Tror däremot inte att PC-spelbranschen gynnas av en eventuell splittring i AMD och Nvidia specifika tillägg utanför DirectX standaren då det drar upp kostnaden.

På ett filosofiskt plan är det också intressant att det var ett sådant herrans liv om Gameworks, en teknik som helt ligger ovanpå DX-standardfunktioner och undantaget Hairworks (som inte borde vara ett problem på GCN4) faktisk presterar riktigt bra även på GCN (t.ex. FXAA, HBAO+, Waveworks).

Men sedan är det alltså helt OK när AMD pushar för "shader instrinsic functions" där huvudsyftet är att gå utanför etablerad standard. Även för AMD är ju detta ett problem då man gräver fast sig i den ISA GCN använder, att göra en övergång likt den man gjorde från VLIV5 till VLIV4 till GCN är blir en lågt högre tröskel om "shader instrinsic functions" rejält tar fart. För Nvidias del lär det ju finnas en del resurser att routa om från DX11 drivare till att hacka "shader instrinsic functions", så lär knappast gå någon nöd på dem.

Framförallt är detta intressant just nu när det börjar dyka upp titlar med DX12/Vulkan. En annan av huvudpunkterna med dessa APIer är att de erbjuder en långt bättre abstraktion av hur moderna GPUer faktiskt ser ut. Man har en abstraktion just för att kunna gömma implementationsdetaljer och om abstraktionen är bra (vilket rimligen både Vulkan och DX12 är i detta läge då de är helt nya) så ger abstraktionen inget relevant påslag på kostnad.

Angående det sista så är det drivers som hanterar en sådan sak som 3,5+0,5 GB poolen i 970, så i DX11/OpenGL behöver applikationer överhuvudtaget inte bry sig. För DX12 och Vulkan är det något som måste hanteras explicit, men det blir då en extra minnespool över de två som redan är ett krav för alla kort. Måste finns ett "device local" som typiskt är VRAM om det inte är en iGPU, samt ett som är "host-visible" & "host-coherent" som i praktiken alltid är reserverat "vanligt" RAM som.

970 är inte den enda GPUn som har flera pooler. Intels iGPUer har alla en extra pool då det går att explicit hantera CPUns L3-cache. Iris Pro på Broadwell lär ha två extra pooler då även L4-cachen kan hanteras explicit, dock är den "osynlig" för grafikkretsen i Skylake. Lär knappast behövas en specifik render-path bara för 970, det är en allt för liten detalj. Däremot kan det mycket väl finnas specifika optimeringar för speciella GPU-familjer.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Medlem
Skrivet av Sacred:

@PalmiNio: Får ta tillbaka mitt påstående, av nån anledning så verkar skärmens "inbyggda" fps mätare låsa fast sig på 144 när skiftar över till vulcan :S, satte igång spelets egna fps mätare och då pendlade fps mellan 60-100 :/. Så det var inte så mycket till ökning. angående inställningar så kör jag allt på ultra samt Anti-aliasing inställt på TSSA [8TX].

Mvh

Då låter det mer rimligt

Annars hade du haft en enorm ökning jämfört men alla tester

Visa signatur

Speldator: Intel i7 4770k - 16 GB DDR3 - GeForce GTX 1060 EVGA SC MiniITX - Samsung 850 Pro 256GB (OS) - Samsung 840 EVO 500GB (Install) - 3x4TB Seagate (Mix) - Fractal Node 304

Permalänk
Medlem
Skrivet av Yoshman:

För de som genuint är intresserad av att förstå varför Maxwell inte alls skalar med en typiskt gaming PC CPU rekommenderar jag att man läser detta: Nvidias DX12 Do's And Don'ts och även t.ex. denna presentation från AMD, notera specifikt sidan 6.

Nvidia har plöjt ner enorma resurser i sin DX11 drivare, specifikt har man detta

"On DX11 the driver does farm off asynchronous tasks to driver worker threads where possible – this doesn’t happen anymore under DX12"

något som AMD saknar, där kör driverkoden i praktiken helt på det man kallar "rendering thread" i DX11/OpenGL. Nvidia blir därför CPU-bundna långt senare då redan deras DX11/OpenGL drivare kan utnyttja flera CPU-trådar "under huven". Då DX11 inte alls är designat för detta krävs handpåläggning i var enda titel för att detta ska fungera bra, något som kräver enorma resurser.

Men det är fel att tolka Maxwells brist på skalning som att den är dålig på DX12, grejen är att den är extremt bra i DX11. Tänk på att sett till rå beräkningskraft är det extremt jämt skägg mellan 970 och 380 samt mellan 980 Ti och 390/480, men inte riktigt dessa kort som striden står mellan i praktiken.

HardOCP har gjort ett test med en i7-5960X nerklockat till 1,2 GHz. Två saker man ska titta på här, dels att Nvidia faktiskt kan använda en del extra kärnor redan i DX11 och 980 Ti är därför ~80 % snabbare än Fury X i Ashes of the Singularit @ 1,2 GHz. Båda GPUerna får en rejäl boost av DX12 (och 980 Ti är Maxwell...) och hamnar på mer eller mindre identiskt resultat.
http://www.hardocp.com/images/articles/14610034644x5teWArBn_4_2.png
http://www.hardocp.com/images/articles/14610034644x5teWArBn_4_5.png
Jag vet inte hur jag skulle kunna "bevisa" det jag hävdar mer tydligt än så här. Har i.o.f.s. en 8-kärnors Atom-server @ 2,4 GHz på jobbet, kanske kolla om man får låna hem den och stoppa i lite olika grafikkort för att testa t.ex. Doom

Fast det enda du bevisar är att nVidia via drivrutiner får upp prestandan genom att recomplica för att bättre passa seriell körning inom den begränsade förmåga nVidia har att köra parallellt.

Så för varje gång nVidia ska komma upp i prestanda så måste ett drivurtinsjobb göras. Antagligen därför de trycker hårt på Gameworks få då kommer saker "rätt" från början och de slipper tweaka sina drivisar lika ofta.

Nej Maxwell kanske inte är direkt dålig i DX12 utan utmärkt i DX11, det beror på hur man jobbar med "the spin of words".

Intressanta här skulle vara och jämföra hur Maxwell skalar på DX11 med i7-5960X nerklockat till 1,2 GHz mot Poralis i DX12.

Skrivet av Yoshman:

Och visst har konsolerna kommit längre. Men även här vet jag inte hur jag tydligare kan peka på elefanten i rummet: PS4 och XBO är typiskt CPU-bundna i spel och majoriteten av vinsten man får av "async compute" där kommer från att man avlastar det som är flaskhals, d.v.s. CPU-delen.

Gaming PCs är inte ens nära att vara CPU-bundna. För att göra en liten mellan tummen och pekfingret kan man jämföra flyttalsprestanda mellan CPU-delen i PS4 med en oklockad i7-6700K, det är 77 GFLOPS mot 512 GFLOPS. D.v.s det skiljer en faktor 6,6 i beräkningskapacitet. På PC är det mer intressant att göra det omvända, flytta en del GPU-jobb till CPU-delen, Intel är väldigt intresserade kring detta då det skulle höja vill-ha faktorn på E-serien rejält bland gamers. Föga oväntat har just Intel jobbat en del på detta.

I korthet: PC-system kan i dagsläge inte få samma boost av async compute som konsoler då en av huvudnumren som konsolerna använder inte är relevant på PC. Det sagt så kan man i framtiden mycket väl komma högre med denna teknik än vad man ser idag, men om inget radikalt ändras kommer man aldrig i närheten av dagens konsoler (i hur mycket boost "async compute" ger).

Och visar inte videon jag åter-länkande ovan, @kelthar postade länken först i tråden, att det stora lyftet på 480 kommer när man går från OpenGL till Vulkan utan async compute. Det är absolut <10 % extra i genomsnitt när man sedan lägger på async compute. Så ser liksom inte var jag har haft fel i mina uttalanden, men peka gärna ut dem och allra helst genom en länk till en artikel eller annan förklaring så man kan lära sig något nytt!!!

Mer att du pratar om dagsläget som en "klart och färdigt stadie". Problemet är att du inte kan isolera ut något då vi i diverse AC patchar inte vet hur AC används. Därför blir det konstigt att idag peka på PC spel som kör AC idag och säga "Där är vad vi kan förvänta oss".

Skrivet av Yoshman:

Har inte läst, men +1 för tipset och ska absolut läsa detta under kvällen!

I de mätningar Gamersnexus gjort ser ju trots allt FX480 en förbättring och precis som SMT kan ge en klar boost i lägen där man är begränsad av t.ex. minnesbandbredd så nämner Oxide i artikeln jag länkade ovan att ett fall där "async shaders" kan ge en boost är när en av jobben är VRAM-begränsade, ypperligt tillfälle att kombinera med något med hög datalokalitet som då inte stressar VRAM. 480 lär precis som du skriver vara kraftigt bandbreddsbegränsat i 4k.
http://media.gamersnexus.net/images/media/2016/game-bench/doom/vulkan/vulkan-doom-4k.png
Däremot hjälper det inte i detta fall

"The RX 480 is completely unplayable [in 4k] – as one might expect – but still produces a consistent scaling of 24.7% AVG FPS increase."

Om man inte använder "async compute" alls i Gamersnexus mätningar undrar man ju lite vad skalningen kommer av...

Vart skalningen kommer av? AMDs ACE som kan köra fler draw calls från CPUn parallellt, typ hela poängen med CGN.

Visa signatur

Speldator: Intel i7 4770k - 16 GB DDR3 - GeForce GTX 1060 EVGA SC MiniITX - Samsung 850 Pro 256GB (OS) - Samsung 840 EVO 500GB (Install) - 3x4TB Seagate (Mix) - Fractal Node 304

Permalänk
Medlem

@Yoshman:

Din julafton kommer tidigt

GTX1080 och CPU skalning i Vulkan:

http://www.purepc.pl/karty_graficzne/doom_z_api_vulkan_wybuch...

Som du sa så syns det att CPUn inte blir ett problem mer på GTX1080.

En i3:a får lika många frames ut som en i7

Skulle varit intressant att se hur detta skulle sett ut på Maxwell kort och Main stream kort.

Visa signatur

Speldator: Intel i7 4770k - 16 GB DDR3 - GeForce GTX 1060 EVGA SC MiniITX - Samsung 850 Pro 256GB (OS) - Samsung 840 EVO 500GB (Install) - 3x4TB Seagate (Mix) - Fractal Node 304

Permalänk
Datavetare
Skrivet av PalmiNio:

Mer att du pratar om dagsläget som en "klart och färdigt stadie". Problemet är att du inte kan isolera ut något då vi i diverse AC patchar inte vet hur AC används. Därför blir det konstigt att idag peka på PC spel som kör AC idag och säga "Där är vad vi kan förvänta oss".

Vet inte hur jag ska få igenom min huvudpunkt här, varför är den så svår att se?

Vad man rimligen kan förvänta sig är att PC aldrig kommer upp till samma nivå som dagens konsoler då konsolerna utnyttjar även "async compute" för att avlasta CPU-delen då det är deras främsta flaskhals.

Gaming PCs kan inte utnyttja detta då det är GPU-delen, inte CPU-delen, som är främsta flaskhals. D.v.s. det som ger den största boosten på konsoler är överhuvudtaget inte relevant på PC.

PC: flaskhals GPU
Konsol: flaskhals CPU

Är det inte glasklart vad det jag pekar på då?

Självklart kan man nå över dagens <10 %, var bl.a. just vad man mer kan göra på PC för att öka effekten av detta som diskuterades i mars under GDC.

Skrivet av PalmiNio:

Vart skalningen kommer av? AMDs ACE som kan köra fler draw calls från CPUn parallellt, typ hela poängen med CGN.

Fast enligt Kraeshok så användes inte "async compute" i de siffror Gamernexus presenterar, vilka är de jag länkar till.

Sedan nej. ACE hanterar beräkningar, inte grafik. Finns bara en grafikkö i GCN (precis som hos Pascal och Intels HD5xx). Både DX12 och Vulkan har tre huvudgrupper av "engines", grafik, compute och copy. En en copy kö är en delmängd av en compute kö som är en delmängd av en grafik.

Den största orsaken till att DX12/Vulkan skalar bättre på multi-core CPUer har inte med antal köer att göra, dessa är i stället relaterade till "async whatever" finesserna. Det som bidrar till skalningen är att DX12/Vulkan gör det möjligt att utföra långt mer av den beräkningstunga jobbet att sätta ihop den "kernel" som innehåller de kommandon man vill köra på någon av grafikkortets "engines". Läs gärna detta för att få mer inblick i hur det fungerar i DX12.

DX12 tillåter visserligen att alla trådar postar sina ID3D12GraphicsCommandList paket till grafikkön, men är nog i praktiken mer effektivt att man låter en enda tråd göra det jobbet för att undvika "cache line bouncing". Finessen i DX12/Vulkan är som sagt att den dyra delen av att komponera sin "kernel" (programmet man vill köra på GPUn) kan utföras av olika trådar för olika "kernels".

Vulkan har överhuvudtaget ingen synkronisering av sina köer, är helt upp till applikationen att säkerställa att man serialiserar access till varje kö-instans. Men även här är den dyra delen skapa det som här kallas "command buffers" (det DX12 kallar command lists) och även här kan dessa skapas helt oberoende på olika trådar. I vare sig DX12 eller Vulkan är själva GPUn involverad i skapandet av "kernels", så skalbarheten över CPU-kärnor är generellt för alla GPUer som stödjer dessa APIer. Lite mer kött på benen om man kollar sidan 18 samt läser det som börjar på sidan 49 i denna Vulkan presentation.

Att en GPU har flera köer ökar typiskt möjligheten att köra flera "kernels" parallellt, det AMD kallar "async compute" (men där man rent tekniskt specifikt menar "async compute with parallel dispatch" då även Intel HD graphics stödjer "async compute" som DX12/Vulkan definierar detta men den stödjer inte att köra "compute" parallellt med grafik).

Designen för själva DX12/Vulkan biblioteket möjliggör att kompilera olika "kernels" parallellt över flera CPU-kärnor, detta är alltså helt GPU-agnostiskt, beror enbart på DX12/Vulkan runtime samt på drivers.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Datavetare
Skrivet av PalmiNio:

@Yoshman:

Din julafton kommer tidigt

GTX1080 och CPU skalning i Vulkan:

http://www.purepc.pl/karty_graficzne/doom_z_api_vulkan_wybuch...

Som du sa så syns det att CPUn inte blir ett problem mer på GTX1080.

En i3:a får lika många frames ut som en i7

Skulle varit intressant att se hur detta skulle sett ut på Maxwell kort och Main stream kort.

Att det skalar på GTX 1080 såg vi ju redan i Gamesnexus-testerna då det blev en boost att gå till Vulkan trots att "async compute" inte används på Pascal ännu i Doom. Fast bara i låga upplösningar, men det är fallet som är sannolikast att ha någon form av CPU-flaskhals.

Håller absolut med om det sista du skriver. Skulle däremot vara intressant att se en i3 (eller ännu hellre något klenare än en Haswell i3) på Maxwell. Givet tillräckligt klen CPU kommer även Maxwell se en positiv effekt av både DX12 och Vulkan. Med normala gaming CPUer är även system med 980 Ti totalt GPU-bundna redan med DX11/OpenGL (bl.a. tack vare att drivarna där explicit sprider arbetet mellan flera CPU-kärnor).

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Medlem
Skrivet av Zoolook13:

@dahippo: ROP:ar ligger sist i pipelinen de skriver direkt till framebuffern, primitive discard görs tidigt innan texturer läggs på. De har inget direkt samband.

Det enda som kan hjälpa output från ROP:ar är högre klocka eller fler ROP:ar.

Primitive discard accelerator ligger i början för att tala om att tessalation behövs eller inte behövs. Primitive är när man använder geometri shaders. Discard delar upp primitive i grupp? eller sekvens.

Permalänk
Avstängd

@anon5930:

Dom där staplarna ser konstiga ut.

Permalänk
Avstängd

Yoshman och palmino, vad spelar det för roll om era hypoteser och teorier. Ni är slutkunder som alla andra så eran diskussion saknar värde och är helt meningslös. Att ni orkar, det är nästan skrattretande. Mina 2 öre

Permalänk
Medlem

För några månader skrev jag att 380/7970 skulle vara bättre än 780 i i nya API och fick massa flame för det Chockerande för de som äger en 780ti tom Titan http://gamegpu.com/images/stories/Test_GPU/Action/DOOM/test/v...

Permalänk
Datavetare
Skrivet av Mephiston:

Yoshman och palmino, vad spelar det för roll om era hypoteser och teorier. Ni är slutkunder som alla andra så eran diskussion saknar värde och är helt meningslös. Att ni orkar, det är nästan skrattretande. Mina 2 öre

Nu är internet ganska stort så finns ju alla möjligheter att jag totalt hamnat fel. Men är inte detta ett diskussionsforum som i detta fall handlar om att ett spel fått stöd för den teknik vår diskussion främst handlar om?

Vad anser Ni att man lämpligen avhandlar i denna tråd?

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Medlem
Skrivet av Yoshman:

Nu är internet ganska stort så finns ju alla möjligheter att jag totalt hamnat fel. Men är inte detta ett diskussionsforum som i detta fall handlar om att ett spel fått stöd för den teknik vår diskussion främst handlar om?

Vad anser Ni att man lämpligen avhandlar i denna tråd?

I alla sådana här trådar på teknikforum dyker det alltid upp troll som störs av att deras rena databas för perfekta köpråd smutsas ner ...
Dom har antagligen inte ens reflekterat över termen "diskussionsforum". Shame on them

Visa signatur

|| R9 7950X MSI PRO X670-P WIFI 32GB-DDR5-6400c32 MSI RTX4080 Ventus 3X OC || CORE i9 12900KF MSI Z690 Tomahawk WIFI DDR4 32GB-3600c16 Gear1 TUF RTX3080 OC V2 || R7 5800X3D X570S CH8 Extreme 32GB-3800c18 Gigabyte RTX3080 GAMING OC || R9 5900X(B2) B550-F 32GB-3800c18 EVGA RTX3070 FTW Ultra || R9 3900X X470-Prime Pro 32GB-3200c16 MSI RTX2070 Super ||

Permalänk
Avstängd

@Yoshman:

Du har helt rätt. Diskutera och filosofera, var lite negativ.

Permalänk
Medlem
Skrivet av Yoshman:

Vet inte hur jag ska få igenom min huvudpunkt här, varför är den så svår att se?

Vad man rimligen kan förvänta sig är att PC aldrig kommer upp till samma nivå som dagens konsoler då konsolerna utnyttjar även "async compute" för att avlasta CPU-delen då det är deras främsta flaskhals.

Gaming PCs kan inte utnyttja detta då det är GPU-delen, inte CPU-delen, som är främsta flaskhals. D.v.s. det som ger den största boosten på konsoler är överhuvudtaget inte relevant på PC.

PC: flaskhals GPU
Konsol: flaskhals CPU

Är det inte glasklart vad det jag pekar på då?

Självklart kan man nå över dagens <10 %, var bl.a. just vad man mer kan göra på PC för att öka effekten av detta som diskuterades i mars under GDC.

Nej samma nivå är inte frågan men när folk pratar ner AC och vi redan ser 10% gain så blir man konfunderad. Hade nVidia eller AMD släppt en drivrutin som gav 10% gain så skulle det vara hyllat, nu när vi redan idag ser 10% (in best of cases) så pratar foilk som det är inget väsentligt.

Sen som sagt så vet vi inte vad som är aktiverat idag i dagens AC switchar i spel. Kan vara så att en del redan finns utanför AC switchen, typ köa upp i Copy que, och därför blir det svårt att isolera vad dagen effekt är.

Ok, låt oss säga att jag är mer positiv om vad AC kommer ge PC

Men såklart, du har inte fel i sak om konsol vs PC.

Skrivet av Yoshman:

Fast enligt Kraeshok så användes inte "async compute" i de siffror Gamernexus presenterar, vilka är de jag länkar till.

Sedan nej. ACE hanterar beräkningar, inte grafik. Finns bara en grafikkö i GCN (precis som hos Pascal och Intels HD5xx). Både DX12 och Vulkan har tre huvudgrupper av "engines", grafik, compute och copy. En en copy kö är en delmängd av en compute kö som är en delmängd av en grafik.

Fast det är till stor del motsägelsefullt då du sen säger att Compute är en del av Grafiken. ACE används flitigt för att ta emot och dela ut tasks till CUs och det är därför GCN har lyckats så bra i parallella syften där ACE står för dels fördelningen av resurserna, prioriteringarna, och switchningarna. Det är också tack vare ACE som tasks inte behöver tugga i väntan på att andra tasks blir klara utan de kan göras async. Detta kan, som du säger, användas för en del saker en CPU gör men idag finns det gått om uträkningar som ska göras parallellt med graphic ques där uppenbarligen ACE gör ett fenomenalt jobb.

Kort och gott gör ACE i DX12 och Vulkan det som nVidia gör med drivrutiner i DX11, fördelar jobbet. Det är tack vare ACE strukturen som GCN är i Tier 3 och Maxwell i Tier 2:
https://msdn.microsoft.com/en-us/library/dn899127(v=vs.85).as...

Skrivet av Yoshman:

Den största orsaken till att DX12/Vulkan skalar bättre på multi-core CPUer har inte med antal köer att göra, dessa är i stället relaterade till "async whatever" finesserna. Det som bidrar till skalningen är att DX12/Vulkan gör det möjligt att utföra långt mer av den beräkningstunga jobbet att sätta ihop den "kernel" som innehåller de kommandon man vill köra på någon av grafikkortets "engines". Läs gärna detta för att få mer inblick i hur det fungerar i DX12.

Nej, ACEär med och tar emot kommandona och delar ut den till CU (grafikkortet engines). Det är uppsättningen ACE + GPC som ser till att kommandona fördelas ut, hållas koll på och prioriteras till CU. CU gör bara beräkningarna men har absolut noll koll varför den gör det eller riktigt vad den räknar. Man måste se det som att typ lägga pussel, CPU skickar kommandon hur varje bit ska ligga samtidigt (parallellt) och ACE prioriterar upp hur man gör det effektivt och just parallellt. Typ börja med kanterna på pusslet (Prioritera), en del CU ska organisera bitar och en del ska lägga bitar (Fördelningen). Varje individuell CU jobbar men det vet inte med vad, det är ACE som vet att CPUn vill ha ett färdigt pussel i slutändan när det når pipen.

Allt måste köas, oavsett vad det handlar om så det är ganska självklart att hur köer hanteras och hur många köer som kan hanteras är ganska vitalt.

Det du länkar till bekräftar det. Poängen men DX12 är också att du flyttar över "kontrollen" av vad Draw Calls ska leda till från CPU/Drivrutiner till GPUn, men någon på andra sidan måste fortfarande lösa biffen.

Lite om hur Compute kan användas/användas för maximera pipen bättre finns här:
http://www.slideshare.net/gwihlidal/optimizing-the-graphics-p...

Det är också därför du ser direkta gains på CGN med de nya APIerna mot DX11, gains som inte nVidia får. nVidia har som sagt använt Drivurtiner och extra CPU trådar för att recompila jobben till sina "engines".

Skrivet av Yoshman:

DX12 tillåter visserligen att alla trådar postar sina ID3D12GraphicsCommandList paket till grafikkön, men är nog i praktiken mer effektivt att man låter en enda tråd göra det jobbet för att undvika "cache line bouncing". Finessen i DX12/Vulkan är som sagt att den dyra delen av att komponera sin "kernel" (programmet man vill köra på GPUn) kan utföras av olika trådar för olika "kernels".

Vulkan har överhuvudtaget ingen synkronisering av sina köer, är helt upp till applikationen att säkerställa att man serialiserar access till varje kö-instans. Men även här är den dyra delen skapa det som här kallas "command buffers" (det DX12 kallar command lists) och även här kan dessa skapas helt oberoende på olika trådar. I vare sig DX12 eller Vulkan är själva GPUn involverad i skapandet av "kernels", så skalbarheten över CPU-kärnor är generellt för alla GPUer som stödjer dessa APIer. Lite mer kött på benen om man kollar sidan 18 samt läser det som börjar på sidan 49 i denna Vulkan presentation.

Att en GPU har flera köer ökar typiskt möjligheten att köra flera "kernels" parallellt, det AMD kallar "async compute" (men där man rent tekniskt specifikt menar "async compute with parallel dispatch" då även Intel HD graphics stödjer "async compute" som DX12/Vulkan definierar detta men den stödjer inte att köra "compute" parallellt med grafik).

Designen för själva DX12/Vulkan biblioteket möjliggör att kompilera olika "kernels" parallellt över flera CPU-kärnor, detta är alltså helt GPU-agnostiskt, beror enbart på DX12/Vulkan runtime samt på drivers.

Still, ACE är med i jobbet att fördela ut, prioritera, omprioritera och resursfördela dessa kommandon till CUs. Så ja det är helt rätt men ja det är till stor del tack vare hur CGN jobbar med ACE.

Det enda jag har sagt hela tiden är att ACE är med för att se till att GPUn kan jobba med parallella tasks och är med och hanterar vad som går in i CU delen. Det du nämner om och om ovanför är bara bekräftelser men jag får känslan av att du tror CPUn skickar direkt till CU och ACE ligger "vid sidan om"?

Visa signatur

Speldator: Intel i7 4770k - 16 GB DDR3 - GeForce GTX 1060 EVGA SC MiniITX - Samsung 850 Pro 256GB (OS) - Samsung 840 EVO 500GB (Install) - 3x4TB Seagate (Mix) - Fractal Node 304

Permalänk
Medlem
Skrivet av Mephiston:

Yoshman och palmino, vad spelar det för roll om era hypoteser och teorier. Ni är slutkunder som alla andra så eran diskussion saknar värde och är helt meningslös. Att ni orkar, det är nästan skrattretande. Mina 2 öre

Tycker själv det är ganska givande och har hellre en ingående omgång med Yoshman om hur moderna APIer jobbar än att posta:

"Bara nördar spelar Doom därför är Vulkan skit"

Visa signatur

Speldator: Intel i7 4770k - 16 GB DDR3 - GeForce GTX 1060 EVGA SC MiniITX - Samsung 850 Pro 256GB (OS) - Samsung 840 EVO 500GB (Install) - 3x4TB Seagate (Mix) - Fractal Node 304

Permalänk
Datavetare
Skrivet av PalmiNio:

Nej samma nivå är inte frågan men när folk pratar ner AC och vi redan ser 10% gain så blir man konfunderad. Hade nVidia eller AMD släppt en drivrutin som gav 10% gain så skulle det vara hyllat, nu när vi redan idag ser 10% (in best of cases) så pratar foilk som det är inget väsentligt.

Sen som sagt så vet vi inte vad som är aktiverat idag i dagens AC switchar i spel. Kan vara så att en del redan finns utanför AC switchen, typ köa upp i Copy que, och därför blir det svårt att isolera vad dagen effekt är.

Ok, låt oss säga att jag är mer positiv om vad AC kommer ge PC

Men såklart, du har inte fel i sak om konsol vs PC.

Fast det är till stor del motsägelsefullt då du sen säger att Compute är en del av Grafiken. ACE används flitigt för att ta emot och dela ut tasks till CUs och det är därför GCN har lyckats så bra i parallella syften där ACE står för dels fördelningen av resurserna, prioriteringarna, och switchningarna. Det är också tack vare ACE som tasks inte behöver tugga i väntan på att andra tasks blir klara utan de kan göras async. Detta kan, som du säger, användas för en del saker en CPU gör men idag finns det gått om uträkningar som ska göras parallellt med graphic ques där uppenbarligen ACE gör ett fenomenalt jobb.

Kort och gott gör ACE i DX12 och Vulkan det som nVidia gör med drivrutiner i DX11, fördelar jobbet. Det är tack vare ACE strukturen som GCN är i Tier 3 och Maxwell i Tier 2:
https://msdn.microsoft.com/en-us/library/dn899127(v=vs.85).as...

Nej, ACEär med och tar emot kommandona och delar ut den till CU (grafikkortet engines). Det är uppsättningen ACE + GPC som ser till att kommandona fördelas ut, hållas koll på och prioriteras till CU. CU gör bara beräkningarna men har absolut noll koll varför den gör det eller riktigt vad den räknar. Man måste se det som att typ lägga pussel, CPU skickar kommandon hur varje bit ska ligga samtidigt (parallellt) och ACE prioriterar upp hur man gör det effektivt och just parallellt. Typ börja med kanterna på pusslet (Prioritera), en del CU ska organisera bitar och en del ska lägga bitar (Fördelningen). Varje individuell CU jobbar men det vet inte med vad, det är ACE som vet att CPUn vill ha ett färdigt pussel i slutändan när det når pipen.

Allt måste köas, oavsett vad det handlar om så det är ganska självklart att hur köer hanteras och hur många köer som kan hanteras är ganska vitalt.

Det du länkar till bekräftar det. Poängen men DX12 är också att du flyttar över "kontrollen" av vad Draw Calls ska leda till från CPU/Drivrutiner till GPUn, men någon på andra sidan måste fortfarande lösa biffen.

Lite om hur Compute kan användas/användas för maximera pipen bättre finns här:
http://www.slideshare.net/gwihlidal/optimizing-the-graphics-p...

Det är också därför du ser direkta gains på CGN med de nya APIerna mot DX11, gains som inte nVidia får. nVidia har som sagt använt Drivurtiner och extra CPU trådar för att recompila jobben till sina "engines".

Still, ACE är med i jobbet att fördela ut, prioritera, omprioritera och resursfördela dessa kommandon till CUs. Så ja det är helt rätt men ja det är till stor del tack vare hur CGN jobbar med ACE.

Det enda jag har sagt hela tiden är att ACE är med för att se till att GPUn kan jobba med parallella tasks och är med och hanterar vad som går in i CU delen. Det du nämner om och om ovanför är bara bekräftelser men jag får känslan av att du tror CPUn skickar direkt till CU och ACE ligger "vid sidan om"?

I så fall har AMD fel i sitt whitepaper om GCN

"The ACEs can operate in parallel with the graphics command processor and two DMA engines.
The graphics command processor handles graphics queues, the ACEs handle compute queues, and the DMA engines handle copy queues. "

Noter singularis på "graphics command processor" och att man hävdar att ACE hanterar "compute queues". I både DX12 och Vulkan kan "compute queues" endast utföra en delmängd av vad grafikkön kan.

Vad jag fått för mig både genom detta whitepaper och från dokumentationen av DX12 samt Vulkan är att man kan ha flera köer för generella beräkningar och minnesoperationer men det är alltid en kö för grafik. Att sedan DX12/Vulkan kan hantera långt fler "draw-calls" än DX11/OpenGL beror just på att processen att paketera och optimera varje kommandolista till en körbar binär (en "kernel") är relativt beräkningstungt men är i DX12/Vulkan ett jobb som helt kan färdigställas parallellt på flera trådar för oberoende jobb medan designen av DX11/OpenGL krävde att en väsentligt del av jobbet färdigställdes i renderingstråden.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Datavetare
Skrivet av PalmiNio:

Nej samma nivå är inte frågan men när folk pratar ner AC och vi redan ser 10% gain så blir man konfunderad. Hade nVidia eller AMD släppt en drivrutin som gav 10% gain så skulle det vara hyllat, nu när vi redan idag ser 10% (in best of cases) så pratar foilk som det är inget väsentligt.

Sen som sagt så vet vi inte vad som är aktiverat idag i dagens AC switchar i spel. Kan vara så att en del redan finns utanför AC switchen, typ köa upp i Copy que, och därför blir det svårt att isolera vad dagen effekt är.

Ok, låt oss säga att jag är mer positiv om vad AC kommer ge PC

Men såklart, du har inte fel i sak om konsol vs PC.

Missade helt att svara på detta.

Vem i denna tråd har pratat ner "async compute"? Min invändning i första posten (som var ett svar på ett inlägg jag gissar var adresserat bl.a. till mig, brukar annars sällan kommentera i speltrådar) var mot att AC skulle vara huvudanledningen till varför AMDs kort ser en sådan boost med Vulkan. YouTube videon som postas i tråden visar rimligen med all tänkbar tydlighet att den stora vinsten erhålls när man går från OpenGL till Vulkan utan AC. Förklaringen är att AMD-korten underpresterar relativt Nvidia i OpenGL, en nackdel som försvinner i Vulkan tack vare dess "low overhead" design (drivers har helt enkelt mycket mindre påverkan på prestanda).

Lägger man sedan till AC visar YouTube-videon att man får en liten boost till, men den är inte i närheten lika stor som byte av API/runtime ger. Boosten verkar vara ungefär som tidigare DX12 titlar, d.v.s. < 10%. En ökning är alltid positivt och kan inte se att någon i denna tråd hävdar annorlunda. Men 10 % är kanske inte heller något att bli allt för upphetsad över, det är trots allt ungefär den skillnad som finns mellan Maxwell referens och korten med eftermarknadskylare (och då får man den boosten i alla titlar bara de är GPU-bundna).

Så på PC ger AC ett trevligt tillskott, men det är inte den viktigaste fördelen med DX12/Vulkan. Det är i stället deras "low overhead" design.

För konsolerna är däremot AC absolut något man måste lyfta fram, begriper inte riktigt varför en del verkar tolka detta som en diss av tekniken på PC i stället för vad det borde vara: en finess som absolut är viktig på enheter där CPU-delen är flaskhals! På PC råkar det förhålla sig så att CPU-delen inte ens är nära att vara flaskhals när man använder DX12/Vulkan, som konsekvens av detta blir effekten av AC mindre.

Och har aldrig sagt att AC är dömt att stanna under 10 % boost på PC, däremot kan man med 100 % säkerhet säga att så länge konsolerna är CPU-bundna och PC GPU-bundna kommer effekten alltid vara väsentligt större på konsol.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer