Hirdetés

Hyper-Threading! Van értelme a játékokban?

Vizsgáljuk meg, van-e értelme a Hyper-Threading használatának egy játékra használt számítógép esetén?

Bevezetés

Bátorkodom egy új írással jelentkezni, mivel az előző - véleményem szerint - viszonylag nagy érdeklődésre tartott számot. Jelenleg több mint 37000 megtekintést és 200 fölötti blogbejegyzést mutat a statisztika.

Most egy újabb vitaindító témát boncolgatok, és ahogy ezelőtt, ebben az esetben sem tudom jelen sorok írásakor, hogy mi lesz a teszt eredménye. Az előző cikk szellemisége nyomán valami hülyeséget akarok művelni, ezért a következőkre keresem a választ:

Nézzük meg, hogy a tesztelésre használt, 2013-ban gyártott munkaállomás egy “rendes” (most már sajnos csak erős középkategóriás) videokártyával megtámogatva hogyan teljesít a játékok alatt.

Már sok véleményt és ellenérvet olvastam a Hyper-Threading használata vagy mellőzése kapcsán, ezért meg fogom vizsgálni, hogy a HT egy sokmagos processzor esetén előny vagy hátrány az általam kipróbált játékokban.

Gyakorló gépészmérnökként a problémát továbbra is egy átlagos felhasználó szemszögéből közelítem meg, a józan paraszti ész által vezérelve. Fenntartom továbbá magamnak azt a lehetőséget, hogy a saját cikkemben hülyeséget, illetve helytelen állításokat fogalmazzak meg. Fontos még tudni, hogy a tesztrendszert jelenleg elsődleges számítógépnek használom, tehát minden itt megfogalmazott állítást valós körülmények között ki is próbáltam. És az aggodalmaskodóknak garantálom, hogy a kísérletezések során egyetlen állatnak vagy hardvernek sem esett bántódása.

Tesztkörnyezet és módszer

Mint említettem, a tesztek során ugyanarra a számítógépre fogom feltelepíteni az összes játékot. A használt Windows verzió és a driverek minden mérés esetében megegyeznek. Az előzőekkel ellentétben, most a legfrissebb Windows 10 Home verziót (1903) használom. Az Nvidia driver verziója 436.30.

Tesztkörnyezet:
– HP Z420 workstation
– Intel Xeon E5-1650v2 3.5 GHz
– 16 GB DDR3 RAM
– 256 GB SSD
– 3 TB HDD (2 db 1,5 TB laptop HDD RAID 0-ban)
– Gigabyte GTX1080 G1 Gaming 8 GB
– Windows 10 Home 1903

A játékok esetén az átlag, a maximum, a minimum, illetve az 1% minimum FPS-t fogom feltüntetni. A teszteket mindenhol magas beállítások mellett futtatom 1920 x 1080 pixeles felbontás mellett. Ahol annak beállítására lehetőség van, ott mindig a legfrissebb DirectX verziót választom ki. Vulcan-os játékot ez esetben nem telepítettem.

A rendszer az SSD-n lesz, a játékok Raid 0 tömbről futnak. Ahol elérhető, ott a beépített benchmarkot használom, ahol ez nem lehetséges, ott egy előre begyakorolt útvonalon megyek majd végig. Minden mérést háromszor ismételek meg, a grafikonokon a mérések átlaga szerepel. Az FPS értékeket MSI Afterburner segítségével rögzítem.

Szintetikus tesztek nem lesznek, mivel azok nagy valószínűséggel a Hyper-Threading előnyét mutatnák.

Terveztem, hogy megmérem a rendszer fogyasztását, ugyanazt a statikus jelenetet nézve a két beállítással. Természetesen, ez nem egy korrekt szám lenne és a mérést végül nem is fogom megcsinálni. Nagyon sok olyan véleményt olvasok, hogy egyes alkatrészeket a magas fogyasztás miatt szidnak az emberek. Én úgy gondolom, hogy mivel szórakozásról van szó, több százezer forintos eszközt és akár 25000 Ft-os játékot használva nem lehet szempont az éves pár ezer forintos különbség a villanyszámlán.

Fontos még megjegyezni, hogy a Win 10-en futtattam a Debloat scripteket is, továbbá kikapcsoltam a virtuális memóriát. Ezek valós hatásáról (ha van nekik egyáltalán) most nem szól a teszt. (Igény esetén lehet ebből is összehasonlító cikk, már csak azért is, mert az eredményre jómagam is kíváncsi vagyok.)

A tesztben résztvevő játékok:
– Deus Ex: Mankind Divided
– Kingdom Come: Deliverance
– Metro Exodus
– Gears of War 5
– Hellblade: Senua's Sacrifice
– F1 2018
– Dishonored 2
– Shadow of the Tomb Raider
– Prey
– Dying light

Mi is az a Hyper-Threading?

Na de mi is az a Hyper-Threading és miért jó ez egy játékra használt számítógép esetén? Ok, elsőre ez körülbelül olyan, mint a piros led a ventilátorban: kívülről tényleg jól mutat, de a számítógép használata közben nem is nézünk rá, semmit nem ad a játékélményhez. Persze a havernak tuti leesik az álla, ha mutatjuk az eszközkezelőben, hogy nekünk bezzeg 12 magos a processzorunk.

Honnan indult az egész? 2002 körül jártunk és akkor még mindig ritka volt az otthoni internet, a játékokat írott CD-n szereztem be. Emlékszem, hogy a papír PC-Guru magazinban olvasgattam tágra nyílt szemmel Oldman tuninggal és hardverekkel kapcsolatos cikkeit. Brazil után mindig ez volt az első amit fellapoztam. Bár utólag már sok rosszat és jót is olvastam a szerzőről, akkor ez volt az egyetlen információforrásom, ezért ezeket a cikkeket rongyosra olvastam.

Szóval az öreg írt valami új P4 processzorról ami akkor számomra elképzelhetetlen két!! maggal rendelkezett (még ha virtuálisan is). Ráadásul hatalmas (akár 50%) plusz teljesítményt ígért csupán 5-8 °C melegedés árán. Azonnal akartam egyet, így már lapoztam is az újság végére az árlistához. Persze még nem volt kapható, és a sima P4 árait figyelembe véve még évekig kellett várnom egy HT-s példány birtoklására. A processzor akkoriban HT nélkül is úgy 50000 Ft volt. (Viszonyításképpen, az akkori nettó átlagkereset körülbelül 90000 Ft körül alakult.) Utólag visszanézve tök érdekes, hogy már akkor is 3 GHz körüli processzorok léteztek, és a teljesítmény növelését akkor még főként az órajel növelésével képzelték el. Az órajel azóta sem kúszott igazán magasabbra annak ellenére, hogy az elérhető teljesítmény azért bőven megnőtt.

A történelmi kitérő után vissza az eredeti célhoz: nagyon egyszerűen szólva a Hyper-Threading lehetővé teszi a processzornak, hogy az utasításokat fizikai magonként két szálon dolgozza fel. Mindez majdnem ingyen, hardver oldaláról csak minimális tranzisztorszám emelkedéssel megvalósítható (a fizikai két maghoz viszonyítva). Tulajdonképpen annyi történik, hogy amíg a processzormag az egyik szálon valami miatt várakozni kényszerül (például a memóriára), addig a másik szálon ugyanaz a mag végezhet adatfeldolgozást, így csökkenni fog az üresjáratok ideje és emiatt növekedni a feldolgozás sebessége. A hatékony működéshez az operációs rendszer oldaláról a Hyper-Threading támogatása, a futtatott program oldaláról pedig a többszálúsított működés szükséges. Ennek hiányában - szélsőséges esetben - a sebesség növekedése helyett inkább lassulás figyelhető majd meg.

Elméletileg mind a korszerű operációs rendszerek mind a mai játékok fel vannak készítve a Hyper-Threading használatára. Ennek ellenére rengeteg olyan információ, videó található az interneten, amik alapján gyorsabbak a játékok HT nélkül. Nos akkor, járjunk utána, hogy mi az igazság!

Játéktesztek \ 1. rész

Deus Ex: Mankind Divided

Csak a teszt kedvéért raktam fel újra, mivel emlékszem, hogy az előző cikkem alatt mikrolagokkal reagált a változásokra. Arra számítottam, hogy itt is segít kihozni a különbségeket.

Az eredmények láttán azt mondom, ez egy érdekes kezdés. A maximum FPS képes volt 14%-ot javulni úgy, hogy a HT kikapcsolásán kívül semmit sem változtattam. Az eredményeket nézve nem értem, hogy az 1% minimum miért magasabb, mint a minimum FPS. Ezért többször újramértem, de minden esetben ugyanaz lett az eredmény. Ilyen furcsaságot a többi játéknál nem tapasztaltam.

Kingdom Come: Deliverance

Az előző cikkel ellentétben most ez a cím is a raid tömbre került. Ennek látható is volt az eredménye, mivel a játék folyamatosan töltött. Ami érdekes, hogy laggal ennek ellenére nem találkoztam, a megjelenítés folyamatos volt, de cserébe néhol nem töltődtek be időben a nagy felbontású textúrák. A jelenség mind 6 mind 12 szál esetén megfigyelhető volt.

Az eredmények alapján itt jobb teljesítményt nyújt a játék, ha bekapcsolva hagyjuk a Hyper-Threadinget. A verseny tehát eddig döntetlen.

Metro Exodus

A játék miatt fizettem elő a Game Pass-ra. Akkor még csak 300 Ft volt az első hónap, és a Metro, mint húzócím, az előfizetés irányába sodort. Igazából három hónap után sem bántam meg, hogy előfizettem, még annak ellenére sem, hogy a frissítésig botrányosan rosszul optimalizált volt a Metro Windows Store-ból elérhető verziója. A játék néha unalmas, de amikor már feladná az ember, akkor mindig jön egy érdekes rész, egy váratlan fordulat, ami miatt érdemes tovább haladni. Sajnos nekem a “szomorú” végeredmény lett meg, nem is értettem, miért.

A mérések alapján jobban tesszük, ha a játék előtt kikapcsoljuk a Hyper-Threadinget. Igaz nem jelentősen, de azért minden mért érték tudott javulni a kikapcsolás után. 2-1 a HT ellen.

Gears 5

Nagyon vártam a Gears új részét amit úgy hirdettek, hogy: “minden eddiginél mélyebb és tartalmasabb történet”. Hát a marketing itt sem működött. Azaz működött, mert meghosszabbítottam miatta a Game Pass előfizetésem. (jelenleg havi kb. 1500 Ft, sörre több megy el.) Hatalmas elvárásokkal álltam neki a játéknak, ami a végén teljesen felemás érzéseket hagyott bennem. Az optimalizáció és a látvány szerintem fantasztikusan rendben van, de a történet utalásai, a szereplők motivációi csak úgy érthetők teljesen, ha az ember az összes résszel játszott, ami csak PC-s játékosként nem megoldható. (Na jó, ha az illető elolvasott egy csomó kapcsolódó anyagot a játék mellé, és régen boxon azért végigtolta a második részt akkor nagyjából ok, de most maradjunk egy átlagos játékos szintjén.) A vége nekem kifejezetten csalódás volt. Az itt leírtak ellenére azért én jól szórakoztam játék közben.

A Gears 5 volt talán az a játék, ahol a minimum és a maximum értékek között a legkisebb volt a szakadék, ami nagyon jó optimalizációt sejtet. Ennek ellenére, itt is jobban jár a felhasználó, ha kikapcsolja azt a plusz 6 szálat. A minimum 1% értékei ezt egy számomra döbbenetes 19%-os emelkedéssel hálálták meg. Az állás 3-1.

Hellblade: Senua's Sacrifice

Emlékszem, Senua kalandja teljesen váratlanul robbant be a köztudatba, és tök jó értékeléseket kapott. Ennek ellenére én csak most próbáltam ki a játékot. Egy kicsit mást kaptam, mint amire vártam, a harcrendszer nagyon egyszerű, és több logikai feladványt kapunk, mint amit elképzeltem. Ennek ellenére nem tartom rossznak a játékot, de egyenlőre abbahagytam.

Az eredmények nagyon érdekesek. A maximális képkockaszám magasabb lett a HT kikapcsolása után de - és ez szerintem fontosabb ha folyamatos játékmenetet akarok látni - a minimumok nem változtak. Azt lehet mondani, hogy a Hyper-Threading támogatása nélkül a játék kiegyensúlyozatlanabbá vált, nőtt a szakadék a minimum és maximum FPS között. Érdekes ez a jelenség, sajnos annyira nem értem a HT lélektanát, hogy meg tudjam ezt magyarázni. A teszt számomra már ezen a ponton is nagyon érdekessé vált, nem gondoltam volna, hogy a Hyper-Threading ekkora különbséget képes jelenteni és ennyire vegyes eredménnyel. Az eddigi logika alapján itt a 6 mag kap pontot: 4-1.

F1 2018

Az F1-et már nagyon régóta a TV-ben sem követem, a játék is csak azért került be, mert új és mert van beépített benchmark. Megmondom őszintén, a teszteken kívül egy métert se mentem az autókkal. Persze a lustaságnak ára lett, mivel a benchmark egy teljes körön keresztül zajlik, így összességében tovább tartott a mérés, mintha én játszottam volna végig kézzel ugyanazt a rövidebb szakaszt.

Nagyon rég láttam F1 játékot és megdöbbentett, hogy a monitort egy méterről nézve a verseny már teljesen olyan mintha a közvetítést látnám. Ennek ellenére, a játék meglepően jól futott, és kicsit jobban szerette, ha a virtuális szálakat kikapcsoltam. A helyzet 5-1

Játéktesztek \ 2. rész

Dishonored 2

Emlékszem, az első részt, igaz, második próbálkozásra, de végigjátszottam. Sokat segített, hogy a játék magyar felirattal jelent meg, így - bár beszélek angolul - élvezetesebb volt a sok apró információmorzsát összeszedni. A második részt kipróbáltam a megjelenés után, de valahogy olyan jellegtelen lett nekem az egész. Most adtam neki egy újabb esélyt, de Dunwall utcáiról ezúttal sem jutottam már el a kikötőbe. És hiába a stabil FPS, a mozgást valahogy olyan darabosnak éreztem, akár egérrel, akár kontrollerrel játszottam

A számok alapján a játék valóban egy olyan érzéketlen tuskó, mint amilyennek elképzelem. A maximum képkockaszám 120-ra van rögzítve, a minimumok pedig kicsit jobbak, ha csak 6 mag dolgozik a háttérben. Az arány így továbbra sem változott: 6-1.

Shadow of the Tomb Raider

Mindhárom új generációs Tomb Raiderrel játszottam és azt kell mondjam, a hibái ellenére egy jól összerakott sorozatról van szó. Az epizódok között a fejlődés jól látható, mind a grafika, mind a játékmenet esetében. Nekem a három részből az utolsó tetszett a legjobban, még akkor is, ha vége eléggé elcsépelt lett.

A játék készítői láthatóan számoltak azzal, hogy a játékos Hyper-Threadinget támogató processzorral fog játszani. Emiatt az értékek mérhetően jobbak a virtuális szálak használata mellett. A javulás főleg az 1% minimum értékét nézve látható. Tehát a HT ott segít, ahol a legnagyobb szükség van rá. Az állás 6-2

Prey

A játék már az előző tesztben is szerepelt, és akkor egy rövid kör után nem voltam jó véleménnyel róla. Most a teszt kedvéért újrakezdtem, és a mérések után feltelepítettem egy grafikai modot is. Nem tudom emiatt vagy sem, de az újabb nekifutás az elsőnél jobban sikerült. A kezdeti botladozás után most már tetszik a játék, lehet a téli szünetben végig is viszem majd.

Az eredmények alapján a tesztrendszer elég erős ahhoz, hogy folyamatos játékmenetet biztosítson akár maximális részletesség mellett is. Ami dicséretes, hogy még a minimum 1% sem esik soha 60 FPS alá és ezen a 12 szál használata még képes javítani is picit. A játékmeneten nem látni, de a mérések alapján minden érték javul valamennyit. Így azt mondom: 6-3.

Dying light

Még valamikor az év közepén vásároltam meg, mert akciós volt a kiegészítővel egybepakolt verzió. A fő történeti szálat végig is játszottam és körülbelül félig a kiegészítőt is. A fő történet nagyon tetszett, a karakterek motivációi, a világ teljesen be tudott szippantani. Sajnos a kiegészítő már nem adott nekem annyival többet annak ellenére sem, hogy az autóval jó volt száguldozni a végtelen mezőkön.

A játék elég jól teljesít, a grafikonon itt sem látni 60-nál kisebb számot. A HT kikapcsolása nem érzékelhető, de a grafikon szerint a játék több FPS-t tud kipumpálni magából, ha a virtuális szálakat nem engedélyezzük. A meccs végeredménye 7-3.

Értékelés

A helyzetet számomra nehéz értékelni, mivel szerintem annyira nem is egyértelmű, mint elsőre látszik. Ha megnézzük a maximum képkockaszám hogyan alakul, akkor azt látjuk, hogy a legtöbb esetben ez az érték nagyobb a HyperThreading használata nélkül. Ezt a jelenséget a viszonylag új és a régebbi címek esetén egyaránt lehet tapasztalni, függetlenül a DirectX verziószámától. Átlagosan a maximális FPS 8 %-ot emelkedik, ha nem akarjuk használni a virtuális szálakat.

A minimum már érdekesebb képet fest. Itt az átlag pontosan ugyanannyi és az eredményeket egyesével vizsgálva sem igazán lehet eldönteni hogyan járunk jobban.

Ezért próbáljuk meg kicsit más szemszögből megközelíteni a mért értékeket:
Ha csak a tesztkonfiguráció eredményeit nézzük akkor kijelenthető, hogy a maximum FPS esetén nincs okunk panaszra, az minden vizsgált esetben 60 fölött van. Ha a gondolatkísérletet tovább folytatjuk akkor feltételezhetjük, hogy az egyszeri játékos bekapcsolt Vsync mellett húzogatja az egeret, így a 60 fölötti értékeket nem fogja látni. Emiatt sokkal fontosabb neki, hogy mennyi a minimum. Ha ez is 60 közelében, vagy legjobb esetben afölött van, a játékmenet tökéletesen folyamatos lesz. A Kingdom Come mérése azt mutatja, hogy a plusz hat szál segít elérni a bűvös határt, még a Deus Ex-el játszva pont a fizikai magok nyers ereje repít az ideális érték közelébe.

Továbbgondolva azt lehet mondani, hogy a tesztkonfiguráció a szükséges nyers erővel majdnem minden játék alatt rendelkezik, ezért a játékélményt inkább az befolyásolhatja, hogy a teljesítmény az egyes jelenetek során mennyire ingadozik, azaz mennyi a különbség a legmagasabb és az 1 % legalacsonyabb érték között. Ezt a stabilitást egy 0-100-ig terjedő skálán pontoztam a két érték aránya alapján. A grafikonon a magasabb érték a jobb, 100 jelöli az ideális állapotot amikor az 1% legalacsonyabb és a legmagasabb képkockaszám megegyezik.

Az ábrát látva az eddigi bizonytalanságunk kicsit csökken. Az értékek a Gears 5 kivételével 12 mag egyértelmű előnyét mutatják. Az átlagot nézve az előny nem jelentős, de a virtuális szálak jó 7%-al stabilabb eredményt mutatnak.

Összefoglalva tehát: A HyperTherading deaktiválása leginkább a maximum FPS-re van látványos hatással, ezért születtek a sokszor megdöbbentő összehasonlító videók az interneten. De a legtöbb embernek nem fog feltűnni, hogy a játék maximum 123 vagy épp 146 képkockát pumpál ki magából, mivel úgyis a Vsync limitál. Természetesen tudom, hogy az 1080p világát elhagyva ezek az értékek változhatnak, továbbá a magasabb képfrissítésre képes monitorok egyre inkább elérhetők az alacsonyabb árkategóriában is. Ezek figyelembevétele nyilván változtatott volna a teszteredményeken. Ráadásul mivel már nem multizok vagy 10 éve, ezért nem tudom, hogy ott most a Vsync on vagy off a “menő”.

Én a saját konfigurációmnál úgy döntöttem, bekapcsolva hagyom a HT-t. Mivel az Nvidia támogatja a monitorom és így a FreeSync működik, ezért mindent 75 FPS-re limitálva játszom. A mérések szerint a minimum értékek átlaga ugyanaz a szálak számától függetlenül, ezért én inkább a stabilitásra szavazok. Ráadásul - bár sajnos nem mértem - nekem úgy tűnik, a töltési idők is rövidebbek, ha 12 szál dolgozik. A tömörítés jól többszálúsítható folyamat.

Bónusz track

Mivel az eredmények nem voltak teljesen egyértelműek, ezért úgy gondoltam, érdemes a témát még egy kicsit más nézőpontból is megnézni. Mivel az eddigi logika mentén kívánok haladni, továbbra sem fogom vizsgálni, hogy az olyan jól párhuzamosítható feladatok, mint például a tömörítés hogyan gyorsulnak. Maradjunk a képkocka számoknál.
Ahogyan azt az eddigiekből lehet látni, a tesztrendszert nem igazán fekteti kétvállra egyik játék sem, mivel az alkatrészek nyers ereje a legtöbb esetben a minimum FPS-ek esetén is hozza a 60-as szintet. Szóval arra gondoltam, mozdítsuk ki egy kicsit a processzort a komfortzónájából: magletiltással meg fogom mérni, hogy kettő, illetve négy fizikai mag esetén milyen hatása van a HT ki és bekapcsolásának. Mivel ez rengeteg mérést jelent, ezért csak a paletta két széléről választok egy - egy játékot. Egy olyat, ami eredeti mérések alapján gyorsult, illetve egyet ami lassult a HT deaktiválása után.

A számokat látva ki lehet jelenteni, hogy két fizikai maggal processzort játékra csak kompromisszumokkal lehet használni. A HT hatása itt mindkét cím esetén látványos javulást hoz, a játszhatatlanul lassú szintről közel játszhatóra emelve az élményt. Nézzük ezeket kicsit részletesebben:

Mankind Divided
Érdekes jelenséget tapasztaltam: 2 fizikai mag esetén a HT bekapcsolása minden érték látható javulását eredményezi. 4 mag esetén a maximum már kisebb ha 8 szál dolgozik, ennek ellenére az átlag ugyanannyi marad, mivel a minimum értékek javulnak a virtuális szálak használatával.

A Deliverance az előző méréshez hasonlóan egyenletesen javuló teljesítményt mutat, ahogyan egyre több szálat adunk neki.

[P:C][L:/dl/upc/2019-12/01/248828_fabttznslkv5j2lp_4_mag_deliverance.png](IMG:/dl/upc/2019-12/01/248828_fabttznslkv5j2lp_4_mag_deliverance.thumb.png)(/IMG)[/L][/P]

Ezek alapján a kép sokkal árnyaltabb. Innentől a gondolatmenetem csak egy elmélet, mivel nem találok semmiféle információt, ami ezt képes lenne megerősíteni vagy cáfolni. Erősen processzor limitált esetben a HT használata mindig gyorsulást hoz. Úgy gondolom 8, 12 szál mellett a HT kikapcsolása során tapasztalható sebesség növekedés talán annak köszönhető, hogy a játék “nem tud mit kezdeni” a túl sok szállal. Elképzelhető, hogy a játék felépítéséből adódóan az erőforrásokat nem képes hatékonyan elosztani, ha túl sok szál van, ennek ellenére a Windows pedig próbálja az összeset egyenletesen terhelni. Így talán ennek a következménye az, hogy a maximum képkockaszám olyan látványosan tud gyorsulni 8-12 szál mellett a legtöbb tesztelt játék esetén.
A bónusz mérés így csak megerősített a korábbi döntésemben: a nagyobb maximálisan elérhető képkockaszám ellenére én bekapcsolva hagyom a HyperThreadinget.

Hirdetés

Előzmények