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 Radeon RX 5500 XT je tu. 130W 7nm GPU pro FullHD za 184 €

Dnes vychází od AMD grafická karta Radeon, která po delší době přinese novou technologii do pásma levnějších grafik: Radeon RX 5500 XT se 7nm čipem Navi 14. AMD proti novým GeForce GTX 1600 zatím nabízelo jenom různé modely karet dva až tři roky staré generace Polaris s dnes už o dost horší spotřebou. RX 5500 XT má kromě nové architektury a technologií také „jen“ 130W TDP, takže bude o dost zajímavější. Celý článok „AMD Radeon RX 5500 XT je tu. 130W 7nm GPU pro FullHD za 184 €“ »

  •  
  •  
  •  
  •  

Delid Athlonu 3000G: čip není 12nm, ale 14nm nativní dvoujádro

Delidování lowendového dvoujádrového procesoru asi normálně bude málokoho zajímat. Ovšem v případě Athlonu 3000G jsme zrovna doufali, že to někdo provede. Nebylo totiž moc jasné, co se uvnitř těchto APU vlastně nachází. Výrobci desek měli v záznamech, že je použité čtyřjádrové 12nm APU Picasso, ale AMD zase ve specifikacích tvrdí, že jde o 14nm čip. Odstranění rozvaděče zřejmě ukazuje, o co opravdu jde. Celý článok „Delid Athlonu 3000G: čip není 12nm, ale 14nm nativní dvoujádro“ »

  •  
  •  
  •  
  •  

Nejrychlejší Navi: Radeon RX 5700 XT Liquid Devil s vodním blokem

Pokud chcete zapojit grafickou kartu do vodního chladícího okruhu, musíte z ní sundat chladič a koupit speciální blok (a přitom hlídat, aby byl kompatibilní a něco jste nepoškodili). Nyní si to můžete ušetřit u Radeonu RX 5700 XT, protože PowerColor vydává verzi této grafiky s vodním blokem rovnou z výroby a v rámci záruky. Je to zatím jediný takovýto model, a zároveň také s taktem až 2070 MHz nejrychlejší verze Navi. Celý článok „Nejrychlejší Navi: Radeon RX 5700 XT Liquid Devil s vodním blokem“ »

  •  
  •  
  •  
  •  

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