Permalänk
Medlem

Amd vs Nv Dx12/Dx11

Tjena, gott folk!

En fråga som gör mig tokig.

Under ganska lång tid har jag märkt att Amd står sig rätt så bra mot nVidia i DX12, men inte i DX11.

Vad beror detta på? Och kommer fenomenet att vända tror ni?

Anledningen till frågan är främst nyfikenhet, men även att jag småsneglar på att uppgradera ett rigg till min äldsta dotter. Vega56 vs Rtx2060 då. Raytracing intresserar mig inte lika mycket som alla nya billiga Freesync-skärmar.

Sköt om er!

Visa signatur

Min musik: https://www.youtube.com/channel/UCZKidNeIKsz8LZMO3VRcBdQ

Gaminglaptop. 13700H, 32Gb RAM, RTX 4070, 4Tb SSD.

Permalänk
Avstängd

En stor anledning att AMD ofta har en bättre prestandaskillnad gentemot Nvidia i DirectX12 är för att dem hanterar resurser på lite olika sätt.
Nvidia-kort är generellt sett lite svårare att implementera en "korrekt" resurshantering för och därmed är ganska känsliga mot fel, istället är AMD för övrigt väldigt lik DirectX11 på denna fronten och hanterar resurser på ett "lättare" sätt, vilket gör att korten inte är lika känsliga.

Stora företag som utvecklar egna applikationer som använder DX11 & DX12 har ofta funnits ett tag, därmed har dem säkerligen haft en implementation av DX11 vid den tidpunkten då detta var det fräschaste på marknaden.
Sen när DX12 släpptes så behövde man anpassa sig och stödja detta också, men man kunde inte slopa DX11. Så man gjorde bara en portning. Eftersom portningen mest troligt betydde att man har kvar samma gränssnitt som till DX11 så tar man inte till vara på de nya finesserna med ett low-level API som DX12 ger en. Därmed sämre prestanda.

Sorry för ett lite luddigt svar, har nyligen vaknat.

TL:DR - DX12 är svårare att programmera till, det är också lättare att framhäva skillnaderna i hårdvaran, både till för- och nackdel. Detta är varför det oftast syns mycket mer skillnader mellan AMD vs Nvidia i DX12-tester.

Kommer detta vända?
Well, när företag börjar inse att low-level is the way to go, och man bygger sina nya program för low-level i förstahand, absolut. Då kommer det börja vända.
PS, detta händer as we speak. Kan nämna ett flertal företag som börjar fundera på att slopa DX11 support för att kunna bygga ordentliga DX12/Vulkan applikationer.

Vilket kort ska du då välja?
Ja du...
Ingen kommer kunna ge dig ett direkt svar. Båda korten är ju såklart bra på sina sätt.
Dock värt att ha i åtanke är att Vega56 snart är 2 år gammalt, och AMD kommer säkerligen släppas något nytt kort i samma klass under året (Navi).
Raytracing har inte slagit genom ännu, så jag håller med om att det kanske inte är selling-pointen man bör gå efter.
Freesync (eller Adaptive Sync, som det heter numera) har ju faktiskt börja trilla in på Nvidias karta också, även om det bara är i liten skala just nu. Så du är ju inte låst till AMD här.

Hoppas du hittar något att uppgradera till.

Visa signatur

Ryzen 9 5950x | Asus RTX 2080Ti Strix | G.Skill 32GB DDR4 3800Mhz

Permalänk
Medlem
Skrivet av Makzter:

...
Freesync (eller Adaptive Sync, som det heter numera) ...

Njaaae, "FreeSync" är AMDs marknadsföringsterm för tekniken, "Adaptive Sync" är VESAs namn på standarden.

OnT: AMD FineWine är ett uttryck av en anledning men personligen hade jag inte köpt ett Vega-kort såhär nära inpå nylansering.
nVidia GTX1660 Ti eller vänta är mitt råd.

Visa signatur

WS: MSI B350M Mortar | AMD Ryzen 7 1700 | PH-TC14PE | 32GB DDR4 3000MHz | 1TB Kingston NV2 | Intel Arc A750 8GB | 2*BenQ G2420HDB
Router: Gigabyte GA-870-UD3 | AMD Phenom II x6 1055t @ 2600MHz, 1.25V | 12GB DDR3 | 2*250GB HDD @ RAID1 | 4TB HDD
Laptop: Thinkpad X220 4291-QF6

Permalänk
Medlem
Skrivet av Makzter:

En stor anledning att AMD ofta har en bättre prestandaskillnad gentemot Nvidia i DirectX12 är för att dem hanterar resurser på lite olika sätt.
Nvidia-kort är generellt sett lite svårare att implementera en "korrekt" resurshantering för och därmed är ganska känsliga mot fel, istället är AMD för övrigt väldigt lik DirectX11 på denna fronten och hanterar resurser på ett "lättare" sätt, vilket gör att korten inte är lika känsliga.

Stora företag som utvecklar egna applikationer som använder DX11 & DX12 har ofta funnits ett tag, därmed har dem säkerligen haft en implementation av DX11 vid den tidpunkten då detta var det fräschaste på marknaden.
Sen när DX12 släpptes så behövde man anpassa sig och stödja detta också, men man kunde inte slopa DX11. Så man gjorde bara en portning. Eftersom portningen mest troligt betydde att man har kvar samma gränssnitt som till DX11 så tar man inte till vara på de nya finesserna med ett low-level API som DX12 ger en. Därmed sämre prestanda.

Sorry för ett lite luddigt svar, har nyligen vaknat.

TL:DR - DX12 är svårare att programmera till, det är också lättare att framhäva skillnaderna i hårdvaran, både till för- och nackdel. Detta är varför det oftast syns mycket mer skillnader mellan AMD vs Nvidia i DX12-tester.

Kommer detta vända?
Well, när företag börjar inse att low-level is the way to go, och man bygger sina nya program för low-level i förstahand, absolut. Då kommer det börja vända.
PS, detta händer as we speak. Kan nämna ett flertal företag som börjar fundera på att slopa DX11 support för att kunna bygga ordentliga DX12/Vulkan applikationer.

Vilket kort ska du då välja?
Ja du...
Ingen kommer kunna ge dig ett direkt svar. Båda korten är ju såklart bra på sina sätt.
Dock värt att ha i åtanke är att Vega56 snart är 2 år gammalt, och AMD kommer säkerligen släppas något nytt kort i samma klass under året (Navi).
Raytracing har inte slagit genom ännu, så jag håller med om att det kanske inte är selling-pointen man bör gå efter.
Freesync (eller Adaptive Sync, som det heter numera) har ju faktiskt börja trilla in på Nvidias karta också, även om det bara är i liten skala just nu. Så du är ju inte låst till AMD här.

Hoppas du hittar något att uppgradera till.

Tack!

Bra förklaring!

Skrivet av Dracc:

Njaaae, "FreeSync" är AMDs marknadsföringsterm för tekniken, "Adaptive Sync" är VESAs namn på standarden.

OnT: AMD FineWine är ett uttryck av en anledning men personligen hade jag inte köpt ett Vega-kort såhär nära inpå nylansering.
nVidia GTX1660 Ti eller vänta är mitt råd.

Jag tror jag väntar, som du sade. 1660ti känns inte lockande. Då är begagnade kort roligare.

Visa signatur

Min musik: https://www.youtube.com/channel/UCZKidNeIKsz8LZMO3VRcBdQ

Gaminglaptop. 13700H, 32Gb RAM, RTX 4070, 4Tb SSD.

Permalänk
Medlem

Jag hade nog använt en mer historisk förklaringsmodell.
DX12 designades för att få en programmeringsmodell som liknade den som utvecklats för den då nya konsolen Xbox One. Och kortet som satt i Xbox One var av arkitekturen... GCN 1.0. Det passade mer AMDs arkitektur av denna anledning. Detta kan ses i att saker såsom async compute helt pajade prestandan för NVIDIAs dåvarande arkitektur.

Async compute I ashes of the singularity för Maxwell och Fury

Async compute prestandan hade mer eller mindre fixats till Pascal. Förmodligen en del andra saker relaterat till DX12 med.

Pascal

Idag ser det mycket bättre ut för NVIDIA i DX12. Som går att se från Computerbase tester av DX12 i Hitman 2. Det går även att se att lågnivå API:er brukar ge mer andrum till CPU:n.

Som går att se för RTX2070 och Vega64 och 2700x så ökar de i stort sett lika mycket! (32% mot 38%). Som även går att se för 9900k med samma kort så ökar Vega64 mer, men alla har en gräns kring 94FPS. Det ökar förstås mer för AMD, men inte så mycket mer.

Jag tror att vi kommer se NVIDIA röra sig mer mot AMD, och AMD röra sig mer mot NVIDIA med nyare hårdvara. Det kommer spela mindre roll i DX12 framöver om du har ett kort från AMD eller från NVIDIA.

Om du vill lägga ut mindre pengar för samma prestanda så tror jag kommer Navi att vara ett alternativ om några månader. Det är den arkitekturen (eller något som liknar det) som kommer att vara i de nya konsolerna. Och det var ju just där jag började med inlägget, vilket jag egentligen inte hade planerat men det bara blir så ibland ¯\_(ツ)_/¯ .