Rossz hatásfokkal működik a HPET a Ryzenen

A Windows nagy pontosságú eseményidőzítője felel a komplex multimédiás programok hatékony működéséért, de meglepetésre az AMD új processzorának inkább csak árt.

A tegnapi napon vált elérhetővé hivatalosan is a Ryzen processzorcsalád, amelynek csúcsmodelljéről csináltunk is egy tesztet. Az előzetesen lemért játékok alatt (azaz a Ryzen ezen a téren nyújtott tudását firtató komplett játékteszttel később jelentkezünk) volt azonban némi probléma, ugyanis a Ryzen 7 1800X a Full HD-s eredmények tekintetében ugyan elverte a teljes mezőnyt a Tomb Raider és a GRID 2 alatt is, az alacsonyabb, 1680x1050-es és 1280x720 pixeles felbontásokon már nem volt ennyire gyors. Különösen az utóbbi játékban, bár ezzel kapcsolatban a fejlesztőktől megtudtuk, hogy specifikus problémáról van szó, és próbálkozzunk egy frissebb motorverziót használó címükkel.

Hasonlóan felemás eredmények születtek máshol is, vagyis igencsak felbontás- és programfüggő, hogy hol gyors, illetve hol nem az. A gondot az AMD szerint a HPET, vagyis a Windows nagy pontosságú eseményidőzítője okozza. Ez már régóta része a Microsoft operációs rendszerének, hiszen az érintettek évekkel korábban dolgozták ki a HPET hardveres alapjait, amely lecserélte az elődnek számító programozható időzítő áramkört és a hozzá kapcsolódó periodikus megszakítás funkciót. A váltás az előző évtizedben azért volt fontos az iparágnak, mert az elavult időzítő hátráltatta az új processzorok teljesítményét. A HPET nagyobb frekvencián, illetve széles 64 bites számlálókkal dolgozik, és ezek segítségével hatékonyabb munkát tud végezni, ami végeredményben kevesebb megszakítást jelent, növelve a komplex multimédiás programok futtatásának hatásfokát.

A mai modern processzorok (beleértve az Intel és az AMD megoldásait) kivétel nélkül támogatják a HPET-t, amellett persze, hogy pusztán a nagyfokú kompatibilitás érdekében tartalmazzák a régi modell működéséhez szükséges programozható időzítő áramkört is. Ugyanakkor ma már a modern operációs rendszerek – egészen a Windows XP harmadik szervizcsomagjáig visszamenőleg – telepítik a HPET meghajtót, ha a BIOS-ban ez a funkció aktív, illetve manapság a legtöbb alaplap ennek a BIOS-ból történő kikapcsolására sem ad lehetőséget, mivel ez elvégezhető az operációs rendszeren belül, ha szükségesnek érzi a felhasználó.

A HPET-vel alapesetben nem szokott különösebb probléma lenni, ha van is, azt ki szokták javítani az adott termék startja előtt. A gyártók ugyanis felkészíthetik a meghajtót az új processzorokra, illetve akár a start után is végezhetnek különböző optimalizálásokat, amelyeket a Microsoft időről-időre be is szokott építeni egy-egy Windows frissítésen keresztül. Persze a megjelenés utáni optimalizálások jellemzően kismértékű, bár kétségtelenül mérhető előnyt szoktak jelenteni a teljesítményben.

A Ryzen sajnos egészen máshogy reagál a HPET-re, ugyanis ennek a funkciónak a kikapcsolásával – az AMD mérései szerint – 5-8%-ot is javul a processzor teljesítménye, különösen a játékok alatt. Utóbbi programcsoport nem annyira meglepő, mivel a HPET az elmúlt évek tapasztalatai alapján különösen a bonyolult feldolgozási formájú multimédiás programok futtatásának hatásfokát növeli, és ez processzortól eléggé független, mivel alapvetően egy szoftveresen vezérelt rendszerről van szó. Persze a hardver adottságai valamennyire számítanak, de nagyjából 10%-ot lehet nyerni egy modern processzornál a HPET aktiválásával, nem véletlen tehát, hogy ma már az alaplapi BIOS-ok fel sem kínálják a kikapcsolás lehetőségét. A Ryzennél az a furcsa helyzet állt elő, hogy a HPET-vel valamiért nem nyer, hanem veszít a teljesítményéből, és talán emiatt ajánlja az AMD a HPET ideiglenes kikapcsolását az operációs rendszeren belül, amit a "bcdedit /deletevalue useplatformclock" paranccsal meg lehet tenni.

A jó hír, hogy szoftveres gondról lévén szó ez teljes mértékben korrigálható és az AMD szerint nagyjából egy hónapon belül elkészül az első, Ryzenhez használható HPET meghajtó, amely már tartalmazza a szükséges optimalizálásokat. A hibát egyébként az okozza, hogy a HPET aktuális működésével az újszerű, LDO-val kiegészített AVFS nem igazán alakított ki baráti viszonyt. Utóbbi ugyanis egy milliszekundumonként olvassa ki az aktuális állapotát a processzornak, miközben az aktuális HPET meghajtót nem egy ennyire precízen monitorozó rendszerhez tervezték. A hagyományosabb, DVFS-t alkalmazó, Ryzen előtti processzorok százszor ritkábban monitorozhatják a lapka állapotát, így korábban nem volt esélye annak, hogy kiderüljenek a HPET eszközillesztő aktuális limitációi. Végeredményben a szoftveres oldal limitálja a Ryzen turbóját, így aktív HPET mellett a processzor a gyakorlatban beállíthatónál estenként jóval alacsonyabb órajelen üzemel. Inaktivált HPET mellett már nagyobb turbót állít be a hardver, és innen jön az AMD által kimért 5-8%-os extra teljesítmény, viszont a rendszer így elveszti a HPET-vel nyerhető sebességelőnyt.

Az esetek többségében egyébként az ilyen problémákat még a start előtt szokás javítani, emiatt sem találkozhatott még hasonló jelenséggel a felhasználó. Mivel a Ryzen teljesítménye elég erős, gyakorlatilag az i7-6900K és az i7-6950X között helyezkedik el félúton, sokan nem is értették, hogy a komplex multimédiás programokban mi történik, hiszen az teljesen ellentmond a többi valós programban elért eredményeknek. A HPET-vel kapcsolatos működési zavar viszont erre magyarázat lehet, főleg azért, mert konkrétan lassít a rendszeren, holott pont az ellenkezője lenne a dolga.

Valószínűleg az AMD siettette a startot, mert maga a hardver kész, jó ideje gyártásban lehet, és a raktárakban csak felhalmozódik a termék, ami nem optimális pusztán a HPET meghajtó miatt. Már csak azért sem, mert igazából csak alacsonyabb felbontás mellett okoz nagy deficitet a frissebb meghajtó hiánya, míg a felbontás növelésével már nem olyan számottevő a probléma (de azért jelen van) illetve az általános alkalmazásokban jók az eredmények. Az AMD úgy számolhatott, hogy a Full HD-s, vagy kisebb felbontáson futó teszteknél majd később hoznak egy szoftveres javítást, addig is eladják a felhalmozott raktárkészletet.

Bár nem a HPET-hez kapcsolódik, de megtudtuk azt is, hogy a játékok esetében a másik probléma jellemzően a magok inicializálása. Az ilyen alkalmazások sokszor igen eltérően detektálják a rendelkezésre álló erőforrásokat. Különösen a régebbi címekre jellemző, de sajnos az újaknál sem ritka, hogy a fejlesztők gyártónként fix értékre korlátozzák az elérhető erőforrások számát. Az AMD-nél ez a mai játékok többségében négyre van beállítva, pusztán amiatt, mert az FX-eknek ez volt a jó érték, de a Ryzen 7 családnak a nyolc lenne az optimális. A programoldali rossz detektálás miatt van az, hogy az SMT kikapcsolásával gyorsulhat a Ryzen, hiszen maga az alkalmazás a manuális beállítások miatt rosszul kezeli a processzort. A jó hír ebben, hogy ezt rendkívül egyszerű korrigálni, mert a kód a több erőforrásra megvan, csak az inicializálásnál engedélyezni kell a lefutását az elérhető magokon, és erre vonatkozóan az AMD már ad Ryzenhez való detektálási rutint is. Viszont ehhez mindenképpen egy alkalmazásfrissítés kell, de sokkal inkább ajánlott modernebb detektálási módszert használni, mert ahogy nő a processzormagok száma, úgy lesz a manuális beállítási forma egyre inkább korlátozó. Jelen pillanatban egyedül a Sniper Elite 4 van úgy megírva, hogy számításba vették a Ryzent, de a Deus Ex: Mankind Divided is tartalmaz egy előzetes inicializáló rutint, amivel jól detektálja az elérhető magok számát, illetve az Oxide Games és a Creative Assembly is bejelentette, hogy a nemrég kiadott játékaikhoz jön egy Ryzenhez való javítás.

Valószínűleg a régebbi játékok nem kapnak már frissítést, mivel ezekkel a fejlesztőik nem foglalkoznak. Nem mellesleg enélkül jól futnak a modern processzorokon, hiszen a hardverek teljesítménye a megjelesük óta nőtt. Az elmúlt hónapokban megjelent, még támogatott játékokhoz minden bizonnyal lesz frissítés, míg az újak eleve úgy szoktak érkezni, hogy a piacon kapható processzorokat jól kezelik.

  • Kapcsolódó cégek:
  • AMD

Azóta történt

Előzmények

Hirdetés