Premiär! Fyndchans i SweClockers Månadens Drop

Id Software förklarar valet av OpenGL/Vulkan

Permalänk
Medlem
Skrivet av Christley:

kanske för att creation engine är typ 7-8 år gammal.
sen är nästa elder scrolls flera år tills vi ser, då kanske inte ens vulkan är de bättre valet längre

Creation Engine är byggd på Gamebryo som användes reddan i morrowind från 2002.

Permalänk
Inaktiv
Skrivet av Zidious G:

Bars jag som fick avsevärt sämre prestanda med Vulkan? Från cirka 60 fps till 20-30.

Skickades från m.sweclockers.com

Det är inte helt problemfritt, en del kan inte ens starta spelet med Vulkan-API:t aktiverat vad jag förstått.

För mig med mitt R9 290 så är det problemfritt och bättre än under OpenGL exempelvis.

Skrivet av Sisyfos:

Det är klart men Windows 7/8.1 har fortfarande flera viktiga år kvar på marknaden.
Flera än hälften av alla spelare på Steam kör ju inte Windows 10 till exempel.

Det är klart att många av dessa är casual spelare som spelar CS:GO/Dota 2 men det visar ändå på hur många som fortfarande inte har tillgång till DirectX 12.
Jag tror Id Software gjorde rätt val med OpenGL/Vulkan med Doom.

Vill de använda ny mjukvara som kräver nyare operativsystem så kommer de behöva byta. Men än så länge är det ju fortfarande mestadels DX 11-titlar som dyker upp så då klarar de sig ändå rätt okej förstås.

Permalänk
Datavetare
Skrivet av loevet:

@ClintBeastwood: Det blir i så fall samma sak som det är idag med DirectX. Utvecklare/utgivare kan sluta avtal med en hårdvaruleverantör och optimera specifikt för denna, oavsett om det är DirectX eller OpenGL/Vulkan som används.

Gissar att kommentaren var riktad mer mot detta

"Det kan utökas funktionsmässigt av utvecklare och det är dessutom inte lika kontrollerande för hur vissa grafikanrop får göras."

En stor filosofisk skillnad mellan DirectX och OpenGL är den att OpenGL tillåter leverantörsspecifika utökningar. Det närmaste DirectX har är "feature levels" (tidigare shader models/profiles).

Skillnaden ligger alltså i att DX definierar en basnivå, för att stödja DX12 måste kretsen implementera DX12 APIet till minst "feature level 11.0". Inom DX finns sedan ett par frivilla utökningar, just nu i form av FL 11.1, 12.0 och 12.1. Men dessa utökningar är helt definierade inom ramen för DX12 och alltså inte leverantörsspecifika utökningar.

OpenGL har ett system för helt leverantörsspecifika utökningar, AMD, Nvidia och även Intel har genom åren lagt till en rad sådana. Vissa av dessa utökningar har i senare OpenGL versioner städas upp lite (så de fungerar vettigt på flera GPU-arkitekturer) och stoppas in standaren. I kontext av DX12/Vulkan är ett bra sådant exempel de utökningar som går under namnet "bindless resources" som både Nvidia och AMD jobbat med.

Modellen för hur man allokerar och binder resurser till "draw-calls" i DX12/Vulkan är precis den modell man tack vare OpenGLs system med utökningar kunnat testa redan sedan 2009. Detta är också en viktig del i "low-overhead" delen i DX12/Vulkan.

Tror Vulkan har samma modell som OpenGL just på den här punkten. Fördelen är som sagt att det ger en plattform att testa nya saker. Den uppenbara nackdelen är att det i OpenGLs fall fått olika implementationer att spreta en hel del och minsta gemensamma nämnare har tyvärr hamnat långt efter motsvarande i DX. Fördelen med DX modellen är just en mindre variation mellan implementationer samt typiskt större sannolikhet att spel kunnat använda de nya finesser som definierats i valbara "feature levels" då AMD, Nvidia och Intel typiskt implementerat högsta feature level inom något år efter att den specificerats av Microsoft.

Har redan postas minst en länk som bra förklarar problemen med OpenGL på senare tid, här är en till sådan länk som sammanfattar problem väldigt väl. Förhoppningsvis blir Vulkan den nystart som behövs för att ett öppet 3D API ska lyckas. Tyvärr ser det lite mörkt ut då Apple, som tidigare var en ivrig påhejare av OpenGL, nu helt verkar köra på deras egna Metal vilket betyder att den största mobilplattformen just nu, iOS, inte kommer stödja Vulkan inom överskådligt framtid. Android stödjer i alla fall Vulkan och det är ett väldigt viktigt draglok för tekniken!

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

Jag skulle vilja se nästa Elder Scrolls spelet med Vulkan. Ni får gärna fixa så att Skyrim också får stöd genom en patch

Visa signatur

Coca Cola missbrukare Förbjuden dryck för mig pga diabetes
AMD älskare
Katt älskare

Permalänk
Datavetare
Skrivet av Zidious G:

Bars jag som fick avsevärt sämre prestanda med Vulkan? Från cirka 60 fps till 20-30.

Nackdelen med "low-level" APIer är att mycket av detaljerna som tidigare endast berörde de som skrev drivare nu hamnar i knät hos spelutvecklarna.

AMD har en riktigt bra presentation kring vilka problem utvecklar stött på så här långt när de jobbar med Vulkan. Det problem du ser är ett fall av detta

Citat:

Top level observations:
‒ Vulkan is demanding to use, both app-side and time-wise.
‒ If an app works with GPU A, it doesn’t have to hold for GPU B.

Detta är inte specifikt till Vulkan, nästan allt som står i den presentationen gäller även för DX12.

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 FBGKimpan:

Inte för nVidia ägare Om något vill de som har nVidia kort / aktier att man INTE ska använda Vulkan eftersom att de suger så extremt mycket där.

Skitsnack, anledningen till att AMD skalar så otroligt mycket bättre med Vulcan gentemot nVidia är för att AMDs OpenGL implementation varit kass med många bottlenecks.
nVidia står helhjärtat bakom Vulcan och lanserade t.om support för det före AMD.

Visa signatur

[i]Those who don't understand UNIX are condemned to reinvent it, poorly. – Henry Spencer [/i]
[i]“Programmers are in a race with the Universe to create bigger and better idiot-proof programs,
while the Universe is trying to create bigger and better idiots.
So far the Universe is winning.”
[/i]

Permalänk
Entusiast
Skrivet av kira9204:

Skitsnack, anledningen till att AMD skalar så otroligt mycket bättre med Vulcan gentemot nVidia är för att AMDs OpenGL implementation varit kass med många bottlenecks.
nVidia står helhjärtat bakom Vulcan och lanserade t.om support för det före AMD.

Det är sant, men samtidigt spelar det ju ingen roll hur dåligt optimerade AMD's kort är för OpenGL då de är så mycket bättre jämfört med Nvidias kort när Vulkan väl används från en konsuments perspektiv.
Det behövs ju såklart flera spel med Vulkan-stöd innan man kan dra en slutsats dock.

Visa signatur

Den digitala högborgen: [Fractal Design Meshify C] ≈ [Corsair RM850x] ≈ [GeForce RTX 3080] ≈ [AMD Ryzen 7 7800X3D ≈ [Noctua NH-U14S] ≈ [G.Skill Flare X5 32GB@6GHz/CL30] ≈ [MSI MAG B650 TOMAHAWK] ≈ [Kingston Fury Renegade 2 TB] ≈

Permalänk
Medlem
Skrivet av anon5930:

Samtidigt kan man ju tycka att valet av OGL/Vulkan är lite udda när spelet inte ser ut att någonsin kunna komma till andra PC-plattformar än Windows pga Denuvo-DRM.

Implementationen av Vulkan i spelet är riktigt bra och lär bli ett bra exempel framöver på vad man kunnat åstadkomma med det API:t. För DirectX 12 så anser jag nog i dagsläget att Total War: Warhammer är den som gett mest nytta.

Kontroverserna kring 3Dmark och dess Time Spy test som ser ut att vara designat för att gynna en viss hårdvarutillverkare får mig att anse att det är den sämsta implementationen hitills.

Är det detta du menar så verkar det som 3Dmark Time Spy endast stödjer pre-emption alltså att arbeten prioriteras och växlar mellan olika job alltså inte riktig multi-thread, detta stödjs på både amd och nvidia. Men amd stödjer Asynchronous Shaders vilket betyder att flera arbeten kan köras samtidig t.ex. compute och shaders "asynchronous" vilket är som multi-threaded på CPUs.
Länk: http://www.overclock-and-game.com/news/pc-gaming/50-analyzing...

Skrivet av Gender Bender:

Frågan är ju i fall det hade flutit på bättre i DX11 än vad det gör i Vulkan? Att Vulkan är bättre än OpenGL kan vi ju konstatera redan nu, men tittar man exempelvis på Talos Principle så är det ju mycket bättre att köra med DX11 än Vulkan. Upp emot 50% snabbare i DX11 om jag minns rätt.

Om Dx11 är 50% snabbare än vulkan i Talos Pricipel så är det nog en dålig implementerin av Vulkan, då DX11s Multi-threded är liknande DX12 och vulkans "pre-emption" att olika jobb prioriteras och växlar mellan olika jobb, medan Asynchronous Shaders kan jämföras med riktig multi-threded, alltså köra flera arbeten samtidigt.
Läs mer här: http://wccftech.com/async-shaders-give-amd-big-advantage-dx12...

Skrivet av kira9204:

Skitsnack, anledningen till att AMD skalar så otroligt mycket bättre med Vulcan gentemot nVidia är för att AMDs OpenGL implementation varit kass med många bottlenecks.
nVidia står helhjärtat bakom Vulcan och lanserade t.om support för det före AMD.

Detta stämmer till viss del Amd hade sämmre implentation av OpenGL drivers men det är inte endast detta som gör att amd ligger såpass mycket före i Vulkan då Nvidia korten saknar "Asynchronous Shaders" läs ovan svar för mer info.

Skrivet av Sisyfos:

Det är sant, men samtidigt spelar det ju ingen roll hur dåligt optimerade AMD's kort är för OpenGL då de är så mycket bättre jämfört med Nvidias kort när Vulkan väl används från en konsuments perspektiv.
Det behövs ju såklart flera spel med Vulkan-stöd innan man kan dra en slutsats dock.

Amd:s kort har stöd för "Asynchronous Shaders" vilket nvidia korten saknar, detta ger Amd:s kort kompabilitetan att köra flera jobb samtidigt "Multi-threded", läs ovan svar för mer info.

Permalänk
Medlem

@FBGKimpan: Kan dom inte bara köra Open gl då? Är nvidia sämre på Open gl än AMD?

Visa signatur

"Jag är så gammal att jag brukade styra med piltangenterna"
StoppaCopySwede
Fraktrfitt:Inet

Permalänk
Skrivet av Orisons:

@FBGKimpan: Kan dom inte bara köra Open gl då? Är nvidia sämre på Open gl än AMD?

AMD är sämst på OpenGL, Nvidia är va man förväntar sig, som DX va ja förstår.

Permalänk
Medlem

Sen när var OpenGL det första de implemeterade i Quake1? Glide fungerade långt innan.

Visa signatur

CPU: 5900x. Mem:64GB@3200 16-17-17-34-1T. (ImDIsk)
GPU: 1080 Ti@ca 6-7%OC. Sound: SB-Z -> toslink (DTS)-> old JVC. MB Realtek to Z-2300 for VOIP.

Permalänk
Medlem

Hoppas att Vulkan blir dominant! Hade varit toppen för alla, förutom för M$ kanske.

Visa signatur

AMD 5800X ▪ MSI B550M Mortar ▪ G.Skill 32GB 3600MHz CL16 ▪ Palit 4070 Ti ▪ 1TB SSD 970 Evo+ ▪ Dark Power 13 1000W ▪ FD Define Mini C ▪ Aorus AD27QD + LG 27GL850

Permalänk
Datavetare
Skrivet av Oaktree:

Är det detta du menar så verkar det som 3Dmark Time Spy endast stödjer pre-emption alltså att arbeten prioriteras och växlar mellan olika job alltså inte riktig multi-thread, detta stödjs på både amd och nvidia. Men amd stödjer Asynchronous Shaders vilket betyder att flera arbeten kan köras samtidig t.ex. compute och shaders "asynchronous" vilket är som multi-threaded på CPUs.
Länk: http://www.overclock-and-game.com/news/pc-gaming/50-analyzing...

Anta att den shitstorm som nu pågår kring Time Spy har någon som helst substans och man använder faktiskt bara "compute preemtion" och inte parallell exekvering av shaders på GPUer som stödjer detta, hur förklarar man då att Time Spy just nu är det program som får störst boost av "async compute" av alla program just nu?

Givet vad preemption rent tekniskt betyder, hur förklarar man att det överhuvudtaget är en positiv effekt av "async compute" i Time Spy? Compute preemption löser ett annat problem jämfört med "async shaders", det förra är kritiskt för att kunna göra deadline scheduling för t.ex. VR tekniker som "time warp" medan det andra är ett sätt att mer effektivt utnyttja tillgängliga shader-array resurser.

Skrivet av Oaktree:

Amd:s kort har stöd för "Asynchronous Shaders" vilket nvidia korten saknar, detta ger Amd:s kort kompabilitetan att köra flera jobb samtidigt "Multi-threded", läs ovan svar för mer info.

Anta att detta är ett korrekt uttalande. Hur förklarar man då att Pascal ser ett positivt tillskott av att använda "async shaders" i Time Spy?

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

Jag tror Ryan Smith förklarar det här med "Async" en del
http://www.anandtech.com/show/10325/the-nvidia-geforce-gtx-10...

Kort och och gott kan man säga, det behövs inga "Async shaders" för "work concurrency". AMD har fördel ja, men hur pass väl man kan utnyttja tekniken för att få ut prestandafördelar >10% i framtida spel är oklart.
Vad jag förstår är det inte ens nödvändigtvis önskvärt att implementera tekniken på det vis AMD gjort.

Permalänk
Medlem
Skrivet av Yoshman:

Anta att den shitstorm som nu pågår kring Time Spy har någon som helst substans och man använder faktiskt bara "compute preemtion" och inte parallell exekvering av shaders på GPUer som stödjer detta, hur förklarar man då att Time Spy just nu är det program som får störst boost av "async compute" av alla program just nu?
http://www.pcper.com/files/imagecache/article_max_width/review/2016-07-19/3dmark-2016-timespy-3.png

Givet vad preemption rent tekniskt betyder, hur förklarar man att det överhuvudtaget är en positiv effekt av "async compute" i Time Spy? Compute preemption löser ett annat problem jämfört med "async shaders", det förra är kritiskt för att kunna göra deadline scheduling för t.ex. VR tekniker som "time warp" medan det andra är ett sätt att mer effektivt utnyttja tillgängliga shader-array resurser.

Anta att detta är ett korrekt uttalande. Hur förklarar man då att Pascal ser ett positivt tillskott av att använda "async shaders" i Time Spy?

För det först så är väll detta inte den benchmark som får störst boost? Doom vulkan är en mycket bättre implementering av async compute och vissar vad detta API är kapabelt att göra.

Sett att flera också länkat Talos Principle med en beta implentation av vulkan och är inte att jämföra med andra benchmarks.

Nvidia kör med Pre-emption och Dynamic Load Balancing som delar upp arbeten, kör ett arbete Stop kör nästa Stop. detta ger ett over-head, som också givetvis ger en boost i prestanda, Men dom saknar fortfarande Asynchronous Shaders som kan köra flera arbeten samtidig som är en mer effektiv arbetslösning likt "multi-threding".

Permalänk
Medlem
Skrivet av Zidious G:

Bars jag som fick avsevärt sämre prestanda med Vulkan? Från cirka 60 fps till 20-30.

Skickades från m.sweclockers.com

Du skulle köpt ett r9 290 istället

Visa signatur

Ryzen 5 5600, Geforce 1080

Permalänk
Datavetare
Skrivet av Oaktree:

För det först så är väll detta inte den benchmark som får störst boost? Doom vulkan är en mycket bättre implementering av async compute och vissar vad detta API är kapabelt att göra.

Sett att flera också länkat Talos Principle med en beta implentation av vulkan och är inte att jämföra med andra benchmarks.

Nvidia kör med Pre-emption och Dynamic Load Balancing som delar upp arbeten, kör ett arbete Stop kör nästa Stop. detta ger ett over-head, som också givetvis ger en boost i prestanda, Men dom saknar fortfarande Asynchronous Shaders som kan köra flera arbeten samtidig som är en mer effektiv arbetslösning likt "multi-threding".

Anta att någon beräkningsenhet kör uppgift A, vid något läge blir också uppgift B redo.

Med "preemptive scheduling" är det möjligt att spara tillståndet för A, påbörja körning av B. I något läge i framtiden blir endera B klar eller så vill man köra A igen (t.ex. om man använder timeslices), då återställs tillståndet för beräkningsenheten till exakt som det var när B avbröt.

Windows har fungerat på detta sätt sedan Win95 och Linux har alltid fungerat så, finns poänger med detta även om man bara har en CPU-kärna och en CPU-tråd men med endast en CPU-kärna/tråd kommer det aldrig gå fortare att göra en beräkning genom att använda flera trådar. Är därför totalt omöjligt att Time Spy bygger sin "async compute" på "compute preemption" hos Pascal eller GCN eftersom dessa ser en högre total prestanda när "async compute" används.

Antag i stället att B är något som måste hanteras med högre prioritet än A, B kanske är just en "time warp". I det läget vill man använda just preemption. Rent tekniskt skulle GCN kunna köra B parallellt med A, men man tappar då realtidsegenskaper då det inte lägre går att säga hur lång tid det tar innan B blir klar (beror på vad A gör). I GCN1.2 och senare (som har HWS, Hardware Scheduler köer) kan man, precis som i Pascal, i stället göra just en preemption där A avbryts och B körs i stället. D.v.s. detta är något man gör för att säkerställa att B färdigställs inom en väldefinerad tid, totala tiden att köra A + B blir däremot längre än om man kör dem i sekvens eller parallellt.

D.v.s. "compute preemption" och "async shaders" löser två olika problem, GCN1.2/4 och Pascal stödjer båda.

Det finns absolut en skillnad mellan GCN och Pascal, det är att GCN kan köra både compute och grafik i samma "compute unit" (CU) medan Pascal kan köra endera grafik eller beräkning i varje enskild SM (Streaming Multiprocessor).

Jämför man GPUer med CPUer är den närmaste analogin att
Varje CU/SM motsvarar en CPU-kärna.
Varje CU/SM innehåller sedan en väldigt bred SIMD enhet (SIMD enheten hos x86 är den som kör SSE/AVX instruktioner). Varje cykel kör varje enskild CU/SM samma program över hela sin SIMD-array.
Varje CU har sedan också en form av SMT (det Intel kallar Hyperthreading), något SM saknar. Detta gör det möjligt för en CU att ha flera olika program aktiv samtidigt.

Större skillnad är det inte. När man kör "async shaders" så finns det typiskt två olika jobb som delar på shader-array. I GCN kan dessa två program köra i samma CU medan Pascal (och även Maxwell gen 2*) kan köra dessa shaders parallellt men i varje enskild SM körs exakt en av dessa program.

* Problemet i Maxwell gen 2 är att det måste specificeras inför varje körning av två shaders vilka SMs som kör vilken shader, ett val som är fixerat till dess båda jobben är klar! Det betyder att det är nära nog hopplöst för en programmerare att göra den uppdelningen på ett optimalt sätt, så i de flesta fall slutar det med att shader-array blir mindre lastad om man försöker köra två olika shaders parallellt. Av allt att döma har Nvidia nu slagit av möjligheten att köra shaders parallellt i Maxwell då det blir samma prestanda vare sig man använder "async compute" eller ej (tidigare blev det ju typiskt lägre prestanda).

Visa signatur

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

Permalänk
Skrivet av Fisken1986:

DX är väl ''standard'' pga MS är den som har de dominerande operativsystemet hos PC?

Snarare för att Microsoft dumpar en säck med pengar utanför utvecklarnas portar med hälsningslapp: "No vulkan."

Visa signatur

Spelburk: R7 5700X | 5700 XT | 32GB RAM | MSI B350M PRO-VDH

Permalänk
Datavetare
Skrivet av Oaktree:

För det först så är väll detta inte den benchmark som får störst boost? Doom vulkan är en mycket bättre implementering av async compute och vissar vad detta API är kapabelt att göra.

Två separata saker att hålla isär här. Den stora boosten från Vulkan är dess "low-overhead" design och möjligheten att göra majoriteten av den CPU-intensiva delen av "draw-calls" i flera CPU-trådar (något som inte är möjligt i OpenGL).

Nu går det tyvärr inte att explicit stänga av "async compute" i Doom, det närmaste man kan göra är att variera AA-metod. "Async compute" används inte om man kör FXAA medan det används om AA är avslaget eller om man kör TSSAA. Gamers Hexus körde sitt test av Vulkan med FXAA (så ingen "async compute") medan de flesta andra kört med TSSAA (så "async compute").

Relativa vinsten över OpenGL är i princip densamma på RX 480 i båda lägena, vilket indikerar att majoriteten av prestandavinsten kommer från andra saker än "async compute". Så Time Spy får en större boost av "async compute" än även Doom. Den titel som verkar se näst högst effekt av "async compute" just nu är Ashes of the Singularity.

Vad är det egentligen som folk har hängt upp sig på kring Time Spy? Precis som alla 3DMark är det ju en syntetisk benchmark som mer är ett test av den senaste DX-versionen än något som direkt kan användas som fingervisning på hur relativ prestanda i spel kommer bli.

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:

Anta att någon beräkningsenhet kör uppgift A, vid något läge blir också uppgift B redo.

Med "preemptive scheduling" är det möjligt att spara tillståndet för A, påbörja körning av B. I något läge i framtiden blir endera B klar eller så vill man köra A igen (t.ex. om man använder timeslices), då återställs tillståndet för beräkningsenheten till exakt som det var när B avbröt.

Windows har fungerat på detta sätt sedan Win95 och Linux har alltid fungerat så, finns poänger med detta även om man bara har en CPU-kärna och en CPU-tråd men med endast en CPU-kärna/tråd kommer det aldrig gå fortare att göra en beräkning genom att använda flera trådar. Är därför totalt omöjligt att Time Spy bygger sin "async compute" på "compute preemption" hos Pascal eller GCN eftersom dessa ser en högre total prestanda när "async compute" används.

Antag i stället att B är något som måste hanteras med högre prioritet än A, B kanske är just en "time warp". I det läget vill man använda just preemption. Rent tekniskt skulle GCN kunna köra B parallellt med A, men man tappar då realtidsegenskaper då det inte lägre går att säga hur lång tid det tar innan B blir klar (beror på vad A gör). I GCN1.2 och senare (som har HWS, Hardware Scheduler köer) kan man, precis som i Pascal, i stället göra just en preemption där A avbryts och B körs i stället. D.v.s. detta är något man gör för att säkerställa att B färdigställs inom en väldefinerad tid, totala tiden att köra A + B blir däremot längre än om man kör dem i sekvens eller parallellt.

D.v.s. "compute preemption" och "async shaders" löser två olika problem, GCN1.2/4 och Pascal stödjer båda.

Det finns absolut en skillnad mellan GCN och Pascal, det är att GCN kan köra både compute och grafik i samma "compute unit" (CU) medan Pascal kan köra endera grafik eller beräkning i varje enskild SM (Streaming Multiprocessor).

Jämför man GPUer med CPUer är den närmaste analogin att
Varje CU/SM motsvarar en CPU-kärna.
Varje CU/SM innehåller sedan en väldigt bred SIMD enhet (SIMD enheten hos x86 är den som kör SSE/AVX instruktioner). Varje cykel kör varje enskild CU/SM samma program över hela sin SIMD-array.
Varje CU har sedan också en form av SMT (det Intel kallar Hyperthreading), något SM saknar. Detta gör det möjligt för en CU att ha flera olika program aktiv samtidigt.

Större skillnad är det inte. När man kör "async shaders" så finns det typiskt två olika jobb som delar på shader-array. I GCN kan dessa två program köra i samma CU medan Pascal (och även Maxwell gen 2*) kan köra dessa shaders parallellt men i varje enskild SM körs exakt en av dessa program.

* Problemet i Maxwell gen 2 är att det måste specificeras inför varje körning av två shaders vilka SMs som kör vilken shader, ett val som är fixerat till dess båda jobben är klar! Det betyder att det är nära nog hopplöst för en programmerare att göra den uppdelningen på ett optimalt sätt, så i de flesta fall slutar det med att shader-array blir mindre lastad om man försöker köra två olika shaders parallellt. Av allt att döma har Nvidia nu slagit av möjligheten att köra shaders parallellt i Maxwell då det blir samma prestanda vare sig man använder "async compute" eller ej (tidigare blev det ju typiskt lägre prestanda).

Ja både Nvidia och Amd stödjer Pre-emption så denna prestanda kan inte vara utav detta fenomen? i dx 12 vulkan? då pascal ger +5-6% i detta fall. Om Asynchronous Shaders också var implementerat så borde ju prestandan vara en viss boost upp på detta resultat eller?

Har du en tillförlitlig länk som bevisar att Nvidia stödjer "Asynchronous Shaders"? så läser jag mer änn gärna den, i annat fall så står jag fast vid min åsikt.

Permalänk
Datavetare
Skrivet av Oaktree:

Ja både Nvidia och Amd stödjer Pre-emption så denna prestanda kan inte vara utav detta fenomen? i dx 12 vulkan? då pascal ger +5-6% i detta fall. Om Asynchronous Shaders också var implementerat så borde ju prestandan vara en viss boost upp på detta resultat eller?

Preemption kan aldrig resultera i högre total prestanda, det blir endast samma som att köra saker i sekvens om kontextbyte är gratis (vilket det inte är, det Nvidia trycker på med "compute preemption" är att man har väldigt låg kostnad då kontextbyte är helt implementerat i HW).

Skrivet av Oaktree:

Har du en tillförlitlig länk som bevisar att Nvidia stödjer "Asynchronous Shaders"? så läser jag mer änn gärna den, i annat fall så står jag fast vid min åsikt.

Bästa dokumentationen kring detta är white paper för GP104, läs sidan 14 och 15.

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:

Preemption kan aldrig resultera i högre total prestanda, det blir endast samma som att köra saker i sekvens om kontextbyte är gratis (vilket det inte är, det Nvidia trycker på med "compute preemption" är att man har väldigt låg kostnad då kontextbyte är helt implementerat i HW).

Bästa dokumentationen kring detta är white paper för GP104, läs sidan 14 och 15.

Läste det du länkade men står ingenting om att dom stödjer "Asynchronous Shaders" där endast att dom stödjer "dynamic load balancing" och Pixel Level Preemption, så står kvar vid min åsikt.

Permalänk
Datavetare
Skrivet av Oaktree:

Läste det du länkade men står ingenting om att dom stödjer "Asynchronous Shaders" där endast att dom stödjer "dynamic load balancing" och Pixel Level Preemption, så står kvar vid min åsikt.

Om man definierar termerna här: med "async shaders" (tyvärr uselt namn då "asynkront" inte har något med parallellt att göra) menas normalt att en krets kan köra fler än en shader parallellt. Detta kan alla GCN samt Maxwell gen 2 och framåt.

"Dynamic load balancing" är Nvidias namn på att Pascal dynamisk (till skillnad i Maxwell där är up-front och statiskt) bestämma vilka SM som kör vilken shader. Detta kan även ändras medan shaders körs, om t.ex. A blir klar först får då B tillgång till alla SMs. Detta är hur Pascal implementerar tekniken och hela förklaringen till varför man ser en boost i Time Spy.

Pixel Level Preemption har överhuvudtaget inget värde i ett sådant fall och skulle sänka prestanda något om det användes. Detta är för att hantera uppgifter med hög prioritet. GCN hanterar motsvarande via HWS, inte ACE.

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:

Om man definierar termerna här: med "async shaders" (tyvärr uselt namn då "asynkront" inte har något med parallellt att göra) menas normalt att en krets kan köra fler än en shader parallellt. Detta kan alla GCN samt Maxwell gen 2 och framåt.

"Dynamic load balancing" är Nvidias namn på att Pascal dynamisk (till skillnad i Maxwell där är up-front och statiskt) bestämma vilka SM som kör vilken shader. Detta kan även ändras medan shaders körs, om t.ex. A blir klar först får då B tillgång till alla SMs. Detta är hur Pascal implementerar tekniken och hela förklaringen till varför man ser en boost i Time Spy.

Pixel Level Preemption har överhuvudtaget inget värde i ett sådant fall och skulle sänka prestanda något om det användes. Detta är för att hantera uppgifter med hög prioritet. GCN hanterar motsvarande via HWS, inte ACE.

Så Nvidia implementerar detta genom Pre-emption vilket amd också kan göra då dom också stödjer Pre-emption, Detta är vad som visas i 3dmark Time Spy, men detta visar inte fulla potentialen av "GCN Architecture" då dom inte har implementerat "Asynchronous Shaders" så man kan få en anvisnivg av vad prestandan är men, visar inte dess fulla potential.

Permalänk
Datavetare
Skrivet av Oaktree:

Så Nvidia implementerar detta genom Pre-emption vilket amd också kan göra då dom också stödjer Pre-emption, Detta är vad som visas i 3dmark Time Spy, men detta visar inte fulla potentialen av "GCN Architecture" då dom inte har implementerat "Asynchronous Shaders" så man kan få en anvisnivg av vad prestandan är men, visar inte dess fulla potential.

Anta att det är så då. Hur förklarar man då att 280X, 390 och 390X ser en prestandavinst då det är först GCN1.2 som implementerar preemtion (d.v.s har HWS)?

Skickades från m.sweclockers.com

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

Dags att peta M$ från toppen. Mera Vulkan och Linux/Mac stöd snälla utvecklare!

Skickades från m.sweclockers.com

Visa signatur

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

Permalänk
Avstängd

Värt att notera är att OpenGL var så omoget när Quake släpptes att dom först använde en nerbantad version av OpenGL kallad MiniGL.

Även värt att notera är att Quake var skrivet för DOS, dock kunde man fortfarande köra det på Windows 95 eftersom det byggde på DOS, men för att köra det på Windows NT så släpptes WinQuake.

Permalänk
Quizmaster Malmö 22

Känns som at ID är bättre än andra lr helt enkelt la manken till som körde på Vulkan/OpenGL istället för det enklare Dx.

Visa signatur

[Gigabyte EP35-DS4][Intel Core 2 Duo E8400 3.0 Ghz][2x2GB Corsair XMS 2][Gainward GTX 570][Sandisk Extreme II 480GB][Corsair HX 620W][Fractal Design Define XL R4][Acer GD245HQBID]

Permalänk
Medlem
Skrivet av Yoshman:

Om man definierar termerna här: med "async shaders" (tyvärr uselt namn då "asynkront" inte har något med parallellt att göra) menas normalt att en krets kan köra fler än en shader parallellt. Detta kan alla GCN samt Maxwell gen 2 och framåt.

"Dynamic load balancing" är Nvidias namn på att Pascal dynamisk (till skillnad i Maxwell där är up-front och statiskt) bestämma vilka SM som kör vilken shader. Detta kan även ändras medan shaders körs, om t.ex. A blir klar först får då B tillgång till alla SMs. Detta är hur Pascal implementerar tekniken och hela förklaringen till varför man ser en boost i Time Spy.

Pixel Level Preemption har överhuvudtaget inget värde i ett sådant fall och skulle sänka prestanda något om det användes. Detta är för att hantera uppgifter med hög prioritet. GCN hanterar motsvarande via HWS, inte ACE.

Kan ju inte endast vara dynamic load balancing some ger dess prestanda boost, isåfall ihop med preemption. Maxwell har ju bra mycket sämmre stöd för async compute till och med jämfört med gcn 1.0.

"Even with all of these additions, Pascal still won’t quite match GCN. GCN is able to run async compute at the SM/CU level, meaning each SM/CU can work on both graphics and compute at the same time, allowing even better efficiency."

Läs mer här: http://www.eteknix.com/pascal-gtx-1080-async-compute-explored...

Skrivet av Yoshman:

Anta att det är så då. Hur förklarar man då att 280X, 390 och 390X ser en prestandavinst då det är först GCN1.2 som implementerar preemtion (d.v.s har HWS)?

Skickades från m.sweclockers.com

Här är en article som jämför preemption på nvida, amd, intel. sägs här att amd har riktigt bra stöd för preemption.

Länk: http://www.dsogaming.com/news/oculus-employees-preemption-for...

Permalänk
Medlem
Skrivet av Yoshman:

Anta att den shitstorm som nu pågår kring Time Spy har någon som helst substans och man använder faktiskt bara "compute preemtion" och inte parallell exekvering av shaders på GPUer som stödjer detta, hur förklarar man då att Time Spy just nu är det program som får störst boost av "async compute" av alla program just nu?
http://www.pcper.com/files/imagecache/article_max_width/review/2016-07-19/3dmark-2016-timespy-3.png

Givet vad preemption rent tekniskt betyder, hur förklarar man att det överhuvudtaget är en positiv effekt av "async compute" i Time Spy? Compute preemption löser ett annat problem jämfört med "async shaders", det förra är kritiskt för att kunna göra deadline scheduling för t.ex. VR tekniker som "time warp" medan det andra är ett sätt att mer effektivt utnyttja tillgängliga shader-array resurser.

Anta att detta är ett korrekt uttalande. Hur förklarar man då att Pascal ser ett positivt tillskott av att använda "async shaders" i Time Spy?

att AMD Fury ägare se +12% i prestandard i drivrutiner är grymt. Någon som har ett Nvidia kort som kan berätta om att samma sak hänt dom? Ok visst de som äger AMD 7000 serien har sett prestandaden öka med 50-100% via drivrutiner med det kortet är och för bli legendarisk som någon skrev. Den extrema ökningen kommer vi nog aldrig mer se för ett grafikkort.

den som byter kort varje år=köp Nvidia
Den som har grafikkortet mer än ett år AMD alla dagar. För du vet att du köpt något som är framtidsäkert. 7000 serien kom 2012 har bra stöd för vulkan/DX12. Nvidia 900 serien kom förra året stöd för vulkan/DX12?? se diagram för vulkan -% när AMD får upp till nästan +13%
Samma visa år efter år.

Nu kommer Nvida fan skrika AMD har inget som är snabbt nog! Då är det idag imorgon har AMD vandrat för bi än engång. Känns som det kommer att hända flera gånger till då man i AMD korten har mer prestandard än vad Nvidia korten har. Alla som köper 1060 och ska ha korten mer än ett år kommer att ångra sig varför de inte valde AMD 480.

Visa signatur

Ryzen 5800X ROG STRIX X570-f GAMING FlareX DDR43600 cl 14-14-14-34 EVGA FTW3 Ultra RTX 3090