AMD říká, proč Windows nepreferují nejlepší jádra Ryzenů 3000

To, že Windows preferují jiná jádra, než Ryzen Master a HWiNFO zobrazují jako nejvalitnější, není chyba

Frekvence a systém boostování 7nm Ryzenů 3000, toť zřejmě nekončící téma. Jednou ze zvláštností (byť ne výhradní pro AMD) je, že nejvyšší frekvence na čipu zvládají jenom některá jádra a informaci o kvalitě jader teď ukazuje i HWiNFO. Nejnovější Windows 10 by měla tato jádra automaticky preferovat, ovšem podle pozorování se to často neděje. Fungování systému je totiž ještě o něco složitější, jak teď AMD vysvětlilo.

Podnětem k tomuto bylo pozorování, které hlásila řada uživatelů: že totiž ačkoliv by nyní měl OS Windows vědět, která jádra jsou preferovaná (a tedy dosahují nejvyšší boosty), ve skutečnosti je nepoužívá. AMD už nějakou dobu ukazuje v utilitě Ryzen Master, která jádra jsou nejlepší (označeno hvězdičkou), ale toto neodpovídá a Windows umisťuje jednovláknové úlohy na jiná jádra, takže by se zdálo, že ono preferování preferovaných jader jaksi nefunguje.

Ve skutečnosti zřejmě systém funguje podle plánu, ale jak teď AMD vysvětlilo, toto preferování vůbec nemusí používat jádra, která jsou v Ryzen Masteru (a nyní také v HWiNFO) označená jako nejlepší. Scheduler Windows 10 totiž dostává trošku odlišnou informaci o tom, která jádra má vybírat. Ta pochází z rozhraní CPPC2 (Collaborative Power and Performance Control 2), které patří pod UEFI firmware a rozhraní ACPI. Toto rozhraní může Windows sdělovat o kvalitě jader trošku jinou informaci, a to z důvodů, které souvisí s tím, jak se plánovač Windows chová. Zřejmě nejde o závadu, ale o cosi jako „pragmatickou lež v zájmu celku“, o pokus poněkud obejít chování plánovače Windows.

Zobrazení Core Performance Order na procesoru AMD Ryzen 3000 v HWiNFO. To ovšem nemusí odpovídat tomu, která jádra Windows preferuje… (Zdroj: Reddit)

Souvisí to s jednou věcí, kterou občas uživatelé kritizují – Windows mají tendenci stěhovat vlákno z jádra na jádro (typicky mezi párem jader), místo aby ho ponechaly na jednom. Toto na první pohled působí kontraproduktivně (context switch něco stojí, nové jádro nemá v cache data používaná daným vláknem/procesem, a tak podobně). Ovšem Microsoft zřejmě toto nedělá bez důvodu – údajně je to motivované tím, že stěhování z jádra na jádro brání tomu, aby se ono jádro v čipu příliš lokálně přehřívalo. Rozptýlením tepla po čipu přehazováním zátěže by se teoreticky mohlo dát docílit i toho, že jádra po chvilce odpočinku bude dosahovat vyšší turbo, případně bude díky nižší lokální teplotě jádra třeba i o něco málo lepší efektivita/nižší spotřeba. Rozdíl by to asi mohlo dělat hlavně v noteboocích.

V případě procesorů AMD ale takové stěhování mohlo vést k přesunu procesu na jádro, které se nachází v jiném bloku CCX. Přitom CCX spolu nesdílejí L3 cache (na rozdíl od Intelů, kde je L3 sdílená všemi jádry). A z tohoto důvodu zdá se rozhraní CPPC2 při komunikaci s Windows schválně trochu lže. Pokud by totiž sdělilo Windows skutečné pořadí kvality jader, mohla by například první a druhé jádro v pořadí patřit do různých CCX nebo dokonce do různých čipletů. Protože má Windows tendenci přepínat proces mezi dvěma jádry, stěhovalo by ho pak tam a zpátky přes hranici CCX, potenciálně s negativním dopadem na výkon.

Windows preferuje ne nejlepší jádro, ale pragmaticky vybranou dvojici

Informace v CPPC2 jsou proto procesorem zfalšovány, aby vedoucí jádra v žebříčku byla z jednoho CCX a tomuto se zabránilo. Tím teoreticky může dojít k tomu, že mezi preferovanými jádry nebude to, které dokáže dosáhnout absolutně nejvyšší frekvenci. Procesor a jeho řídící jednotka SMU, která má tyto věci na starosti, totiž mohly dojít k rozhodnutí, že lepší celkový výkon s oním přehazovacím schedulerem Windows bude mít dvojice jader v jiném bloku CCX, byť mají obě nižší dosahované takty. Například pokud jedno jádro zvládá 4600 MHz, ale druhé nejlepší v CCX jen 4200 MHz, mohla by dostat přednost dvojice schopná 4500 a 4400 MHz.

Která jádra jsou Windows nahlášená jako nejlepší, by mělo být uvedené v systémovém protokolu ve zprávách Kernel-Processor-Power, které pro jednotlivá jádra uvádí, jaký výkon operačnímu systému avizují coby arbitrárně stanovenou hodnotu „maximum performance percentage“. Redaktor AnandTechu (který toto chování vysvětluje v tomto článku) uvádí, že jeho Ryzen 7 3700X například měl jádra v prvním CCX označená pořadím 151, 151, 148 a 144 (v HWiNFO jde o jádra s kvalitou 2, 3, 6 a 8), zatímco v druhém CCX dostala jádra označení 140, 136, 132 a 128 (kvalita dle HWiNFO 1, 4, 5 a 7). Všimněte si tedy, že Windows budou preferovat jádra v prvním CCX, ačkoliv je mezi nimi kromě druhého a třetího také vůbec nejhorší jádro CPU, až poté bude skórovat vůbec nejlepší jádro spolu se svými horšími kamarády v druhém CCX.

Příklad rozdílu mezi preferovanými jádry dle CPPC2 (druhý sloupec) a dle Ryzen Masteru/HWiNFO a jejich individuální elektrické kvality v třetím a čtvrtém sloupci (Zdroj: AnandTech)

Toto podvádění asi bude nutné, dokud Microsoft nepřehodnotí koncepci scheduleru a nepřestane s oním střídáním jader, či alternativně pokud mu nějak nepřidá schopnost zohlednit složitější stavbu procesorů AMD (či jiných), které nemají všechna jádra rovnocenně sdružené v jedné skupině. Úpravy plánovače bývají ovšem hodně složitá věc, kdy každá změna mívá pozitivní, ale i negativní dopady, a proto nebývá snadné dosáhnout úplně optimální politiky a některé případy mohou být postiženy na úkor jiných.

Údaj o nejlepších jádrech v Ryzen Masteru pochází z testování v továrně, v budoucnu ale také budou ukazovat „pragmatickou lež“ CPPC2

Mimochodem, informace o kvalitě jader v HWiNFO pochází zřejmě ze stejného zdroje jako informace z Ryzen Masteru, takže asi také nebude odpovídat tomu, co CPPC2 říká Windows, takže i zde bude rozpor mezi tím, která jádra považuje za nejlepší HWiNFO a která Windows považuje za preferovaná.

Mezi informací o nejlepších jádrech, kterou dává Ryzen Master/HWiNFO a tou, kterou uvádí rozhraní CPPC2 a kterou vidí Windows, mohou asi být rozdíly i z dalších důvodů. Údaj z Ryzen Masteru vychází z elektrické charakteristiky jednotlivých jader, která je zjišťována při výrobě a testování. Naproti tomu řazení preferovaných jader exponovaných pro Windows kromě tohoto asi zohledňuje i další faktory. Je možné že se kromě oné povahy scheduleru Windows (využívajícího pro jedno vlákno pár jader) třeba přihlíží i k tomu, zdali jsou jádra sousední – a tedy by docházelo ke kumulaci tepla – nebo vzdálenější od sebe, což by mohlo dovolit lepší boosty při jejich střídání.

AMD ovšem říká, že zobrazení kvality jader v Ryzen Masteru změní, aby odpovídalo preferovaným jádrům ve Windows a nemátlo uživatele. Toto je ovšem trošku škoda, protože informace o tom, které jádro je fyzicky nejlepší (a ne jen pragmaticky nejlepší v kombinaci se svým parťákem), byla užitečná pro přetaktovávače, kterým také původně tento údaj měl sloužit. Také se to hodilo těm, kdo si třeba ručně nastavovali afinitu procesů.


  •  
  •  
  •  
Flattr this!

Radeony RX 8000 nemají paměti GDDR7, ani rychlejší GDDR6

O Velikonocích se objevily údajné specifikace pro grafické karty Radeon RX 8000, tedy nové grafiky založené na architektuře RDNA 4 pro mainstream a levnější část trhu (zatímco highendový model údajně AMD zrušilo). Teď se k nim objevila další zvěst, dle níž AMD u těchto grafik nepřejde na novou technologii pamětí GDDR7, která se má objevit u Nvidie. Vypadá to však, že ani nevyužije možností rychlejších pamětí GDDR6, které jsou na trhu. Celý článok „Radeony RX 8000 nemají paměti GDDR7, ani rychlejší GDDR6“ »

  •  
  •  
  •  

AM5 základní desky už začaly dostávat podporu pro Zen 5

Jak daleko je přesně chvíle, kdy AMD vydá novou generaci procesorů s chystanou architekturou Zen 5, stále není jasné. Ale zřejmě se ten okamžik přiblížil, protože základní desky už pro ně začínají přidávat podporu v BIOSech, respektive UEFI firmwarech. To je důležité i proto, aby desky koupené v e-shopech nové procesory hned po vydání podporovaly (byť dnes už to s možnostmi flashování z USB není tak kritické). Celý článok „AM5 základní desky už začaly dostávat podporu pro Zen 5“ »

  •  
  •  
  •  

Radeony generace RDNA 4: Unikly specifikace a výkon obou GPU

V předchozích cyklech nové generace GPU měly dvouletý cyklus, což by vycházelo na letošní podzim. Nvidia před časem v roadmapě kladla GeForce RTX 5000 na rok 2025 a u AMD není stále jasné, kdy by mohly Radeony RX 8000 přijít, určitá šance, že to bude letos, ale asi zůstává. Nyní se na internetu objevily specifikace těchto GPU s architekturou RDNA 4. Pokud jsou pravé, možná by to i mohlo ukazovat na vydání relativně brzo. Celý článok „Radeony generace RDNA 4: Unikly specifikace a výkon obou GPU“ »

  •  
  •  
  •  

One comment Pridať komentár

  1. Bez dalšího kontextu označí za nejlepší jádro pouze to schopné nejvyššího taktu jen marketing. Ohled na extrémní oc zajímá extrémní menšinu a slouží jen potřebám prezentace. S ohledem na kontext architektury a praktické použití, kde by se zohledňoval celek CCX (čtyři jádra s nejbližší přidruženou mezipamětí), je snad samozřejmé označit za nejlepší jádra tak, jak jsou vykazována pro plánovač Windows. Afinita taky stojí mimo oblast zájmu cílového zákazníka, jinak tomu bude až u Threadripperu.

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *