DirectX 12 (a vedle něj další nízkoúrovňová API nové generace, teď hlavně Vulkan) se stalo zdrojem různých nadějí v oblasti herní grafiky. Jednou velmi zajímavou možností, kterou má přinést, jsou pokročilé možnosti ve využití více GPU. Jeho technologie Explicit Multi-Adapter dokonce umožní v provozovat SLI/CrossFire odlišná GPU různých výrobců. Možnost, která před několika měsíci zněla jako novinářská kachna, je skutečností – web AnandTech už ji stihl vyzkoušet a otestovat na hře Ashes of the Singularity, jednom z prvních benchmarků DirectX 12.
Hybridní multi-GPU mezi diskrétními kartami Nvidie a AMD běží ve speciálním (zatím bohužel neveřejném) sestavení, které z Oxide Games AnandTechu poskytli. V takovém případě je použit takzvaný režim „unlinked“, zatímco Explicit Multi-Adapter má ještě režim „linked“, určený pro spřažení dvou stejných GPU.
V Ashes of the Singularity je práce stále rozdělována metodou AFR (střídání na celých snímcích), zatím se ale také jedná jen o technologickou demonstraci, funkce ještě není ani ve fázi alfa verze. Podstatné je, že AFR by mělo být použitelné jen s podobně výkonnými grafikami, pro kombinace typu integrované a highendové GPU není.
AnandTech tak vyzkoušel kombinaci GeForce GTX 980 Ti s Radeon R9 Fury X a dále GTX Titan X, Radeon R9 Fury a jako perličku pak GeForce GTX 680 a Radeon HD 7970. Jak můžete vidět na grafech, škálování skutečně funguje. Na testovaných konfiguracích dokonce o něco lépe v heterogenních konfiguracích (nárůst o 65–75 % proti jedné kartě), než v těch stejnobarevných (46 % u dvou GeForce, 66 % dva Radeony).
Absolutní výkony v testu na 1440p (Zdroj: AnandTech)
Procenta škálování jsou poměrně slušná. Lépe škálují hybridní páry a kombinace, kde je primární kartou Radeon (Zdroj: AnandTech)
Šéfovat umí líp Radeony
Synchronizace obou GPU vyžaduje sdílení dat a určitou režii, takže jedno z GPU má nadřazenou roli – v testech se to projevovalo tak, že tato karta byla stále 100% aktivní, zatímco druhá byla mírně pod 100 %, zřejmě kvůli různému čekání na pokyny/práci závisející na kartě první. Zdá se, že není úplně jedno, která karta funguje jako primární a která je nastavena jako sekundární. V testech se jako „šéf“ osvědčily lépe Radeony, byť samostatně s nižším absolutním výkonem. Například pár Radeon R9 Fury X a GeForce GTX 980 Ti je rychlejší než opačně, kdy je primární GTX 980 Ti.
Absolutní výkony v testu na 4K (Zdroj: AnandTech)
Škálování dvojice GPU proti jedné kartě v procentech (Zdroj: AnandTech)
Tento rozdíl je pak znatelnější v rozlišení 4K, kde také opět ztrácí škálování dvou GeForce. Je možné, že Fiji v roli dominantního partnera pomáhá blok XDMA a to, že je karta stavěná na CrossFire po sběrnici PCI Express. Zatím jde ale o ranou verzi programu, takže stejně jako s lepším škálováním „hetero“ párů proti těm stejnoznačkovým může jít jen o projev nezralosti implementace, který po odladění zmizí.
Funguje i první generace GCN, Kepler částečně
Poměrně zajímavá je situace u testovaných starších grafik, kterými byla GeForce GTX 680 a Radeon HD 7970. Coby samostatná karta je v Ashes of the Singularity výrazně silnější Radeon HD 7970, který zdá se zestárl lépe, než GeForce GTX 680 na bázi architektury Kepler. Škálování obou funguje přesto docela slušně a přes omezení daná režimem AFR získáte navíc 55 %. Ovšem jen pokud je šéfem ve dvojici Radeon. GeForce GTX 680 v roli primární karty nefunguje a pomoc od konkurence vede k výraznému zpomalení (tedy škálování je negativní). GeForce GTX 680 + Radeon HD 7970 je ve výsledku o 40 % horší, než jen samotná GTX 680. Opět může jít hlavně o nevyladěnost, i když přispívat by teoreticky mohla nějaká slabina Kepleru či čipu GK104.
Multi-GPU funguje i se staršími kartami, přes větší rozdíl jejich výkonu. Ovšem primární nesmí být GeForce (Zdroj: AnandTech)
Ačkoliv tento raný test ukazuje, že takové „nečisté“ multi-GPU může fungovat (i když někde ho bude ještě třeba poštelovat), neznamená to ještě, že bude v budoucnu ve hrách velmi rozšířené. Jelikož vyžaduje explicitní Multi-Adapter, padá práce s implementací na vývojáře hry či enginu – ti musí obstarat alokaci paměti, přidělování úloh a tak podobně. Vývojáři jdoucí cestou nejmenšího odporu budou patrně nadále využívat jen implicitní multi-GPU, které je mnohem bližší dnešnímu stavu, používá AFR a je z velké části věcí ovladačů. U takových her si pak účinnou kolaboraci Radeonů a GeForce neužijete. Nicméně uvidíme, jak se věci vyvinou, je možné, že třeba áčkové tituly příjemně překvapí.
Ashes of the Singularity bude existovat i pro API Vulkan
Mimochodem na závěr. Pokud vás mrzí, že je takovéto experimentování s grafickými API nové generace (v podobě DirectX 12) zatím omezeno na instalace Windows 10, vězte, že Oxide Games tento týden oznámilo také port hry Ashes of the Singularity na Linux. Ten má používat API Vulkan, v němž se firma údajně také angažuje. Nicméně vydání asi bude zpožděno vlivem toho, že toto API je v ranějším stádiu a ještě asi bude nějakou dobu trvat, než budou k dispozici ovladače v dostatečně uzrálé formě.
Zdroj: AnandTech