Tiszta víz a pohárba - RV670 VS RV730
Elemzés - 2009/03/09
Bevezető
Emlékszik még valaki az nVidia 6600GT-jére, ill. 7600GT-jére? A két meghatározó egykori középkategóriás
VGA több egyéb jó tulajdonság mellett egy izgalmas közös vonással rendelkezett: a 128-bites memóriavezérlőjük
ellenére képesek voltak túlteljesíteni az előző generáció szélesebb (256-bites) vezérlővel rendelkező
csúcspéldányát. Ilyet a 7600GT megjelenése óta eltelt 3 évben egyszer sem láttunk - az nVidia 8600-asai tettek
erre egy gyenge kísérletet, és kb. fél évvel ezelőtt a HD4670 próbálkozott hasonlóval - ez utóbbin már mindenki
annyira meglepődött, mintha a 7600GT sosem létezett volna.
A HD4670 meglepő győzelmét anno a 256M memóriával szerelt HD3850 felett aratta - a 256M-s verzió használata
mellett többnyire 2 érv szólt, az egyik az árak nagyjábóli egyezése, a másik pedig az, hogy a korábbi tesztek
alapján az HD3850-512 alig gyorsabb kisebb testvérénél. Míg az első fogyasztói szempontból teljesen jogos,
a második érv némileg aggályosnak tűnt - és pláne azzá vált akkor, amikor a HD4670 győzelme alapján többen
csodákat kezdtek zengeni az RV730 architektúrájának különböző elemeiről.
A HD3850 két változatát összehasonlító cikkünkből jól látszik, hogy
a HD4670 átlagosan lassabb az 512MByte memóriával szerelt 3850-esnél, viszont gyorsabb a kisebbiknél - egyben az is
kiderült, hogy a 256M-s változat felett némileg eljárt az idő, és alaposan lemaradt nagyobb testvérétől. De akkor
most hová is tegyük az RV730-at? Amellett, hogy a GPU-ra építve egy újabb kiváló ár/teljesítmény aránnyal
rendelkező kártya van a boltok polcain, milyen erényei vannak az RV670-nel szemben? Érdemesnek láttuk készíteni
egy tesztet, ahol a két GPU minél hasonlóbb körülmények között csaphat össze - ehhez viszont nem a HD3850-et
használtuk, amely szinte minden paraméterében eltér a HD4670-től (leszámítva az ALU-k (SP-k) számát, amit
sokan hajlamosan túlértékelni), hanem a hasonló magórajelen üzemelő HD3870-et.
Az RV670-re épülő gyorsabbik kártyát úgy állítottuk be, hogy minél több paraméterében megegyezzen a HD4670-nel -
lentebb található egy részletes táblázat, ahol a főbb értékek láthatóak.
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 |
Radeon HD3870 | 750 MHz | 594 MHz (x2) | Catalyst 8.12 WHQL | |
Radeon HD4670 | 750 MHz | 1000 MHz (x2) | Catalyst 8.12 WHQL | |
Radeon HD3870 | 770 MHz | 1125 MHz (x2) | Catalyst 8.12 WHQL | |
Radeon HD4870 | 750 MHz | 900 MHz (x4) | Catalyst 8.12 WHQL |
A VGASpeed.hu tesztkörnyezetének részletes ismertetője itt
található meg.
Mielőtt kifejtenénk, melyik kártya mit is csinál a tesztben, a következő
táblázatban összefoglaltunk számos paramétert és az ezekből következő GPU kapacitásokat:
VGA neve | HD3870 UC | HD4670 | HD3870 | HD4870 |
Core órajel | 750 MHz | 750 MHz | 770 MHz | 750 MHz |
Memória-órajel | 594 MHz | 1000 MHz | 1125 MHz | 900 MHz |
Memória mennyisége | 512 MB | 512 MB | 512 MB | 512 MB |
ALU-k (SP-k) | 320 | 320 | 320 | 800 |
Textúrázó egységek | 16 | 32 | 16 | 40 |
Interpolátor egységek | 32 | 16 | 32 | 32 |
ROP egységek | 16 | 8 | 16 | 16 |
Memóriabusz | 256-bit | 128-bit | 256-bit | 256-bit |
Memória típusa | gDDR3 | gDDR3 | gDDR3 | gDDR5 |
Triangle setup | 750 Mtri / sec | 750 Mtri / sec | 770 Mtri / sec | 750 Mtri / sec |
Számítási teljesítmény | 480 GFlops | 480 GFlops | 493 GFlops | 1200 GFlops |
32-bit texel fillrate | 12.0 GTex / sec | 12.0 GTex / sec * | 12.3 GTex / sec | 24.0 GTex / sec * |
64-bit texel fillrate | 12.0 GTex / sec | 12.0 GTex / sec * | 12.3 GTex / sec | 15.0 GTex / sec |
32-bit pixel fillrate, 0xAA | 12.0 GPix / sec | 6.0 GPix / sec | 12.3 GPix / sec | 12.0 GPix / sec |
32-bit pixel fillrate, 4xAA | 6.0 GPix / sec | 6.0 GPix / sec | 6.2 GPix / sec | 12.0 GPix / sec |
64-bit pixel fillrate, 0xAA | 6.0 GPix / sec | 6.0 GPix / sec | 6.2 GPix / sec | 12.0 GPix / sec |
64-bit pixel fillrate, 4xAA | 6.0 GPix / sec | 6.0 GPix / sec | 6.2 GPix / sec | 12.0 GPix / sec |
Z-only fillrate, 0xAA | 24.0 GPix / sec | 24.0 GPix / sec | 24.7 GPix / sec | 48.0 GPix / sec |
Z-only fillrate, 4xAA | 12.0 GPix / sec | 12.0 GPix / sec | 12.3 GPix / sec | 24.0 GPix / sec |
Memória-sávszélesség | 38.0 GB / sec | 32.6 GB / sec | 72.0 GB / sec | 115.2 GB / sec |
Nem kell a sok számtól megijedni, nem lesz rájuk egyenként szükség, elsősorban
a különbségekkel fogunk foglalkozni. Néhány szót azért ejtsünk a zöld szekció csoportjairól (ezt a részt
biztonságosan át lehet ugrani, a teszt eredményei enélkül is értelmezhetőek):
- A triangle setup (háromszögek előkészítése) azt jelzi, milyen sebességgel készíti elő a képkockán fellelhető háromszögeket a GPU. Ez a kapacitás ugyan bőségesnek tűnik, viszont mivel ez a feladat nem párhuzamosítható a következő lépésekkel (ie. azoknak nincs min dolgozniuk), egy pármillió háromszöget tartalmazó képkocka esetén (ld. pl. Crysis az esetenkénti 2-3 millióval) már ez a feladat is jelentős mennyiségű órajelciklust használ fel.
- A számítási teljesítmény szorosan összefügg a "hányespévanakártyában?" kérdéssel - konkrétan az összes SP (azaz ALU) maximális számítási kapacitását mutatja. Ez a szám a gyakorlatban ezeknél a kártyáknál lényegesen alacsonyabb - részben azért, mert az ALU-k nem mindig a két Flopot érő MADD utasítást végzik, részben pedig azért, mert a játékok shader kódjai a mai napig erősen szekvenciálisak (sok bennük a függőség), ezért a Radeonok 5 ALU-ból álló egységeit az ütemező nem tudja megfelelően "etetni", becslésünk szerint átlagosan 50-60%-os kihasználtsággal dolgozhatnak.
- A texel fillrate lényegében a textúrázási teljesítményt mutatja, egy textúra (single texturing) esetében, AF nélkül. Három esetet megjelöltünk *-gal és egy kicsit sötétebb színnel - itt a textúrázás sebességét nem a textúraszűrők, hanem az interpolátor egységek korlátozzák. Ez a szám lehet még alacsonyabb az interpolátorok egyéb irányú feladatai miatt, de lehet magasabb is pl. AF használata esetén. A 32-bites értékek az INT8 vagy az FP10 formátumú textúrák használata esetén érdekesek (a legtöbb játék ilyeneket használ), a 64-bitesek pedig az FP16-os textúrák esetében.
- A pixel fillrate szimplán azt mutatja, hogy a ROP-ok adott idő alatt hány pixel kirajzolására képesek. A számokon jól látszik, hogy az RV700-as szériában komoly extra erőt kapott ez a szekció - egy esetet (32-bites adatok, 0xAA) leszámítva az egységek órajelenkénti kapacitása a duplájára nőtt (ez egyébként a fő magyarázata annak, hogy a "karcsúbb" RV730 miért tudja tartani a lépést az RV670-nel). A 32-bites és a 64-bites értékek jelentősége ugyanaz, mint a textúrázás esetében.
- A z-only fillrate az az eset, amikor a pixelnek csak a mélység-információjával kell foglalkozni, a színével nem. Számos árnyékolási eljárás nagyban támaszkodik erre a funkcióra, ezért éppen ideje volt, hogy az RV700-as GPU-k feljöjjenek az nVidia ellenlábasok szintjére - azaz 4 műveletre ROP-onként egy órajel alatt.
- A memória-sávszélesség értelemszerűen azt mutatja, hogy a memóriából milyen mennyiségű adat tud egységnyi idő alatt kijönni, ill. bemenni. Fő fogyasztói a ROP-ok (ld. fillrate), a textúrázás, ill. az AA mintavételezés - ez pedig lényegében azt jelenti, hogy ez a paraméter a képkocka kiszámításának majdnem minden lépésére hatással van.
Fontos tisztában lenni vele, hogy a fent táblázatba foglalt kapacitások az
elméleti maximumok, ezt a GPU más részei visszafoghatják. A legjellemzőbb ilyen "vegyes korlát" az, amikor
a korlátozott memória-sávszélesség visszafogja a textúrázási teljesítményt vagy a fillrate-et, de más hasonló
kombinációk is előfordulhatnak.
Lássuk akkor, mi alapján is fog történni a kártyák összevetése, ill. melyik
szereplőnek mi lesz a feladata:
- A HD4670 ugyan mint kihívó szerepel, mégis az ő számai lesznek a kiindulási pontok - ezekhez a számokhoz tudtuk hangolni a HD3870-et, fordítva nem ment volna.
- Módosítottuk a HD3870 órajeleit, hogy a HD3870 UC (vagy HD3870 @750/594) néven futó átmeneti kártyához jussunk, amely szinte minden lényeges paraméterében megegyezik kihívójával. A megmaradt különbségek:
- A HD4670 kevesebb interpolátora egyes helyeken önmagában korlát lehet
- Ha az interpolátorok nem fogják vissza, akkor a HD4670 lényegesen nagyobb textúrázási kapacitással rendelkezik (pl. ha a 16xAF beállítást használjuk)
- 32-bites színinformációk esetén, AA nélkül a HD3870 UC pixel fillrate kapacitása duplaakkora
- A HD3870 UC memória-sávszélessége kicsit nagyobb, de ez csalóka - a gDDR5-ről szóló cikkünkből kiderült, hogy a rosszabb memória-késleltetéseket és a komolyan "alulhúzott" memória-órajelből adódó optimalizálatlanságot kompenzálni kell a memória sebességével (mivel a gDDR4 és a gDDR5 hasonlóan "rossz" késleltetés fronton, most is a korábban bevált 20% körüli extra sebességet használjuk). A nagyon hasonlóra beállított memória-sebesség viszont egyáltalán nem jelent egyforma memória-teljesítményt - az RV700-as széria memóriavezérlője, ill. hozzá kapcsolódva a cache-hierarchia komoly átalakításon esett át, ezért itt a HD4670 biztosan előnyben lesz - a teszt részben azt hivatott megmutatni, mekkorában.
- Az átdolgozott memóriavezérlőhöz hasonlóan az élsimítás is kapott egy komolyabb optimalizációt - ezt számszerűsíteni nem tudjuk, de remélhetőleg a tesztekben látni fogjuk a "keze nyomát".
- A "rendes" HD3870 azt fogja nekünk jelezni, hogy milyen korlátozó hatása van az előző két kártya igencsak szűkös memória-sávszélességének. Bár a magórajel itt egy kicsit magasabb, ez a 2.7%-os differencia a legtöbb esetben 1 fps-nél kevesebb előnyt jelent, ezért nyugodtan elfeledkezhetünk róla.
- Végül a HD4870 szerepe az, hogy egyes elszigetelt esetek felderítésében segítsen - mivel szinte minden területen a HD3870 dupláját tudja kapacitásban, jelentősen (min. 60-70%-kal) felette várjuk telesítményben is - ha mégsem így teljesít, annak várhatóan az az oka, hogy az adott játékban erős korlát a triangle setup, a 32-bites pixel fillrate (0xAA eset), vagy a 64-bites texel fillrate (sajnos, az interpolátorok száma kapcsán nem tudjuk ellenőrzésre használni - miután ezek a textúrázás mellett más feladatokban is részt vesznek, könnyen előfordulhat, hogy amíg a HD4670 textúrázói "lezabálják" az interpolációs kapacitást, a nagyobb kártyák esetében ezzel már nincs probléma). A HD4870-nél persze figyelni kell arra is, hogy esetenként megeszi az E6700-ast reggelire, és ilyenkor nem az ő kapacitásának határait mutatja a grafikon, hanem a CPU-ét. A tesztek értékelése közben erre a kártyára csak akkor fogunk kitérni, ha valahol szükségünk van a segítségére.
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.
Szép hosszúra sikerült a bevezető, nem? Ugorjunk a grafikonok közé!