A CPU-limit nyomában 1.

Mélyelemzés a CPU-limit mechanizmusáról és jellemzőiről 6 eredményben megosztva. – írta: gbors, 7 hónapja

Bevezetés, elmélet és tesztmódszer

Bevezetés

A CPU-limit közismert és jellemzően rettegett fogalom a játékosok körében - ha a drága pénzért vett videokártyát számítógépünk valamelyik alkatrésze visszafogja, annak nyilván nem örülünk. Sokaknál kardinális kérdés, hogy a CPU a videokártyát maximálisan kihajtja, vagy nem hajtja - született is számos teszt, ami azt vizsgálja, hogy mely videokártyához mely CPU passzol a legjobban, azaz hol van az az optimális költség CPU-oldalon, amivel még a VGA-nkat teljesen kihajtottnak tudjuk tekinteni. Sajnos ezek a tesztek csak a valóságnak egy meglehetősen szűk szeletét tudják vizsgálni, ezért csak közelítő indikációkat képesek adni arra nézve, hogy melyik VGA mellé melyik CPU-t érdemes társítani, és a körültekintőbb cikkírók mindig azt is hozzáteszik, hogy a következtetések csak az adott játékokra igazak. Én ennél még tovább is mennék: a következtetések az adott játék megmért jelenetére igazak, és lehet, hogy a játékban máshol teljesen másképp néz ki az ideális párosítás (erre ebben a cikkben egyébként példát is mutatok).

Érdekes, hogy amilyen gyakran emlegetett jelenség a CPU-limit, annyira kevés tényleg mély elemzés készült a mibenlétéről - úgy gondoltam, ezen változtatni kell :) Ebben a cikkben arra keresem a választ, hogy mikor számíthatunk CPU-limitációra, mely beállítások vannak rá hatással, és vajon tényleg olyan nagy baj-e, ha a CPU fogja vissza a játékteljesítményt.

Figyelem! A következő oldalak sokkal inkább hasonlítanak egy tudományos kísérletre, mint egy videojáték-tesztre. Nem adnak választ arra, hogy mikor teljesül a "kihajcsa" kritérium, és Intel-vs-AMD-vs-nVidia összehasonlítást sem tartalmaznak. Annak javaslom a továbbolvasást, aki ténylegesen többet szeretne tudni a CPU-limitről, mint jelenségről.

CPU limitközeli állapotban

A 3D képalkotásról és a CPU-limitről röviden

Aki még a fenti ijesztgetés után is velünk van, annak valószínűleg sokat nem kell magyarázni, hogyan készülnek a 3D képkockák, viszont a fogalmak egyértelműsége miatt röviden tekintsük át a folyamatot.

A képalkotás első szakaszáért a számítógép azon része felel, amely a VGA-t nem tartalmazza (továbbiakban: platform). A platform megalkotja a majdani képen látható objektumokat, leköveti a mozgásukat (irányítsa őket akár ember, akár AI), fizikai szimulációt végez rajtuk, elhelyezi őket a világban, és amikor mindez megvan, akkor a kész "képvázat" átküldi a videokártyának. A videokártya ezek után esetlegesen további módosításokat végez a megkapott objektumokon (pl. tesszeláció), textúrázza őket, effekteket számol rajtuk, stb., majd az egész objektum-rendszert pixelekké alakítja, és elküldi a megjelenítőnek. Amennyiben a platform gyorsabban tudja előállítani az új képvázakat, mint ahogy a VGA "kiszínezi" őket, akkor VGA-limitről beszélünk, ha a VGA a gyorsabb, akkor platform-limitről. Ha egy adott jelenetben hol a platform gyorsabb, hol a VGA, akkor az a vegyes limit esete.

Amennyiben egy jelenetben (jelenetsorban) a platform lassabban állítja elő a képvázakat, mint ahogy a VGA fel tudja dolgozni, annak három fő oka lehet:
a) Nem elég gyors a CPU (vagy nincs eléggé kihasználva), ami a fent bemutatott számításokat végzi
b) Nem elég gyors a rendszermemória, amiben a CPU dolgozik
c) Nem elég gyors az adatátviteli csatorna (a PCI-Express busz), amin keresztül a platform elküldi a képvázat a VGA-nak

Értelemszerűen az első esetet hívjuk CPU-limitnek, és a cikk elemzései erre fognak korlátozódni. Ennek oka egyrészt az, hogy a másik két eset jelentősége lényegesen kisebb a többcsatornás memóriavezérlők elterjedése óta, másrészt az sem mindegy, hogy a c) variánst kimérni is lényegesen problémásabb lenne. Fókuszáljunk tehát a platform-limit "legnépszerűbb" változatára, a CPU-limitre.

Konfiguráció

A tesztek az alábbi konfiguráción futottak, azon belül is elsősorban a CPU #2-esen:

Két dolog is szerepel a táblázatban, amitől felszaladhat az ember szemöldöke, ezért evezzünk is gyorsan tovább a következő fejezetre.

Extrém CPU-limites környezet előállítása

Mint minden játékos mérést, a CPU-limit vizsgálatát is összehasonlító elemzéssel tudjuk végezni. Ezért nem elég, ha előállítunk egy nagyjából CPU-limites állapotot, mert a különféle egyéb mérések könnyen VGA-limitre szaladhatnak, és akkor süthetjük a következtetéseket. Ezért a teszthez mindenképpen szükség van egy olyan konfigurációra, ahol nagyon erősen a CPU a korlátozó tényező. Ilyet korlátlan források mellett nem nehéz előállítani - vesz az ember egy GTX Titan XP-t, mellétesz egy Pentium G4400-at, és készen is van. Sajnos nekem a meglévő eszközökből kellett "főznöm", és a gépemben dolgozó GTX 1050Ti videokártya finoman szólva sem egy rakéta. Ezen a helyzeten úgy segítettem, hogy az i3-6100-as CPU-t igen alaposan lekorlátoztam - elsősorban kikapcsoltam a hyperthreadinget, másodsorban pedig visszavettem az órajelet 2.0 GHz-re. Tekintettel arra, hogy ilyen paraméterekkel bőven vannak forgalomban CPU-k, azon nem kellett aggódnom, hogy túltolom a gyengítést, és bedőlnek a mérések (nem is dőltek), viszont az i3-6100 eredeti sebességének 30-50%-ára sikerült így lemenni, azaz a VGA relatív sebessége 2-3-szorosára nőtt.

A CPU és a VGA viszonya mellett fontos tényező a CPU-limitben a videokártya játékbeli terhelése. Ezen rögtön vágtam egy alaposat azzal, hogy nem 1920x1080-ban, hanem 1280x720-ban végeztem a méréseket, és a mérési módszertan miatt (ld. lejjebb) eleve onnan indulunk, hogy minden beállítást a legalacsonyabb szintre tettem. Így már elég tisztességes CPU-limitet sikerült előállítani - a grafikonokon lehet is majd látni, hogy a VGA szörnyen unatkozik a mérések közben.

Csendélet az első tesztjelenetből

Tesztmódszer

Miután ez a fajta mélyelemzés nekem is új terep, olyan játékot választottam tesztalanyként, amit egyrészt jól ismerek, másrészt jó minőségű a kódja (ezért konzisztens eredményeket fog adni), harmadrészt sokféle beállítási lehetőséggel rendelkezik, negyedrészt pedig maguk a mérések nem mennek az idegeimre (mint pl. a DOOM Vulkanos verziója a kissé még béta PresentMonnal kiegészülve). Így lett a teszt főszereplője a Crysis 3.
Maga a mérési stratégia nagyon egyszerű. Először megmértem a játékot az összes létező beállítás Low (vagy kikapcsolt) állapotában. Ezután minden további mérésben maximális szintre kapcsoltam egy beállítást, és megnéztem, milyen hatása lett az FPS-ekre - ha az FPS-ek nem változtak, akkor az adott beállítás nem hat a CPU-terhelésre, ha pedig csökkentek, akkor hat. Utóbbi esetben persze lehetséges, hogy a VGA-terhelés nőtt meg annyira, hogy már nem a CPU-limit dominál - ezért a VGA terheltségét is folyamatosan monitoroztam, ill. ezen helyzet elkerülésére alakítottam ki olyan gondos szadizmussal a CPU-t minél alaposabban megterhelő tesztkörnyezetet. Végül, ha az FPS-ek nőnek - nos, az egy váratlan fejlemény, de ilyen is lesz a tesztben.
A fenti sok mérésből aztán kiderül, hogy mi az, amit a Crysis 3 mindenképpen megkövetel a CPU-tól, és mi az, amit a beállítások variálásával lehet még erre rátenni. Lássuk!

A cikk még nem ért véget, kérlek, lapozz!

Azóta történt