Diit.cz - Novinky a informace o hardware, software a internetu

Proč (ne)zapínat HPET aneb kterak se Anandtechu (ne)povedla recenze Ryzenů

S vydáním procesorů Ryzen 2000 poukazovali uživatelé na nezvykle vysoký výkon těchto procesorů v herních testech webu Anandtech. Ten proto začal s šetřením, které odhalilo šokézní skutečnost…

Anandtech se během pátrání po příčině, proč AMD Ryzen 7 2700X vychází v herních testech i o desítky procent výše než Intel Core i7 8700K, dostal až k tzv. timerům - časovačům, či chcete-li časoměřičům, zařízením, které měří či udávají čas. V celém PC je takových časovačů celá řada, některé jsou využívané pouze lokálně pro dílčí část hardwaru, která je nese, jiné mohou být využité pro systémový čas. Krom této velmi obecné charakteristiky je důležité, že tyto časovače dosahují různé přesnosti.

Jako počáteční bod, od kterého se odvíjí současný problém, na nějž Anandtech narazil, bychom mohli stanovit vývoj operačního systému Windows 8. Jak si asi vybavíte, šlo o první operační systém Microsoftu, který chtěl pokrýt všechny typy zařízení od výkonných stolních PC až po mobily. Tomu musel být přizpůsoben i způsob měření přesného času (mobil je vybaven přecijen trochu jinak než stolní počítač), aby se systémový čas nerozcházel od reálného času. Aby Microsoft dosáhl systému, který je na jedné straně takto široce kompatibilní a na straně druhé přesný, zakomponoval do něj i takt procesoru.

V roce 2013 vyšlo najevo, že pro určitou skupinu uživatelů nemusí být tento systém vyhovující: Jde o overclockery a recenzenty hardwaru. Zásahy do taktů procesoru totiž mohou způsobit desynchronizaci skutečného a systémového času. Nechápejte tento problém (jen) jako předcházení nebo zpoždění času, který Windows ukazují uživateli a kvůli jehož posunu pak spěchajícímu overclockerovi ujede autobus. Problém je totiž především v tom, že když 1 sekunda reálného času neodpovídá 1 sekundě systémového času, pak veškerá měření výkonu mohou být zkreslená. Protože se skutečně prokázalo, že rozdíly činí i 7 %, znamená to, že naměřených 100 FPS mohlo být ve skutečnosti 107 FPS, ale i 93 FPS. To už je skutečně výrazný rozdíl, který mnohdy odpovídá výkonnostnímu rozdílu mezi jednotlivými modely (procesorů, grafických karet), které se cenově liší i o tisíce korun.

Takovým způsobem se tedy čas pro potřeby testování nedal zcela spolehlivě měřit, takže komunita hledala alternativu. Jako vhodným řešením se ukázal HPET, High Precision Event Timer, nejpřesnější časovač umístěný (obvykle, tedy v případě stolních počítačů) na základní desce. Ve snaze dosáhnout co nejpřesnějších a tedy nejobjektivnějších výsledků jej začal využívat i Anandtech.

Intel Coffee Lake

Zajímavou informací je, že k příležitosti vydání Ryzenů 1000 žádala AMD, aby recenzenti HPET nevyužívali (což nakonec většina stejně nedělala), protože to může vést k několikaprocentnímu výkonnostnímu propadu. U Ryzenů 2000 už tato prosba uvedena nebyla - důvod (či chcete-li: problém) působící ztrátu výkonu - byl již odstraněn. Zajímavé je vyjádření Intelu. Ten upozorňuje, že je mu vcelku jedno, zda recenzent HPET použije nebo nepoužije, ale je si vědom, že některé softwarové nástroje vyžadují HPET, takže pro zajištění jejich funkčnosti by měl být HPET zapnutý - jen by měl recenzent dát pozor, aby použil stejné nastavení na všech testovaných platformách.

Asus upozorňuje, že HPET sám o sobě je zapnutý vždy, pouze jej operační systém ignoruje. Pokud je vynucen, bude se jím operační systém řídit. Z formálního hlediska by tedy bylo lepší než „vypnutý“ a „zapnutý“ používat termíny „výchozí“ a „vynucený“, ale to berte jen jako názvoslovnou vsuvku vysvětlující trochu odlišnou terminologii mezi různými subjekty.

Pokud provedete aplikační testy s oběma nastaveními HPET na Ryzenu 2000, zjistíte, že se výkon nijak neliší. Což není překvapením, odpovídá to vyjádření AMD, že s Ryzenem 2000 byl odstraněn důvod, který působil mírné (do 4-5 %) poklesy výkonu se zapnutým HPET:

 

Pokud provedete herní testy s na Ryzenu 2000, vyjde najevo, že se nějaké výkonnostní rozdíly objevují. Většinou se sice nic neděle nebo je rozdíl na úrovni chyby měření, ale v některých hrách - především při nižším rozlišení - se objevuje cca 10 % propad po aktivaci (vynucení) HPET:

Což ovšem není nic proti tomu, co se v herních testech po vynucení HPET děje na platformě Intelu:

Anandtech se tyto propady, ale i důvod, proč jsou vyšší u Intelu než u AMD, snaží vysvětlit vyšší frekvencí HPET časovače na platformě Intelu, která působí častější zpoždění činnosti pipeline. Představte si to prostě tak, že děláte nějakou práci, při které vás v pravidelných intervalech kdosi otravuje. Čím častěji vás bude otravovat, tím déle vám práce bude trvat, jinými slovy tím nižší bude váš (pracovní) výkon.

Je známo, že I/O operace s velkým množství přesunů malých objemů dat může po záplatách na Meltdown a Spectre působit na platformách Intelu výrazné výkonnostní propady

Objevují se však názory, že toto vysvětluje jen část propadu a většina půjde na vrub něčemu jinému. Tím něčím jiným mohou být záplaty na bezpečnostní díry Meltdown a Spectre. Možná si vybavíte, že největší propady výkonu po těchto záplatách zaznamenal Intel při úlohách, kde docházelo k vysokému počtu I/O (vstupních či výstupních) operací. Například při přesunech dat, zpracování řady drobných dat a podobně. Využití HPET je ve své podstatě I/O úloha, dochází k práci s obrovským počtem (byť velmi malých / nenáročných) přesunů. Každý časový údaj je informace, kterou je třeba přenést a zpracovat. Pokud u Intelu došlo se záplatami na Meltdown a Spectre k propadu výkonu při I/O operacích, dává smysl, že při HPET, který je I/O operací (byť za jiných okolností zcela nenáročnou), dochází k podobně výraznému propadu.

Dávalo by to smysl. Pokud byly společnosti AMD i Intel přesvědčeny, že HPET na jejich systémech nepůsobí žádné propady výkonu, pak jistě měly ověřené, že to tak je. Jinými slovy něco se muselo změnit a tím něčím jsou dost pravděpodobně právě záplaty na Meltdown a Spectre.

Je známo, že záplaty na Meltdown a Spectre působí výraznější propady výkonu ve Windows 10 než ve Windows 7. Lze vyslovit domněnku, že existuje souvislost s komplexnějším měřením času, které bylo implementováno s nástupem Windows 8 (a týká se tedy desítek, nikoli sedmiček)

Jisté je, že použití HPET v současné situaci znamená snížení výkonu. Na každé platformě je snížení jinak výrazné a protože je v herních testech několikanásobně vyšší v případě Coffee Lake / Core i7-8700K než s Pinnacle Ridge / Ryzen 7 2700X, dostal se nový Ryzen při testování do vedení.

Přestože Intel i AMD ve svých oficiálních doporučeních připouštějí testování s vynuceným HPET a Intel se k němu i mírně kloní, není Anandtech s výsledky spokojen a rozhodl se výsledky ve své recenzi odstranit a přetestovat. V podstatě je ale bylo možné považovat za korektní - všechny testované produkty měly stejné podmínky a nastavení odpovídalo doporučením výrobce.

Situaci lze shrnout tak, že Anandtech, který dlouhodobě používal metodu měření, která dosahuje vyšší přesnosti, byl penalizován nečekaně vysokými hardwarovými nároky této metody (ty se patrně neúměrně zvýšily v důsledku záplat na Meltdown a Spectre). Tato penalizace znamenala v extrémech výkonnostní zkreslení na úrovni desítek procent, zatímco zpřesnění dané využitím HPET mohlo dosahovat jednotek procent. Zkreslení je tedy výrazně vyšší než zpřesnění, čímž výhoda použití HPET pro získání přesnějších výkonnostních údajů odpadá. Alespoň za stávající hardwarové a softwarové konfigurace.


Pokud shrneme výkon ve hrách přetestovaný s vypnutým (nevynuceným) HPET, odpovídají výsledky většině ostatních webů, tedy že má Coffee Lake (Core i7-8700K) stále navrch, byť Pinnacle Ridge (Ryzen 7 2700X) srazil náskok Intelu na polovinu oproti Summit Ridge (Ryzen 7 1800X).

Pokud by vás téma zajímalo hlouběji, můžete se podívat na čtyřstránkový článek Anandtechu v odkazu ve zdrojích. Bohužel se nezabývá dost reálnou možností vlivu záplat, takže případné otestování vlivu HPET v závislosti na přítomných záplatách (BIOS, OS) na Meltdown a Spectre ponechává na jiných subjektech.

Diskuse ke článku Proč (ne)zapínat HPET aneb kterak se Anandtechu (ne)povedla recenze Ryzenů

Čtvrtek, 3 Květen 2018 - 15:22 | Ji Si | Dříve to ale byl samostatný čip, jako třeba...
Čtvrtek, 3 Květen 2018 - 14:23 | Zenith | Jo , to odpovídá cca 3 minuty za rok asi jo. Když...
Čtvrtek, 3 Květen 2018 - 09:58 | Ji Si | Přesnost RTC závisela na přesnosti krystalu (a...
Čtvrtek, 3 Květen 2018 - 06:25 | Gembler | No u AMD byl rozdil 1% v produktivite, takze se...
Středa, 2 Květen 2018 - 18:51 | Zenith | Dobře, uznam že ani RTC jako takovej neni asi 100...
Středa, 2 Květen 2018 - 17:48 | Jindřich | Podle článků o záplatách na záplaty na záplaty na...
Středa, 2 Květen 2018 - 17:39 | Milan Bačík | Není to odhad, měřili to s i bez záplat. Se...
Středa, 2 Květen 2018 - 13:00 | Murun | Jestli dám přednost aktuálnímu výkonu, možnému...
Středa, 2 Květen 2018 - 12:47 | Anonym | Tak s tím "molochem" taky souhlasím,...
Středa, 2 Květen 2018 - 12:34 | Anonym | Hmm, tak jsem se ho snažil vypnout, ale já ho už...

Zobrazit diskusi