Windows 10 to nedělají špatně
Hráče asi po recenzích nejvíce zaměstnává téma SMT (tedy počítání dvou vláken na jednom jádře jako u Intelova HT). Jeho použití v některých hrách snižuje výkon, což se běžně dává za vinu plánovači CPU ve Windows, který procesy na jednotlivá jádra a vlákna přiřazuje. Často se usuzovalo, že toto nedělá optimálně. Tedy že nerozeznává, která logická vlákna patří ke kterému jádru; správně má totiž nejprve saturovat všechna fyzická jádra jen jedním vláknem, než jim začne přiřazovat druhé. Dvě vlákna sdílející jedno jádro totiž u obou vedou ke snížení individuálního výkonu (toto se týká jak SMT, tak HT).
Podle AMD ale Windows v tomto ohledu procesor chápou korektně a špatného „schedulingu“ se nedopouštějí. Podle testování je údajně na této frontě vše v pořádku (což dává smysl, neboť AMD s Microsoftem určitě vše interně testovalo). Windows údajně přidělují správně nejprve jedno vlákno na každé jádro, což naznačuje také tento test webu PC Perspective. Určité pochyby prý mohly vyvolat jiné nástroje, které špatně detekují uspořádání Ryzenu, což by měl být případ starších verzí Sysinternals Coreinfo (před 3.31).
Podle AMD s otázkou SMT a scheduleru nesouvisí ani hlášené regrese výkonu mezi Windows 10 a Windows 7 v některých testech. Po analyzování nahlášených případů se údajně plánovač jeví i zde být nevinný. Rozdíly ve výkonu jsou tak podle firmy pravděpodobně v architektonických odlišnostech obou operačních systémů, případně v tom, že nové jádro dělá více práce navíc, která někde dostupný výkon ubírá. Tento jev by snad ale měl mít výrazný dopad spíš ojediněle.
Toto ale neznamená, že na fungování SMT v programech (respektive hrách, aplikační software prakticky vždy benefituje) nejsou příležitosti ke zlepšení. Nebudou ovšem na straně operačního systému, ale přímo na bedrech vývojářů jednotlivých programů. V některých případech se patrně bude dát výkon zlepšit úpravami kódu, je možné, že někde se kód k SMT nechová správně a neguje tak to, že plánovač jádrům a vláknům rozumí. Nelze asi zdaleka čekat, že bude pro Ryzen vyladěn každý program, nicméně AMD řadě vývojářů poskytuje počítače s Ryzenem pro testování a snaží se tímto způsobem k zlepšení situace přispět. Alespoň v některých případech by se tak optimalizací mohlo dočkat.
Nastavení spotřeby aktualizaci potřebuje (a dostane)
Zatímco plánovač procesoru zdá se ve Windows funguje, skutečné problémy (respektive neoptimální chování) se dějí v řízení spotřeby. Jak už patrně víte, AMD doporučuje mít zapnuté nastavení spotřeby „Vysoký výkon“ (u anglické verze High Performance) místo výchozího režimu „Rovnováha“ (Balanced). Důvody, proč je Ryzen měřitelně lepší pod prvním, jsou údajně dva. Prvním je tzv. Core Parking, tedy vypínání jader (přesněji řečeno jejich přepínání do úsporných stavů). Jelikož jejich probuzení přináší určitou latenci, není pro vysoký výkon optimální – přinejmenším se současným nastavením. Režim Vysoký výkon Core Parking vypíná, takže tento účinek obchází.
Druhým důvodem je odlišná rychlost přepínání frekvencí. Ryzen dokáže svůj takt škálovat nahoru či dolů velmi rychle, během 1 ms. Plán spotřeby Rovnováha škáluje frekvence a napětí poměrně pomalu, zejména mu asi déle trvá, než CPU vytočí na vyšší takty (turbo), kvůli zaměření na snižování spotřeby. Toto se má údajně také u Ryzenu projevovat negativně, neboť jeho dynamická úprava frekvence (nazvaná Precision Boost) je poměrně pokročilá.
Dobrá zpráva je, že v tomto případě plošná oprava na straně operačního systému nastane. AMD vydá aktualizaci ovladače, která chování řízení spotřeby změní a oba zmíněné problémy pokryje. Tento ovladač upraví chování pod nastavením Rovnováha, aby bylo pro Ryzen optimální, tedy rychleji škálovalo frekvenci a nepoužívalo (či méně agresivně používalo) Core Parking. Touto aktualizací by se rozdíl mezi oběma režimy měl zredukovat a tím pádem bude ve výchozím nastavení Windows Ryzen dávat o něco lepší výkon.
Aktualizace:
Pokud zvládáte němčinu, můžete se podívat na test, v němž vyzkoušel web rozdíly dané řízením spotřeby (ale také použitím Windows 7 místo 10) web ComputerBase. Vyšlo mu, že plán Vsoký výkon (v grafech Höchstleistung) může vylepšit FPS ve hrách o 2–4 % (V Project Cars vyšlo dokonce 13 %, což je ale asi extrémní výjimka). Něco málo může přidávat také vypnutí HPET v BIOSu (v grafu označeno: HPET aus). Nastavení Vysoký výkon ale zvyšuje spotřebu mimo zátěž o 9 W (z 53 na 62 W pod Windows 10, ve Windows 7 je výchozí spotřeba bez zátěže 58 W, tedy také o něco vyšší).
Monitorování teploty někdy kecá, nadhodnocuje o 20 °C
Pozoruhodná je třetí věc, o které AMD v blogpostu hovoří. V recenzích se u Ryzenů 7 1700X a 1800X objevují v zátěži poměrně vysoké teploty, ačkoliv spotřeba CPU není zas tak vysoká; Ryzen 7 1700 vyhází podstatně chladněji. Zdá se, že tato měření jsou ovlivněna kuriózní zvláštností. Podle AMD totiž Ryzeny 7 1700X a 1800X hlásí vyšší teplotu, než ve skutečnosti jejich čidla měří – CPU k výchozí hodnotě vždy natvrdo přidává celých 20 °C, tzv. tCTL Offset. Pokud tedy všechny tři modely Ryzenu 7 zahřejete zátěží na 40 °C, pak jen model 1700 hlásí tuto teplotu (samozřejmě s určitými nepřesnostmi danými metodou měření). Modely 1700X a 1800X budou monitorovacím aplikacím hlásit 60 °C.
Tato zvláštnost není údajně chybou, ale záměrem, ač to nemusí znít logicky. Cílem korekce v modelech s označením X je, aby tato CPU ve stejné základní desce a se stejným chladičem dostala agresivnější chlazení. Při vyšší hlášené teplotě totiž automatika nastaví otáčky ventilátoru výš. To má význam třeba pro funkci XFR, která na modelech s písmenkem X může zvednou takty maximálního turba o 100 MHz, kdežto na „neikskách“ jen o 50 MHz (a na nižší absolutní hodnotu). Pro tyto výkonnější modely je tedy kvůli vyšponovaným frekvencím jejich turba vhodné, aby měly silnější chlazení, a AMD to zřejmě nechce nechat na náhodě.
Software pro sledování systému tak bude muset tyto umělé přirážky zohledňovat, má-li ukazovat přibližně reálné teploty. Zatím tedy asi vyšší hodnoty u R7 1700X/1800X obvykle nejsou správné a ves skutečnosti vaše CPU takovým horkem netrpí. Bohužel asi budou trochu zmatky třeba v BIOSech desek, kdy nebudete automaticky vědět, zda vám hlášená teplota onu 20°C přirážku započítává, nebo ne.