Shader + textúra VS memória + ROP #1

Elemzés - 2009/02/14

Oldalak: << - < - 1 - 2 - 3 - 4 - 5 - > - >>
Bevezető
Az SP rövidítés szűk 2.5 év alatt hihetetlen karriert futott be a VGA-piacon - a 8800GTX-szel bevezetett stream processorok száma a DirectX 10-es videokártyák egyik legfontosabb értékmérőjévé vált, olyannyira, hogy mostanra már az 1GB-os DDR2-es memóriával fémjelzett szegmensben is fontos kérdés, hogy hány espé van a kártyán.
Félretéve a tréfát, mi a magunk részéről meglehetősen félrevezetőnek tartjuk a GPU-k rangsorolását pusztán a bennük található artimetikai egységek száma alapján - az nVidia-féle stream processor ugyanis lényegében nem más, mint egy önálló artimetikai- és logikai végrehajtóegység (a továbbiakban ALU). Az ALU-szám alapú rangsor látványosan megbukik a GeForce és a Radeon kártyák összehasonlításakor, hiszen a hasonló teljesítményű versenytársak esetében a Radeon 3-5-ször annyi ALU egységgel rendelkezik (amik mellesleg egyenként nem önálló stream processorok). Érdekesebb kérdés, hogy azonos architektúrák esetében mekkora jelentősége van az SP-k számának - erre keresi a választ a tesztsorozat első két része, először GeForce oldalon.
Tesztmódszer
Ez a teszt nem jöhetett volna létre, ha nincs a harvesting névre hallgató eljárás - ez az a módszer, amivel a kisebb hibával rendelkező chipekből eladható terméket varázsolnak. A technika közismert - a hibás chipek bizonyos egységeit kiiktatják, és az ily módon "kiherélt" GPU-t módosított néven, olcsóbb áron eladják. Így keletkezett tesztünk egyik résztvevője, a 9800GT megegyező tulajdonságokkal bíró elődje, a 8800GT - a 8db, egyenként 16 stream processort és 8 textúrázót tartalmazó clusterből egyet kikapcsoltak (jó alaposan, lézerrel), így a kártya 112 SP-vel és 56 textúrázóval rendelkezik, míg a további egységek száma változatlan maradt.
Tesztünk második szereplője egy nagyon érdekes pozícionálási döntés eredménye: valaki valamikor azt álmodta meg az nVidiánál, hogy a GeForce 9000-es széria középkategóriás kártyája alapjául szolgáló G94-es chip rendelkezzen feleannyi SP-vel, mint a csúcskártya, viszont a backend rész (ROP-ok és memória) felépítése legyen megegyező. Így jött létre a rendkívül sikeres 9600GT - a kártya váratlanul jó teljesítményére magyarázatot fog adni ez a teszt.
A teszt harmadik résztvevője egy teljes értékű G92-es GPU-val felszerelt 9800GTX.
Ahhoz, hogy a kártyák összehasonlíthatóak legyenek, szükség volt egy közös "bázisra", amihez mindent mérni lehet. Arra jutottunk, hogy a legpraktikusabb azonos órajelekre belőni mindhárom kártyát, és ekkor az egységek száma lesz csak a különbség - ROP-ból és memória-kapacitásból egyenlő szintre kerül a három versenyző, ALU-k és textúrázók tekintetében pedig a 9800GT 75%-kal, a 9800GTX pedig 100%-kal jár a 9600GT előtt. Táblázatosan:
VGA neve 9600GT UC 9800GT 9800GTX UC
Core órajel 600 MHz 602 MHz 602 MHz
Shader órajel 1500 MHz 1512 MHz 1512 MHz
Memória-órajel 900 MHz 900 MHz 900 MHz
Memória mennyisége 512 MB 512 MB 512 MB
Stream processzorok 64 112 128
Textúrázó egységek 32 56 64
ROP egységek 16 16 16
Memóriabusz 256-bit 256-bit 256-bit
Számítási teljesítmény 192 / 288 GFlops 339 / 508 GFlops 387 / 581 GFlops
Texel fillrate 19.2 GTex / sec 33.7 GTex / sec 38.5 GTex / sec
Pixel fillrate 9.6 GPixel / sec 9.6 GPixel / sec 9.6 GPixel / sec
Memória-sávszélesség 57.6 GB / sec 57.6 GB / sec 57.6 GB / sec
Két megjegyzés a táblázathoz:
  • A számítási teljesítménynél azért két érték szerepel, mert az nVidia hivatalos verziója szerint bizonyos feltételek mellett a stream processzorok órajelenként egy MADD és egy MUL utasítást tudnak végrehajtani, azaz 3 Flop teljesítményűek. Ez a GPGPU alkalmazásokban ki is használható, de a játékokban semmi látható jele nincs - ezért mi jobban szeretjük a 2 Flop kapacitású egységekkel számolt teljesítmény-mutatókat.
  • A 9600GT órajelei minimálisan különböznek a másik két kártyától. Ennek az az oka, hogy a 9600GT eltérő alapfrekvenciából generálja a core és a shader órajeleket, ezért 100% pontossággal nem lehet ugyanoda beállítani, mint a 9800GT-t. Ennek a különbségnek a tesztben nem lesz jelentősége.
Innentől kezdve egyszerű a dolgunk: amennyiben tényleg a stream processoroknak (azaz az ALU-teljesítménynek) van döntő szerepe a kártya teljesítményében, akkor a 9800GT 65-70%-kal, a 9800GTX pedig 90-95%-kal lesz gyorsabb a 9600GT-nél (azért nem 75% és 100%, mert ideális skálázódás nem létezik) - a 9800GTX pedig 11-12%-kal lesz gyorsabb, mint a 9800GT. Amennyiben viszont a ROP-ok és a memória szerepe nagyobb, akkor ezek a különbségek lényegesen kisebbek lesznek.
A százalékszámításról
Különbséget boncolgató értékeléseknél az egyik leggyakoribb hiba, hogy a különféle %-os értékeket az ember ösztönösen képes rosszul kalkulálni, átalakítani. Amire érdemes figyelni:
  • Ha "B" kártya 25%-kal gyorsabb, mint "A" kártya, és "A" kártya a referencia (100%), akkor "B" kártya 125%-on fog állni. Ha viszont "B" kártya a referencia, akkor "A" kártya nem 75%-on, hanem 80%-on fog állni - a százalékos értékeket nem összeadni / levonni kell, hanem szorozni (100% * 1.25 = 125%, 100% / 1.25 = 80%).
  • Ha "B" kártya 50%-kal gyorsabb, mint "A" kártya, és "C" kártya 30%-kal gyorsabb, mint "B" kártya, akkor ugyancsak a szorzási szabály miatt "C" kártya nem 80%-kal gyorsabb, mint "A" kártya, hanem 95%-kal (100% * 1.5 = 150%, 150% * 1.3 = 195%).
Mivel a tesztben elsősorban a kártyák relatív teljesítményére vagyunk kíváncsiak, a grafikonok rögtön %-os formában fognak megjelenni. Ha az Olvasó az fps értékekre kíváncsi, akkor azok szokás szerint előcsalhatók a 100%-os értéket képviselő kártya egyik eredményére kattintva. Ha pedig nincs kedvünk fejben számolgatni a 9800GT és a 9800GTX közötti százalékos különbséget, akkor egy mozdulattal áttehetjük a referenciapontot a 9800GT-re.
A grafikonokon feltüntetjük a 9800GTX+-t is - az elemzés közben minimálisan fogunk vele foglalkozni, a végkövetkeztetéshez viszont szükségünk lesz rá. Az underclockolt 9800GTX-nél a GTX+ órajelei mindhárom tartományban 20-22%-kal magasabbak, ezért látni fogjuk, hogy az órajel-emelés milyen hatással van a teljesítményre az egyes esetekben.
Tesztkörnyezet
A konfiguráció elemei
Alaplap Gigabyte X38-DS4, FSB @333MHz
CPU és órajel Intel E6700 (4M L2 cache), @3.00GHz (9x333)
CPU hűtés Cooler Master HyperTX2
Memória 4x1GB Geil Ultra DDR2-8500
Memória beállítások 1066MHz (3.2x333), 5-5-5-15, tRD: 6
Tápegység Corsair TX650
Operációs rendszer Windows Vista x86 Ultimate SP1
VGA neve Core clock Shader clock Memory clock Driver
GeForce 9600GT 600 MHz 1500 MHz 900 MHz (x2) ForceWare 180.48 WHQL
GeForce 9800GT 602 MHz 1512 MHz 900 MHz (x2) ForceWare 180.48 WHQL
GeForce 9800GTX 602 MHz 1512 MHz 900 MHz (x2) ForceWare 180.48 WHQL
GeForce 9800GTX+ 738 MHz 1836 MHz 1100 MHz (x2) ForceWare 180.48 WHQL
A VGASpeed.hu tesztkörnyezetének részletes ismertetője itt található meg.
A tesztben résztvevő játékok
DirectX 9
F.E.A.R. v1.08
Oblivion v1.2.046
Race Driver: GRID v1.2
Rainbow Six: Vegas v1.06
DirectX 10
Bioshock v1.1
Crysis v1.21
World in Conflict v1.09
DirectX 10.1
Assassin's Creed v1.0
Far Cry 2 v1.0
S.T.A.L.K.E.R.: Clear Sky v1.5.0.7
Unigine Tropics demo v1.1
A játékokról, ill. a VGASpeed.hu tesztmódszereiről részletes ismertető a bal oldali menü Tesztmódszer és játékok pontjában érhető el.
A tesztek megkedzdése előtt még egy megjegyzés - egy régebbi (más keretek között megjelent) tesztben kiderítettük, hogy a 9600GT 32 textúrázóegysége nagyjából elég mindenre, a 9800GT alig profitál a 75%-kal több egységből. Ezért a teszt során az extra ALU egységek által behozott teljesítményre fogunk koncentrálni, és a textúrázókról (egy eset kivételével) nem is fogunk beszélni.
Oldalak: << - < - 1 - 2 - 3 - 4 - 5 - > - >>