Optimalizace pro Ryzen: výkon v AotS se zlepšil až o 30 %, AIDA64 už má podporu pro Zen

30. 3. 2017

Sdílet

 Autor: Redakce

Po vydání procesorů Ryzen AMD přislíbilo, že se pokusí vývojářům pomoci zoptimalizovat výkon těchto nových CPU ve hrách, v nichž má nová architektura z nějakých důvodů mezery. Nyní se jedna z prvních takových aktualizací objevila a zřejmě dává důkaz, že herní výkon Ryzenu skutečně skryté rezervy má.

Updatu zaměřeného na výkon s Ryzenem se dočkala strategie Ashes of the Singularity, používaná také jako benchmark. Optimalizovaná je nově vydaná verze hry 2.11.26118 se začleněným datadiskem Escalation. Ten by ovšem měl být pro majitele původní hry zadarmo a měli by ho dostat aktualizací přes Steam. Zvýšení výkonu je údajně velké, AMD uvádí 26–33 % s Ryzenem 7 1800X v rozlišení 1920 × 1080 bodů a s nastavením High.

Tyto hodnoty zdá se nejsou daleko od reality. Proti předchozí verzi 2.11.25624 už nové sestavení stihl vyzkoušet web PC Perspective, který naměřil podobné změny. V nastavení High dostal o 22–31 % lepší výkon, na nastavení Extreme pak o 17–20 % lepší. Použil přitom desku Asus Crosshair VI Hero s čerstvým BIOSem 1002, Ryzen 1800X a GeForce GTX 1080. Nižší zlepšení přitom platí pro paměti DDR4 na taktu 2400 MHz a vyšší zlepšení pros testování s pamětí na 3200 MHz (nejmenované moduly Geil). Zdá se tedy, že neoptimální kód více brzdil sestavy, které měly rychlou RAM, než ty s pomalejší.

PC Perspective pro kontrolu otestoval také procesor Core i7-6900K, který také poskytuje osm jader s HT (SMT) jako Ryzen 7 1800X, v jeho případě ale došlo jen ke kosmetickému zlepšení (0,37 %). Posun ve výkonu se tedy zřejmě týká jen Ryzenu, ne obecně celého kódu hry.

Díky čemu byla hra takto zrychlena (či obráceně řečeno, co ji ve starší verzi v této míře zpomalovalo), bohužel nebylo vývojáři vyjasněno. Optimalizace by mohly spočívat v několika věcech. Jednak jsou tu nastavení kompilátoru, aby při překládání použil nastavení optimální pro architekturu Zen. Ta ale nemá proti současným Intelům navíc nějaká instrukční rozšíření, takže by mělo jít jen o řazení instrukcí, které by nemělo u out-of-order architektury udělat velký rozdíl. I vzhledem k tomu, že výkon Broadwellů-E se nezhoršil, asi Stardock a Oxide Games hýbali hlavně se způsobem, jakým hra používá vlákna. Je možné, že dříve přebíjela scheduler operačního systému a rozdělovala vlákna neefektivně. Pravděpodobně také mohl být nějak ošetřen přístup k mezipaměti L3 cache, která je u Ryzenu rozdělena do dvou bloků CCX stejně, jakou jsou jádra rozdělena do dvou čtveřic, mezi nimiž je pomalejší komunikace než uvnitř těchto bloků.

Ashes of the Singularity měla zřejmě co do používání jader a SMT chybné chování, jelikož na neoptimálnost a plánovanou opravu dokonce upozorňovalo samo AMD. Zlepšení (o dvouciferná procenta) je asi tak velké právě proto, že jde spíše o opravu, než o „optimalizaci“ v striktním slova smyslu.

Snímek ze hry Ashes of the Singularity: Escalation Snímek ze hry Ashes of the Singularity: Escalation

Aktualizace zlepšující výkon se mimochodem objevila také pro hru Defense of the Ancients 2 (obvykle zkracováno DOTA 2). Sestavení z 20. března má údajně výrazně zlepšovat minimální FPS v tomto titulu na procesorech Ryzen. Podle poznámek k vydání spočívá toto zlepšení v opravě způsobu, jakým hra používá vlákna CPU.

dota-2-ryzen

bitcoin_skoleni

Nová AIDA64

Update zaměřený na Ryzen se mezitím objevil také v benchmarku AIDA64, používaném k testování paměťového subsystému a cache. Nová verze v5.90.4200 přináší optimalizace pro Ryzen, ale také třeba pro čipy Intel Apollo Lake. Ryzeny by v této verzi AIDA64 měly vykazovat lepší latence L2 a L3 cache, které by měly korespondovat s jejich skutečným výkonem. Je pravda otázka, zda má větší smysl paměťový subsystém měřit speciálně vyladěným algoritmem, nebo kódem, který je agnostický k architektuře a tedy by měl spíše simulovat reálný software. Ovšem pro ostatní již existující architektury je AIDA64 již takto optimalizována také, takže měření Ryzenu s novou optimalizovanou verzí je férovější.

Poznámky k vydání AIDA64 v5.90.4200 Poznámky k vydání AIDA64 v5.90.4200

Podle vývojářů programu lze již verzi 5.90.4200 považovat za plně kompatibilní s procesory Ryzen na rozdíl od verzí starších. Výsledky testů by měly být plně relevantní, i když v poznámkách k vydání je uvedena jen „počáteční podpora pro procesory AMD Zen“. Tato zmínka se nicméně může týkat detekce senzorů, turbo stavů a podobných údajů, nikoliv testů výkonu. Aktuální verzi lze stáhnou zde.