Zpomalení procesorů AMD ve Windows 11 opraveno. Chyba ve správě spotřeby L3 Cache?

25. 10. 2021

Sdílet

 Autor: Fritzchens Fritz, použito se souhlasem autora - public domain
Chyby, které ve Windows 11 způsobovaly zhoršený výkon u procesorů AMD, už jsou opravené, aktualizace k dispozici. Objevilo se i vysvětlení, kde se divný bug s 3× pomalejší L3 Cache vzal.

Když začátkem měsíce vyšly procesory Windows 11, ukázalo se, že i ve finální verzi jsou dvě chyby, zhoršující výkon procesorů AMD Ryzen. Nefunkční detekce preferovaných jader mohla snížit jednovláknový výkon, současně ale také procesory zdánlivě měly výrazně zpomalenou L3 cache. Na obojí by už teď měla existovat záplata a také se objevilo možné vysvětlení toho, jak dost podivný bug zpomalující L3 cache vznikl.

Nové ovladače

Řešení bylo na webu AMD oznámeno ve čtvrtek, přičemž oba problémy by údajně měly být opravené. Jak bylo už dříve uvedeno, první problém měl řešit Microsoft, druhý ovladače AMD. Ty jsou již venku, opravu přináší ovladače čipové sady AMD (AMD Chipset Software) 3.10.08.506, které můžete najít zde.

Chyba opravená těmito ovladači by měla nastávat jen ve Windows 11 (jde o regresi proti Windows 10, u těch nic řešit nemusíte) a spočívala v tom, že nefungoval systém preferovaných jader. S tím mají Windows pomocí rozhraní CPPC2 poznat jádra procesoru, která dosahují nejlepšího výkonu (tzv. preferovaná jádra) a používat je přednostně pro jednovláknové úlohy.

Na Windows 11 to u Ryzenů z nějakého důvodu přestalo fungovat, takže systém používal jádra bez ohledu na to, zda jsou preferovaná. Tím pádem mohla aplikace přijít na jádro, s nímž nemůže procesor vyboostovat na tak vysoký takt, jako na preferovaném, takže výkon mohl být o několik procent horší. Ale nyní by už problém by měla řešit tato oprava v rámci ovladačů. U procesorů s architekturou Zen 3 by mělo stačit ji nainstalovat, u starších generací s jádry Zen(+) a Zen 2 uvádí AMD, že pro ideální výkon by ještě navíc mělo být zvolené schéma spotřeby AMD Ryzen Balanced.

Opravy regrese výkonu u procesorů AMD Ryzen ve Windows 11 Opravy regrese výkonu u procesorů AMD Ryzen ve Windows 11 (Zdroj: AMD)

Update Windows 11

První chyba je naopak řešena přímo aktualizací Windows 11 – jde o aktualizaci KB5006746, nalézt ji lze zde, snad by měla být distribuována automaticky přes Windows Update. Jde o aktualizaci přinášející další změny a opravy, takže toto sestavení není čistě opravou problému s procesory AMD. Podle AMD by měly po těchto opravách procesory Ryzen ve Windows 11 už pracovat tak, jak mají.

Tento druhý bug se projevoval tak, že L3 cache procesorů Ryzen (zřejmě u všech generací) měla výrazně snížený výkon, v programech jako AIDA by při změření latence a propustnosti vycházely až třikrát horší hodnoty, než na Windows 10. A nešlo jenom o problém v tomto testu, podle AMD to odpovídalo realitě i v aplikacích, které tak měly potenciálně o několik procent horší výkon. Největší zpomalení v některých hrách mělo dosahovat až 15 % (typicky to ale mělo být jen do 3–5 %).

Zejména u této druhé chyby budilo dost podiv, jak se vůbec nějakým problémem v softwaru mohl změnit výkon L3 cache, objevily se například spekulace o tom, zda nejde o opravu (tzv. mitigaci) nějakého slabého místa zabezpečení v architektuře ve stylu chyb Spectre a podobných. To asi ale nenastalo, vzhledem k tomu, že výkon byl zase obnoven.

amd ryzen 9 5950x 03 AMD Ryzen 9 5950X (Zdroj: HWCooling.net)

Byl zdrojem problémů uspávání části L3 cache?

Jedno vysvětlení nabízí Andrei Frumusamu z webu AnandTech, i když není úplně jasné, odkud tuto informaci bere a zda je to skutečně potvrzeno. Stalo se podle něj to, že cache sice v procesoru normálně běžela se svojí standardní latencí a frekvencí, ale z nějakého důvodu ve Windows 11 byla její část vypnutá.

Procesory Ryzen totiž dokáží část kapacity L3 cache vypínat, pokud není využívána, aby se tím snížila spotřeba CPU. Ve Windows 11 se údajně bloky cache takto vypínaly chybně, i když je procesor potřeboval. Procesor měl tak možná aktivní třeba jen 2 MB L3 cache (nebo kolik je minimální množství, které procesory ponechávají zapnuté) místo plných 32 MB u Ryzenů 5000.

https://twitter.com/andreif7/status/1451285237904908292

Toto by pak způsobilo onen propad výkonu v aplikacích. AIDA v takovémto stavu naměří vyšší latenci a nižší kapacitu proto, že její test počítá s větší kapacitou a vlastně tedy místo latence a propustnosti L3 měří další stupeň paměťové hierarchie, což je už operační paměť (výsledné skóre je pak z části reprezentací propustnosti a latence RAM, ale výsledky nebudou úplně stejné, protože za začátku pořád část testu používala zmenšenou L3 cache).

ICTS24

Uvidíme ale teprv, zda se toto vysvětlení potvrdí. Přímo AMD nebo Microsoft o důvodech obou zpomalujících chyb nikdy nic neřekly.

Zdroje: AMD, Andrei Frumusamu/Twitter