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!

AMD ustoupí: podpora Zenu 3 na B450/X470 deskách bude, ale beta

Když AMD odhalilo čipset B550, oznámilo nepříjemnou věc, že procesory s architekturou Zen 3 nebudou podporované na starších deskách s čipsety řady 300 a 400. Vznesla se proti tomu značná kritika. Máme dobrou zprávu: AMD nyní zareagovalo a rozhodnutí změnilo. Na deskách s čipsety B450 a X470 bude možné použít Ryzeny 4000  s jádry Zen 3, ovšem kvůli technickým komplikacím to bude mít různé háčky. Celý článok „AMD ustoupí: podpora Zenu 3 na B450/X470 deskách bude, ale beta“ »

  •  
  •  
  •  
  •  

Zvedne AMD spotřebu Ryzenů 4000? Nebo u AM5? Proč to má logiku

Před dvěma týdny odstartovalo AMD kontroverzi, když oznámilo, že oficiálně bude podporovat procesory Ryzen 4000 s jádry Zen3 jen na platformě X570 a B550. Nabízí se jeden důvod, proč toto má nastat: je možné, že AMD zvýší spotřeby procesorů, tedy faktor, kvůli kterému Intel přerušil kompatibilitu u LGA 1151. Zvýšení TDP by totiž pro AMD mohla být docela logická budoucnost; v tomto článku vysvětlíme, proč by se to mohlo stát. Celý článok „Zvedne AMD spotřebu Ryzenů 4000? Nebo u AM5? Proč to má logiku“ »

  •  
  •  
  •  
  •  

Specifikace APU Ryzenů 4000 pro AM4 unikly: vysoké takty iGPU

Letos v létě nebo na podzim mají vyjít 7nm APU Ryzen 4000 „Renoir“, v nichž AMD poprvé bude mít procesory s integrovaným GPU, které zároveň ponesou víc než čtyři jádra. A to i šest a osm s SMT a na docela vysokých taktech. Specifikace desktopových Ryzenů 4000G (65W) a 4000GE (35W) teď totiž unikly a vypadají dost zajímavě. Například integrované grafiky mají běžet až na 2100 MHz. Celý článok „Specifikace APU Ryzenů 4000 pro AM4 unikly: vysoké takty iGPU“ »

  •  
  •  
  •  
  •  

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é *