Květnová aktualizace Windows 10 obsahuje i vylepšení pro Threadripper WX
Vydání Threadripperu 2990WX provázely dvě potíže s Windows 10, jejichž důsledkem byl nižší výkon, než jakého tentýž procesor dosahoval pod Linuxem. První, méně závažný a rychle vyřešený problém se týkal faktu, že je Threadripper 2990WX tvořen čtyřmi křemíkovými moduly, ale pouze k paměťovému rozhraní dvou z nich jsou připojeny operační paměti. Jádra přítomná na modulech nepřipojených k paměťovému řadiči musejí komunikovat přes připojená jádra, což znamená o něco vyšší latence a tím pro některé aplikace mírně nižší výkon.
To AMD vyřešila tak, že do aplikace Ryzen Master implementovala funkci nazvanou Dynamic Local Mode, která vlákna úloh primárně přiřazuje jádrům v modulech vybavených aktivním paměťovým řadičem. Tato změna měla podle nezávislých aplikačních testů dopad na výkon v rozpětí 0-12 %. U vybraných her snad i více, ale spíše v kombinaci novějších náročných her s nízkým rozlišením, což není zrovna nastavení typické pro hráče vybaveného high-endovým procesorem.
Druhý problém, zásadnější, izolovali Wendell Wilson a Jeremy Collake, kteří zjistili, že valná většina výkonnostního rozdílu mezi Linuxem a Windows nejde na vrub způsobu připojení pamětí k modulům, ale chování operačního systému Windows. Ten má z nějakého důvodu tendenci neustále přehazovat vlákna aplikací z jednoho modulu na druhý, což vyžaduje přesun obsahu cache z jednoho modulu na druhý, což ukusuje z času, který nemůže být použit pro samotný výpočet. Tato podivná režie Windows 10 je schopna v extrému zkonzumovat až 50 % výkonu čtyřmodulových Threadripperů, tj. 2990WX a 2970WX.
Utilita CorePrio a její NUMA Dissociater
Wilson a Collake připravili aplikaci nazvanou CorePrio, s jejíž pomocí lze tuto zataženou ruční brzdu povolit. CorePrio navíc umožňuje ovládat i výše popsaný Dynamic Local Mode. Tolik k rekapitulaci dosavadních událostí.
Novinkou je, že AMD v prezentaci Zen 2 zmínila, že květnová aktualizace Windows 10 (1903) nepřináší pouze vylepšení pro Zen 2, ale také pro předchozí generace Zenu. Tzv. CCX-Aware Scheduling tedy bude k dispozici pro všechny Ryzeny. Jeho cílem je, aby operační systém vytížil nejprve procesorová jádra v rámci jednoho bloku CCX, než je začne přiřazovat jádrům v dalších blocích. To přináší vyšší efektivitu z hlediska výkonu i energetické stránky.
Jednak je tím zaručeno, že dvě vlákna jednoho procesu poběží na jádrech sdílejících stejnou cache (tzn. rychlejší přístup k datům a eliminace potřeby kopírovat stejný obsah do více bloků cache) a jednak to znamená, že v případě využití nižšího počtu jader mohou nevyužité CCX bloky zůstat v úsporném režimu a konzumovat méně energie. Toto se má týkat Zen, Zen+ i Zen 2 (zda bude přínos u předchozích generací znatelný, samozřejmě nelze říct, dokud to někdo nezměří v aplikaci citlivé na takovou situaci).
Druhou novinkou, která se týká čtyřmodulových Threadripperů (2970WX, 2990WX), je implementace NUMA-Aware Scheduling do Windows 10. To bude prioritně přiřazovat úlohy modulů s fyzicky připojenou operační pamětí.
Nezodpovězenou otázkou zůstává, zda je NUMA-Aware Scheduling pouze náhradou pro tzv. Dynamic Local Mode, která nevyžaduje instalaci aplikace Ryzen Master, nebo zda přináší něco víc a například v kombinaci s CCX-Aware Scheduling zajistí, aby Windows 10 nepřehazovaly vlákna z jednoho modulu na druhý jako horký brambor a neztrácela tím zbytečně výkon. To by nahradilo aplikaci CorePrio a její NUMA Dissociater. Bylo by to praktické. Odpověď dá opět až nějaký ten test.
Každopádně je příjemné vidět, že AMD s Microsoftem pracuje i na zlepšeném chování produktů, které jsou rok až téměř dva a půl roku staré, přestože tím de facto snižuje motivaci svých zákazníků k upgradu.
AMD