Grafikkort

Vi förklarar varför amd förbättrar mer än nvidia när du går till Directx 12

Innehållsförteckning:

Anonim

Visst har du läst eller hört att AMD-grafikkort är mycket bättre i DirectX 12 än Nvidia, att arkitekturen som används av den förra är mycket mer beredd att arbeta med den nya generationens API. Det här är bekräftelser som vi vanligtvis ser varje dag, men är AMD verkligen bättre än Nvidia i DirectX 12? Vi berättar allt du behöver veta i det här inlägget.

Overhead är orsaken till AMD: s förbättring med DirectX 12

Sedan DirectX 12 började prata har vi sett jämförande diagram som följande:

Denna grafik jämför två likvärdiga grafikkort som GeForce GTX 980 Ti och Radeon R9 Fury X, om vi går förbi de tidigare bilderna ser vi att AMD har en brutal prestationsförstärkning när man går från DirectX 11 till DirectX 12, mot Nvidia, det kvarstår lika eller till och med tappar prestanda när du börjar arbeta med det nya API: n. Ser detta, skulle alla användare tro att AMD-kortet är mycket bättre än Nvidia-kortet.

Nu vänder vi oss till att titta på följande bild:

Denna gång jämför grafen prestandan för GeForce GTX 980 Ti och Radeon R9 Fury X i DirectX 11 och DirectX 12. Vad vi kan se är att i DirectX 11 ger Nvidia-kortet nästan dubbelt så mycket som AMD och när man flyttar till DirectX 12 utjämnas prestandan. Vi ser att Radeon R9 Fury X förbättrar sin prestanda mycket när man ska jobba med DirectX 12 och GeForce GTX 980 Ti förbättrar mycket mindre. I alla fall är prestandan för båda under DirectX 12 densamma eftersom skillnaden inte når 2 FPS till förmån för Fury X.

Just nu måste vi fråga oss varför AMD har en sådan förbättring när vi flyttar till DirectX 12 och Nvidia förbättras mycket mindre. Fungerar AMD bättre under DirectX 12 än Nvidia eller har det ett stort problem under DirectX 11?

Svaret är att AMD har ett stort problem under DirectX 11, ett problem som gör att korten fungerar sämre än Nvidias. Detta problem är relaterat till användningen som kortdrivrutinerna använder för processorn, ett problem som kallas " Overhead " eller överbelastning.

AMD-grafikkort använder mycket ineffektiv användning av processorn under DirectX 11, för att kontrollera detta problem måste vi bara titta på följande videor som analyserar prestandan för Radeon R7 270X och GeForce GTX 750 Ti med en Core- i7 4790K och sedan med en Core-i3 4130. Som vi ser AMD-diagrammet förlorar mycket mer prestanda när man ska arbeta med en mycket mindre kraftfull processor.

Far Cry 4

Ryse: Rom till Son

COD Advanced Warfare

Nyckeln till detta finns i " kommandokön " eller kommandolistor under DirectX 11. På ett mycket enkelt och förståeligt sätt kan vi sammanfatta det genom att AMD-grafikkort tar alla ritningssamtal till API: n och sätter dem i en enda processorkärna, detta gör dem mycket beroende av processorens enkelgängade kraft och därför lider de mycket när man arbetar tillsammans med en mindre kraftfull processor per kärna. Det är därför AMD: s grafik drabbades kraftigt av AMD FX-processorer, mycket mindre kraftfulla per kärna än Intels.

Istället tar Nvidia dragningen till API: n och delar dem mellan de olika processorkärnorna, med detta fördelas belastningen och en mycket effektivare användning görs och mindre kraft beror på processorkärnan. Som en konsekvens av detta lider AMD mycket mer omkostnader än Nvidia under DirectX 11.

Det är mycket enkelt att kontrollera det senare, vi måste bara övervaka ett AMD och ett Nvidia-grafikkort under samma spel och samma processor och vi kommer att se hur i fallet med Nvidia alla kärnor fungerar på ett mycket mer balanserat sätt.

Detta overheadproblem är fixat under DirectX 12 och det är den främsta anledningen till att AMD-grafikkort har en enorm prestandafördelning som går från DirectX 11 till DirectX 12. Om vi ​​tittar på följande graf ser vi hur prestanda under DirectX 12 inte längre går förlorade när man går från en dual-core processor till en av fyra.

Och varför gillar AMD inte som Nvidia?

Nvidias implementering av kommandoköer i DirectX 11 är mycket dyrt och kräver en stor investering av pengar och personalresurser. AMD har varit i en dålig ekonomisk situation så det har inte samma resurser som Nvidia ska investera. Dessutom går framtiden genom DirectX 12 och det finns inget sådant overheadproblem eftersom själva API: n ansvarar för att hantera kommandoköer på ett mycket mer effektivt sätt.

Dessutom har Nvidia-metoden problemet med att vara mycket mer beroende av optimering av drivrutinerna, så Nvidia är vanligtvis den första som släpper nya versioner av sina drivrutiner varje gång ett viktigt spel kommer ut på marknaden, även om AMD har lagt ut staplar på det här nyligen. AMD: s tillvägagångssätt har fördelen att vara mycket mindre beroende av förare så att dess kort inte behöver nya versioner lika brådskande som Nvidias, detta är en av anledningarna till att Nvidias grafikkort åldras sämre med tid då de inte längre stöds.

Och hur är det med Asynchronous Shaders?

Det har också varit en hel del prat om Asynchronous Shaders, angående detta måste vi bara säga att det har fått mycket vikt när i realiteten överhead är mycket viktigare och bestämmer grafikkortets prestanda. Nvidia stöder dem även om implementeringen är mycket enklare än AMD, anledningen till detta är att dess Pascal-arkitektur fungerar på ett mycket mer effektivt sätt så att det inte behöver Asynchronous Shaders lika mycket som AMD.

AMDs grafik inkluderar ACE, som är en hårdvarumotor avsedd för asynkron datoranläggning, hårdvara som tar plats på chipet och förbrukar energi, så implementeringen är inte ett infall, utan på grund av en stor brist på grafikens Core-arkitektur. Nästa från AMD med geometri. AMD-arkitekturen är väldigt ineffektiv när det gäller att fördela arbetsbelastningen mellan de olika datorenheterna och de kärnor som bildar dem, vilket innebär att många kärnor är utan arbete och därför slösas bort. Vad ACE och asynkron Shaders gör är att "ge arbete" till dessa kärnor som har förblivit arbetslösa så att de kan utnyttjas.

I den andra delen har vi Nvidia-grafiken baserad på Maxwell- och Pascal- arkitekturerna, dessa är mycket effektivare i geometri och antalet kärnor är mycket lägre än för AMD-grafiken. Detta gör Nvidia-arkitekturen mycket effektivare när det gäller att dela upp arbetet och inte så många kärnor slösas bort som i fallet med AMD. Implementeringen av Asynchronous Shaders i Pascal görs genom programvara, eftersom en hårdvaruimplementering inte skulle ge nästan någon prestandafördel, men det skulle vara ett drag på chipets storlek och dess energiförbrukning.

Följande graf visar prestandaförstärkningen för AMD och Nvidia med Mark Time Spy 3D Asynchronous Shaders:

Huruvida Nvidia kommer att implementera Asynchronous Shaders hårdvara i framtiden beror på fördelarna som uppväger skadan.

Grafikkort

Redaktörens val

Back to top button