DirectX 12 a Async Compute: Je GCN trvanlivější architektura a Maxwell kometa?

1. 9. 2015

Sdílet

 Autor: Redakce

Windows 10 jsou zde, DirectX 12 s nimi, a dost možná tedy zrovna začíná cosi jako nová éra herní grafiky. Co nám přinese konkrétního je zatím nejisté, ale zdá se, s příchodem nového API by se mohla poněkud rozčeřit rovnováha sil v oblasti grafik (ta je možná až nezdravě vychýlená současným dominantním podílem Nvidie na prodejích). Že se pozice ve „starém režimu“ DirectX 11 nemusí přesně přelít i do situace za DirectX 12, naznačil minulý měsíc benchmark Ashes of Singularity založená na stejnojmenné strategické hře.

Ty přinesly překvapení, když grafiky AMD založené na architektuře GCN podávaly mnohem vyšší výkon, než jejich soupeři s architekturou Maxwell od Nvidie. Radeonů pod DirectX 12 dokonce najednou soupeřily s o třídu dražšími GPU Nvidie (Hawaii například dosáhlo téměř výkonu GM200). Kolem těchto čísel se rozproudila docela zajímavá debata. Asi bychom měli upozornit, že zatím ještě asi neukazuje plně objektivní stav věcí, který bude možné zhodnotit až po určité době. Nicméně pohled je to zajímavý.

V Ashes of Singularity zvedá DirectX 12 výkon Radeonů až podezřele (Test webu Ars Technica)
V Ashes of Singularity zvedá DirectX 12 výkon Radeonů až podezřele (Test webu Ars Technica)

O oněch testech v Ashes of Singularity jsme zde pokud vím neinformovali, jelikož ze začátku nebylo jisté, zda jsou skutečně relevantní. Nvidia dokonce médiím rozeslala maily, varující před tím, že benchmark v jejích očích neukazuje správně výkon grafik v DirectX 12, jelikož obsahuje chyby – a že by k němu tedy nemělo být přihlíženo. Ovšem tak jednoduché to nebylo, chyby prý byly ve skutečnosti v ovladačích Nvidie. Přes vyjádření jejího PR oddělení to vypadá, že výrazné výkonnostní vedení v Ashes of Singularity a DirectX 12 má architektura GCN možná zaslouženě, jelikož je na nové API a nové enginy lépe připravená, zatímco loni uvedený Maxwell zde překvapivě má mezery.

Vzhledem k tomu, že Ashes of Singularity jsou jen jeden test, by jej asi bylo možné odmávat jako výstřelek. Tvůrci z Oxide Games jej však hájí. Za prvé jsou výsledky také obrazem toho, že Nvidia má v této hře velmi dobrý výkon v režimu DirectX 11 (kdežto AMD moc ne), než že by měla vyloženě špatný výkon v DirectX 12. Ovšem u AMD nastává to, že karty z DirectX 12 ve výkonu získávají masivní přínosy, a podle vysvětlení to má dobrý důvod daný schopnostmi architektury GCN.

  AMD Radeon R9 Nano na oficiálních fotografiích

Důvodem, proč GCN DirectX 12 prospívá, má být použití asynchronních výpočtů (Async Compute) v Ashes of Singularity. GCN na ně má být od počátku připraveno, jenže DirectX 11 je neumožňovalo využít – na rozdíl od DirectX 12. Nyní ovšem kartám přinášejí výkon navíc, a to je přitom Ashes of Singularity nemá využívat nějak extenzivně – údajně byly prostě aplikovány tam, kde si o to stávající kód říkal. Jejich přínos je sice výrazný, ovšem na konzolových hrách, které na ně kvůli plnému zaměření na GCN kladou větší důraz, prý v některých případech mohou výkon zlepšit až o 30 %. Podle Oxide Games (jejichž vývojář se s těmito informacemi a úvahami podělil na fóru Overclock.net) by se toto mohl časem částečně projevit i v PC, až bude naportováno více enginů a her z konzolí.

Nvida ale z této funkce netěží, podle Oxide Games totiž architektura Maxwell asynchronní výpočty v podstatě používat neumí. Respektive, jejich výkon je velmi nízký kvůli nutnosti používat přepínání kontextů, takže vedou jen ke zpomalení a je lepší se jim vyhnout. Bohužel ačkoliv je podpora buď emulovaná, nebo jinak neplnohodnotná, ovladače ji avizují, což bude možná vývojářům způsobovat problémy. Lze si představit, že vzhledem k současnému dominantnímu postavení značky GeForce a vztahům s vývojáři bude výsledkem, že se tyto funkce raději přestanou používat (jelikož jsou na GeForce pomalé). Tato situace by prý mohla nastat třeba s hrami na enginu Unreal, pro který je Nvidia oficiálním partnerem, to ale může být jen spekulace.

 

 

Optimalizace pro současnost a pro budoucnost

Tento příběh ukazuje, jak je to s výkonem a efektivitou grafických architektur ošemetné. Například většina z vás (třeba i vzhledem k spotřebě) nejspíš bude soudit, že Maxwell je efektivnější architektura, než současné a minulé verze GCN. Jenže jak vidíme, může tomu tak někdy být jen v DirectX 11. Lze také říct, že pod DirectX 11 jsou funkce jako asynchronní výpočty pro GCN v podstatě jen zátěží v podobě spotřeby a tranzistorů navíc, neboť je nemůže využít.

Naopak Maxwell možná profituje z toho, že některé funkce vypustil. To třeba pod dnešními API byla dobrá volba, ale jak se ukazuje, v budoucnosti se taková optimalizace může obrátit proti vám. Do jisté míry je ovšem možné i to, že Nvidia díky své pozici může spíše vývojářům diktovat podmínky, kdežto AMD si nemůže tak snadno dovolit něco nepodporovat. Může se tak dostat do situace, kdy má sice více trvanlivou a robustní architekturu, ale přesně kvůli tomu ztrácí na „odlehčenou“ konkurenci v hrubém výkonu u reálných her. To myslím dobře ukazuje, jak jsou faktory ovlivňující pociťovaný výkon a efektivitu komplexní.

 

 

Je Ashes of Singularity nezávislý benchmark?

Zajímavé je také, že benchmarku Ashes of Singularity se dotýká i jiná kontroverzní věc, která výkonem karet občas může hýbat, a to partnerství studia s výrobcem GPU. Oxide Games má pro tuto hru s AMD marketingové partnerství, jeho vývojář však na webu sdělil, že to neznamená, že neměli čilé konzultace i s Nvidií (a Intelem, při vývoji snad i častější než AMD). Hra údajně nemá žádný specifický kód pro AMD, jediné funkce napsané na míru jednomu výrobci se naopak týkají Nvidie a obcházejí mimo jiného právě nefunkční Async Compute. Paradoxně to prý také byla Nvidia, u níž se dá hovořit o snaze ovlivnit vývoj, když její zástupci žádali vypuštění některých prvků z benchmarku, což však vývojáři odmítli udělat.

 

Žádná grafika dnes neumí 100 % funkcí DirectX 12

K chvále na schopnosti Async Compute v Radeonech s architekturou GCN se mimo jiné na internetu přidal Robert Hallock z AMD (od nějž pochází i informace o tom, že slabý výkon v Maxwellu by měl být kvůli přepínání kontextů). Kromě toho ale pronesl něco, co asi stojí ta to vypíchnout: Na základě toho, že daná architektura neumí některé funkce, by se neměly dělat příliš dalekosáhlé závěry.

bitcoin_skoleni

V tuto chvíli podle něj žádná grafická architektura nemá naprosto stroprocentní pokrytí všeho nového z DirectX 12 – jejich výbava se totiž liší a pokrytí různých funkcí se nikdy úplně nekryje. Zatímco Maxwell má (údajně) svůj problém s asynchronními výpočty, GCN zase podle Hallocka postrádá funkce Raster Ordered Views a Conservative Raster. Tyto nedostatky ale podle něj zmírněné tím, že stejné efekty – například globální osvětlení – jako s těmito funkcemi lze s dostatečným výkonem implementovat i jinak. To ale samozřejmě bude záviset na enginech a vývojářích, pokud si usmyslí použít právě tyto funkce, může mít zase smůlu AMD jako nyní Nvidia v Ashes of Singularity.

Zdroje: WCCFtech (1, 2, 3), Ars Technica