Shader + textúra VS memória + ROP #1
Elemzés - 2009/02/14
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.