TÉMA: Proč jsou (a budou) AMD Radeon grafiky lepší než NVIDIA GTX pod DirectX12 hrami?!
Napsal Jan "DD" Stach   
Tuesday, 01 September 2015
altVšechny testy zatím ukazují, že AMD grafiky výrazně získávají pod DX12. Proč tomu tak je?

 

 

 

 

  • TÉMA: Proč jsou (a budou) AMD Radeon grafiky lepší

                                                    než NVIDIA GTX pod DirectX12?!

Všechny testy zatím ukazují, že AMD grafiky výrazně získávají pod DX12. Proč tomu tak je?

Tohle není žádný FLAME, jak by to někteří rádi viděli, tohle je prostý fakt. Ano, AMD Radeon grafické karty architektury GCN jsou a budou pod DirectX12 lepší a fungovat s větším přínosem než konkurenční NVIDIA GTX 600/700/900 grafiky. Potvrzují to všechny dostupné testy a potvrzují to i přímo programátoři, kteří na DX12 implementacích pracují.

Dnes už existuje řada pěkných rozborů, odpovídajících na otázku, proč tomu tak je. Stejně tak se dozvídáme, proč se GTX grafikám zejména v nižších rozlišeních dařilo pod DX11 lépe. Pokusíme se to pro vás maximálně zjednodušit. Názor, že AMD bude mít se svými GCN RADEON grafikami pod DX12 výhodu proti NVIDIA GTX grafikám současné a posledních řad, není nikterak nový. Avšak až poslední měsíce a týdny přinášejí reálné a měřitelné důkazy, že to bude opravdu fakt. Hlavní důkaz poskytl první herní engine, který DirectX12 skutečně pořádně používá. Část hry slouží jako benchmark, který znáte pod názvem Ashes of the Singularity:

Ten víceméně přesně ukazuje stav věcí jak pod DirectX11, tak pod DirectX12. Pod DirectX11 například víme, že Radeon R9 290X je ve hrách běžně znatelně slabší, než GTX 980Ti. A to přes fakt, že R9 290X má 5,64TFLOPS výkonu, zatímco GTX 980Ti má jen o málo více, 6,15TFLPS. Jsou tací, kteří si myslí, že tato čísla jsou nějaké imaginární vymyšlené hodnoty výkonu. Jenže nejsou. Tento výkon prostě ten dané HW má. Nic víc a nic míň! To kolik je ho využito danou aplikací, to už je zcela jiná otázka a výkon ve hrách není tedy vlastně výkonem daného HW, ale výkonem té dané konkrétní aplikace.

Pod DirectX11 je spousta problémů a zjednodušeně řečeno, jen velmi málo výkonu HW je pod DX11 skutečně využíváno. S nástupem DirectX12 se situace dramaticky mění a Radeon R9 290X se výkonem skutečně blíží výkonu GTX 980Ti, tak jak tomu odpovídá skutečný výkon grafik samotných. Nicméně R9 290X má ještě další výhodu, stejně jako všechny GCN grafiky AMD poslední době proti minulým i současným GTX grafikám. A tím se dostáváme k jádru věci ...

 

  • Proč jsou (a budou) AMD Radeon grafiky lepší

                                                              než NVIDIA GTX pod DirectX12

Klíčovou záležitostí je vlastní architektura jádra. Ačkoliv je GCN RADEON výrazně starší, než aktuální architektura GTX grafik (MAXWELL-KEPLER), ve skutečnosti je GCN tou technologicky a evolučně vyspělejší. GCN je totiž výrazně paralelní architektura, zatímco architektura NV stále více spoléhá na sériové zpracování. Když to hodně zjednodušíme a k něčemu připodobníme, je to prostě jako jednojádro proti dvěma jádrůma  sami víme, jak jsou na tom aplikace s využitím více jader ...

Pod DirectX11 nikdy neměla architektura GCN AMD šanci využít svůj výkon. DirectX11 totiž fungovalo hlavně sériově a nedokázalo tedy vůbec skutečné možnosti paralelní architektury využít a pokusy o to museli být na straně aplikací. Grafikám NVIDIA se tedy dařilo lépe, typicky v nižších rozlišeních, kde bylo rychle dosaženo limitů omezeného sériového výkonu (bottleneck) AMD GCN GPU. Nicméně jistě jste si všimli, že výkonový náskok NVIDIA grafik výrazně klesá s rostoucím rozlišením, vyšším detaily a zkrátka většími nároky na grafický výkon. Ani pod DX11 se totiž nedokázalo prostě schovat, že většinou je to AMD, které mělo vyšší výkon GPU dostupný k využití. Další výhodou, kterou pod DX11 měla NVIDIA, byla fakt, že řada věcí se dala výrazně ovlivnit dodatečně ovladači.

NVIDIA tedy ladila vždy ovladače s větší vervou, než AMD, které se spíše snažilo vždy naučit vývojáře používat správně dané technologie, tak aby dodatečné zákroky a ladění ovladačů nebylo třeba. Myslím, že se všichni shodneme, že praxe nechat ladit výrobce GPU ovladače a SW, je z dlouhodobého hlediska jasný nesmysl. Výrobce GPU je tu od toho, aby vyrobil čip, který bude podporovat všechny technologie tak jak je podporovat má a na vývojářích je používat tyto technologie tak jak se používat mají. A právě DirectX12 je v tomto ohledu velký krok. V rámci něho je zde totiž mnohem méně věcí, které se ovladači budou muset ladit, či vůbec budou moci zlepšit či ovlivnit! Žádné triky už nebudou potřeba a dokonce ani možné. Jak víte, usiluje se o to, aby ovladače nebyly potřeba v podstatě vůbec a to třeba i pro více grafik. Nativně by DX12 mělo využívat všech dostupných prostředků samo od sebe.

Pod DirectX12 tedy výrazně ubývá vlivu ladění ovladačů a to jak možnosti jimi něco ovlivnit, tak hlavně nutnost je vůbec ladit. To samozřejmě výrazně pomůže AMD, které se vždy snažilo o to, aby se technologie používaly bez nutnosti dodatečného se hrabání v ovladačích ze strany výrobce HW a přizpůsobování té konkrétní aplikace, což jak jistě všichni uznáme je práce navíc a neměla by být třeba. Výrobce HW přeci nemůže za to, že vývojáři nějaké aplikace nepoužívají jasně standardizované a technicky dané technologie správně. Ale zpět k tomu, proč AMD GCN grafiky budou mít pod DX12 lepší výkon. DirectX12 totiž masivně spoléhá právě na paralelní zpracování a na to jsou GCN grafiky přesně stavěny. Mají Asynchronní Shadery a to je klíčová výhoda AMD proti NVIDIA a důvod, proč je AMD horší v DX11 a proč získává tolik pod DX12 a stejně tak pro NVIDIA získává mnohem méně.

Kombinací těchto faktorů tedy dostáváme obrázek toho, jak na to grafiky skutečně jsou. Zároveň musíme opět smutně konstatovat, jak neuvěřitelně se plýtvalo možným a dostupným výkonem HW v uplynulých letech a opět se také musíme divit nad skutečností, jak vývojáři něčeho tak podstatného, jako API, mohli nechat dojít věci tak daleko. NVIDII se samozřejmě to, co ukazují první testy pod DX12 moc nelíbí a snaží se využít svého PR k bagatelizování některých věcí a přínosů. Dokonce si sama naběhla, když osočila autory výše uvedeného benchmarku, že mají chybu v testu, která znevýhodňuje NV grafiky. Jak se ale ukázalo, NV měla ke hře přístup a stejně jako AMD ho důsledně využila a bohužel to byla ona a jejíž upravené a pro daný test připravené ovladače, které obsahovaly chybu. NVIDIA samozřejmě nadále bagatelizuje výsledky, ale to je tak to jediné, co s tím může dělat.

Fakt, že její grafické karty jsou a budou pod DX12 horší proti AMD Radeon GCN grafikám než jak tomu bylo pod DX11 si uvědomuje (i když to nahlas do světa křičet pochopitelně nebude). Moc dobře ví, v čem ten rozdíl je a proč tomu tak je. Vůbec třeba nezpochybňuje přínos paralelní architektury a asynchronních shaderů, dokonce se je u GTX 900 grafik snaží SW simulovat, samozřejmě s mnohem menším přínosem a efektivitou, než nativní konstrukce GPU v případě AMD GCN, takže tato technologie bude v případě GTX grafik k ničemu. GTX grafiky a KEPLER-MAXWELL architektura prostě nemá architekturu ideální pro DX12 a technologie okolo, zatímco AMD ano. Pravdou je, že větší využití paralelního zpracování si do API prosadilo (ovšem k užitku všem) právě AMD, které všem ukázalo, jak mizerně jsou na tom s výkonem a využitím HW prostředků jak DirectX, tak OpenGL. Na základech a technologiích jeho API MANTLE vznikl DirectX12, který spousta nápadů převzal (i to je důvod proč DX12 poběží na Radeonech s větším přínosem) a nový VULKAN, který přímo z API MANTLE vychází, jde samozřejmě úplně stejnou technologickou cestou. AMD tedy nebude mít výhodu jen pod DirectX12 ale i pod API VULKAN a s ním každá výrazně paralelní architektura čipů atd. A to je něco, co nyní například právě architektura NVIDIE tak úplně nemá.  

 

  • Závěr

Stinnou stránkou faktu, že i starší grafiky AMD mají lepší předpoklady pod DX12 než aktuální GTX grafiky je, že bohužel z nějakého důvodu NVIDIA prodávala více grafik v posledních letech než AMD, což by mohlo komplikovat nástup DX12 v plném rozsahu. Na druhou stranou naštěstí je to AMD, které obsadilo obě klíčové herní konzole s GCN architekturou a minimálně XBOX One pod DirectX12 skutečně pojede. To by tedy mělo být více než dostatečným impulsem pro vývojáře her nástup DirectX12 a všech jeho výhod nebrzdit a zatím to vypadá, že skutečně na DX12 mnozí spěchají.

DirectX12 (a vlastně i API VULKAN) konečně budou podstatně lépe a více využívat skutečného výkonu grafik (nejen). Takže když první "herní" testy DX12 naznačují, že na GTX 980Ti výkonem stačí i Radeon R9 390X, je myslím více než reálné očekávat, že AMD FURY série bude nakonec podstatně výkonnější, než co ukazuje současná realita. Opět se ale musíme podivit nad tím, proč se tak dlouho otálelo. NVIDIA na výkonu současných GTX grafik pod DX12 nic moc nezmění, to bude moci změnit až novou architekturou, kterou se opět technologicky více přiblíží k AMD GCN architektuře. Ta však také udělá příští rok velký skok. Každopádně zatím všichni herní vývojáři si DX12 hodně chválí a reálně slibují minimálně 20% plus nárůst výkonu a možností při stejném HW proti DX11. Další testy ukazují ještě větší potenciál, při využití všech novinek a zejména všech aspektů, které podporuje a dovoluje pro DX12 vhodná architektura GPU. Myslím, že mluvím za všechny, když řeknu, už aby to bylo. Už včera bylo prostě na DX12 pozdě. Já nevím jak vám, ale nějak nejsem nadšený z toho, že mám grafiku s výkonem 100%, kterou živím 100% energie a za to mám v současných DX11 hrách stěží 50% jejího skutečného výkonu a hlavně o tom celém vím ...

Pokud si chcete o všem přečíst trochu podrobněji a více fundovaně, doporučuji tyto odkazy (zde a zde)

 

  • Aktualizace 2.9.2015:

AMD k celé záležitosti kolem DX12 znovu dodává, že v současnosti neexistuje nic jako "plná podpora DX12" u současných grafických karet. A to platí jak pro konkurenční NVIDIA GTX 900 modely, tak pro stávající AMD Radeon R9 300 a FURY "FIJI" modely grafik AMD. Nejblíže k plné podpoře má AMD FURY, nicméně i té chybí některé specifické technologie, například Raster Ordered Views a Conservative Raster. Ty se naštěstí dají nahradit jinou technologií, i když ne tak efektivní. Nicméně i kvůli tomu zkrátka ani FURY, nejmodernější a nejsložitější 28nm GPU, nemá plnou podporu DX12.

NVIDIA se k celé věci vyjadřuje až nezvykle stručně. Tedy pokud jde o samotný herní test a benchmark Ashes of the Singularity, snaží se jeho výsledky bagatelizovat, ačkoliv už tak kategoricky neprohlašuje, že je v něm chyba, protože se ukázalo, že chyba byla v jejích na test optimalizovaných ovladačích. Firma se ale již snaží na DX12 stav podpory u svých grafik upozorňovat co nejméně. Pravdou totiž je, že AMD objektivně má výhodu a DX12 pro jeho grafiky znamená díky Asynchronním shaderům bude znamenat mnohem zajímavější nárůst výkonu, než pro GTX grafiky. NVIDIA si dobře jejich absenci uvědomuje a snaží se tuto technologii alespoň simulovat SW. Nutno dodat, že neúspěšně a to vysvětluje proč má v tom benchmarku Ashes NVIDIA občas záporný přínos pod DX2 vůči DX11. Prostě její řešení, o které se snaží nahrazením Asynchronních shaderů, nefunguje a nikdy nebude a nedá se s tím nic dělat u stávajících grafik. NVIDIA tedy celou záležitost oficiálně komentuje, jako že se těší na nové DirectX12 a nové DX12 hry a její grafické karty jej podporují. To jak moc už nerozebírá. GTX 900 grafiky budou tedy pravděpodobně vůči generačně konkurenčním Radeonům v nevýhodě, což může trápit uživatele trochu už letos, kdy se první DX12 hry objeví a také v příštích letech, pokud současné 28nm grafiky AMD a Radeon chtějí používat i nadále bez investice do nové generace v příštím roce.

NVIDIA, stejně jako AMD už ale právě připravují novou generaci GPU. Pravdou je, že NVIDIA ani nemohla technologie DX12 podporovat tak dobře jako AMD. Ačkoliv to někteří neradi slyší, AMD má technologicky už roky navrch a jeho technologie a nápady se stávají standardy, což lze těžko popřít. DX12 hodně čerpá z technologií a nápadů API MANTLE, tudíž je jasné, proč na ně těžko mohla NVIDIA být připravena lépe. Druhou věcí je, že MAXWELL je pořád jen evoluce KEPLERU a stejně jako GCN už tady prostě pár let je, za což zase můžeme děkovat TSMC a to už jsme opět u starého příběhu s výrobními procesy a plány výrobců GPU, které v posledních 2-3 letech byly spláchnuty do záchodu (několikrát). Zlepšení podpory DX12, lepší optimalizace pro DX12 a další věci kolem toho, přijde tedy logicky až s novou generací architektur obou výrobců, které však bez nového výrobního procesu nemělo smysl dělat. 16nm je už ale na cestě, AMD s NV mají první vzorky svých nových čipů, které tak téměř určitě už plnou podporu DX12 nabídnout. K tomu nabídnout i výrazné zvýšení výkonu díky přechodu z 28 na 16nm a v případě obou výrobců pak plné využití HBM2 pamětí. Máme se tedy na co těšit ... pro stávající grafické karty už se ale nic nezmění a tak paradoxně vše nasvědčuje tomu, že se blíží další Pyrrhovo vítězství pro AMD. Ano, technologicky a možná i výkonově budou mít její starší a stávající grafiky proti generační konkurenci NVIDIA grafik navrch v nadcházejících DX12 hrách, většina uživatelů má právě ty GTX grafiky a ne Radeony. Jediné co tedy někteří mohou začít pomalu tvrdit je "Říkali jsme vám to" ....

Samotný vliv DX12 v prvních hrách může být menší, než co ukazují testy, i když bude určitě měřitelný. Jak někteří správně připomínají, velké naděje jsme měli i kolem DX11, což se ukázalo být nakonec jako více než plané. Na druhou stranu tak zajímavé přínosy, které už reálně DX12 proti DX11 ukazuje v realistických případech, neukazovalo DX11 nikdy, takže přeci jen máme reálný důvod být více optimističtí. Nemluvě o tom, že současný Microsoft sotjící za DX a současný vývoj kolem API, je ve zcela jiné situaci a stavu věcí, než za dob nástupu DX11.  

 

 

 

 

AUTOR: Jan "DD" Stach
Radši dělám věci pomaleji a pořádně, než rychle a špatně.

Starší články


Komentáře
Přidat Nový
Pouze registrovaní uživatelé mohou přidat komentář!