Őrült sebesség: GeForce 7800 GTX és SLI

GeForce 7800 GTX - újítások

2004 áprilisában az NVIDIA bemutatta NV40 kódnevű GPU-ját, mellyel a hosszú ideje trónoló ATI-t letaszította a videokártyák küzdelmében győztesnek kijáró helyről. Az új GPU-ra épülő csúcskártya neve GeForce 6800 Ultra lett, a GeForce FX-ek csúfos szereplése után egy totálisan felújított architektúraként mutatkozott be, mely támogatta a Shader Model 3.0-t, a HDR-t és 222 millió tranzisztoros „szörnyszülöttként” a GeForce FX-ekhez hasonlóan melegedett, így kétslotos hűtést igényelt. A magas tranzisztorszám az új GeForce-ot megakadályozta az extra magas órajelek elérésében (elfogadható kihozatal mellett 350-400 MHz-en jártak az új chipek), ami – mint nem sokkal később kiderült – az újdonsült GeForce trónjába került.

 

G70 NV40 R480
Gyártástechnológia 0,11 µm (TSMC) 0,13 µm (IBM) 0,13 µm low-k (TSMC)
Tranzisztorok száma 302 millió 222 millió 160 millió
GPU órajele 430 MHz 400 MHz 540 MHz
Pixelfutószalagok száma 24 16 16
Pixel fillrate 6880 Mpixel/s 6400 Mpixel/s 8640 Mpixel/s
Futószalagonkénti textúrázó egységek száma 1 1 1
Textúra fillrate 10320 Mtexel/s 6400 Mtexel/s 8640 Mtexel/s
Vertex shader egységek száma 8 6 6
Támogatott PS-verzió 3.0+ 3.0+ 2.0+ (24 bites precizitás)
Támogatott VS-verzió 3.0+ 3.0+ 2.0+ (32 bites precizitás)
Memória órajele 600 MHz 550 MHz 590 MHz
Memória effektív órajele 1200 MHz 1100 MHz 1180 MHz
Memóriainterfész 256 bit 256 bit 256 bit
Memória-sávszélesség 38400 MB/s 35200 MB/s 37760 MB/s
Memória mérete 256-512 MB 256-512 MB 256-512 MB
Memóriatípus GDDR3 GDDR3 GDDR3
AGP-busz PCIe / (AGP 8x?) AGP 8x / PCIe AGP 8x / PCIe
Támogatott DirectX-verzió 9.0c 9.0c 9.0b
Memória-optimalizáció LMA III;
Color Compression;
Normal Map Compression (V8U8, 3Dc)
LMA III;
Color Compression
HyperZ HD
További optimalizációk IntelliSample 4.0;
CineFX 4.0;
UltraShadow 2.0; Adaptive Transparency AA
IntelliSample 3.0;
CineFX 3.0;
UltraShadow 2.0;
SmartShader HD; SmoothVision HD; 3Dc Compression; Temporal AA

Nem egészen egy hónappal később az ATI is kiadta legújabb GPU-ját, mely az R420-as kódnévre hallgatott, a kártya pedig a Radeon X800 XT nevet kapta. Az R420 (az NV40-nel ellentétben) inkább egy feltupírozott Radeon 9800-asra hasonlított, mintsem hogy egy teljesen új architektúra lett volna, azonban a kisebb magméret (160 millió tranzisztor) és a gyártás során felhasznált technológia (low-k dielektrikum) lehetővé tette, hogy ez a chip konkurensénél jóval magasabb órajeleket is elérjen, így 520 MHz-en a Radeon X800 XT Platinum Edition a legtöbb játékban gyorsabbnak bizonyult a GeForce 6800 Ultránál. Később mindkét gyártó hozott újításokat (az ATI az X850-esekkel, az NVIDIA az SLI-vel), azonban a két gyártó közül egyik sem lett egyértelműen a 3D-s játékok koronázatlan királya. Most, több mint egy évvel később az NVIDIA újra támadásba lendült, és bejelentette legújabb grafikus processzorát, az NVIDIA G70-et.


A G70 elvi felépítése

Az új architektúra a GeForce 7 nevet kapta, a most megjelent grafikus processzor pedig a G70 kódnevű magra épül (ellentétben az előzőleg felröppent NV48 kódnévvel). A G70 az NVIDIA NV40 leszármazottjának tekinthető, ebben azonban nincs semmi rossz, hiszen az NV40 nagyon jól sikerült. A GPU natívan támogatja a PCI Express csatlakozást, és 0,11 mikronos gyártástechnológiával a TSMC üzemeiben készül. Ismerkedjünk meg kicsit közelebbről az új architektúrával. Elöljáróban meg kell említenünk, hogy a G70 kétségkívül napjaink legösszetettebb grafikus processzora, több mint 302 millió tranzisztorral simán körözi az előző generáció képviselőjét, az NV40-et a maga 222 millió tranzisztorával (és az R480-at, mely 160 millióból épül fel). A tranzisztorszám megnövekedése mégsem jelent gondot az előállítás során, hiszen a kisebb csíkszélességű gyártástechnológia lehetővé teszi, hogy egyetlen szilíciumostyából csaknem annyi mag készüljön, mint korábban. Ez egyben azt is jelenti, hogy elviekben a G70 gyártása alig kerül többe, mint az NV40-é. A tranzisztorszám növekedése legfőképpen két újításnak köszönhető, a futószalagok száma 24-re, a vertex shaderek száma pedig 8-ra nőtt az NV40 16/6-os felépítésével szemben. Ettől függetlenül az NVIDIA nem „csak” plusz futószalagok és vertex shaderek tervezésével töltötte az elmúlt évet, hanem valóban felújította az NV40-et, hiszen mind a vertex, mind a pixel shaderek önmagukban is gyorsultak az előző generációhoz képest, emellett újfajta élsimítás lépett be a képbe. Mindez nem egyértelműen derül ki a fentebb látható grafikonból, ezért kicsit részletesebben is tárgyaljuk az itt megemlített újításokat.

Több vertex shader

A diagramon majdnem legfelül nyolc egymás melletti egységet láthatunk, ezek a vertex shaderek. Az NV40 ebből hattal rendelkezett, míg a G70 már nyolccal, ez már önmagában elegendő gyorsulást eredményezhet azokban az esetekben, amikor a futtatott program a vertexszámolási kapacitásra támaszkodik. A vertex shaderek számának emelésén felül az NVIDIA állítása szerint maguk az egységek is 20-30 %-kal gyorsultak. Mivel azonban jelenkorunk játékai nem ebből profitálnak főleg (talán a munkaállomások esetében más lehet a helyzet), ezért nem ez a G70-es chip legfőbb újítása. Mindesetre mivel a vertex eljárások könnyedén párhuzamosíthatóak, ezért már csak az egységek számának 33 %-os emelése is gyorsulást eredményez a vertexszámolás-limitált szituációkban.


Egy G70-es vertex shader felépítése

Több és jobb pixel shader

Napjaink (és a jövő) játékai főleg a pixel shaderekre fognak támaszkodni, hiszen a különféle megvilágítások, árnyékolások és más effektek mind-mind ezeknek az egységeknek köszönhetőek. A blokkdiagram közepe táján láthatjuk a pixel shadereket négyes csoportokba rendezve, ezek a quadok, melyeket már az NV40-ből is megismerhettünk. A négyes shadercsoportok közösen osztozkodnak egyes erőforrásokon, mint például az L2 textúra-gyorsítótár, azonban ennél is fontosabb kiemelni, hogy a G70 esetében pixel shaderenként számolhatunk két mini-ALU-val (arithmetic-logic unit). A mini-ALU az NV35-ben mutatkozott be, azonban az NVIDIA az NV40-ből kihagyta ezt a részegységet, mely a pixel shaderek sebességét, vagyis a GPU matematikai számolási sebességét képes gyorsítani.


Egy G70-es pixel shader felépítése

A pixel shaderek további gyorsulását az NVIDIA állítása szerint úgy érte el, hogy kielemzett több mint 1300 gyakran használt shader algoritmust, melyeket a fejlesztők játékokban és különböző programokban használnak, majd az analizálgatás eredménye egy olyan shader egység lett, mely adott idő alatt akár kétszer gyorsabb is lehet egy NV40-es pixel shadernél. Az optimalizálás eredményeként továbbá a G70-es pixel shaderek egységnyi idő alatt kétszer több MADD (multiply-add) utasítást tudnak végrehajtani, mint az NV40-ben találhatóak. Természetesen a játékokban található shaderek nem csak MADD utasításokból állnak, de az NVIDIA állítása szerint ez az egyetlen változtatás képes a G70 shaderteljesítményét az NV40-énél kétszer nagyobbá tenni.

A ROP egységek

A ROP (Raster OPeration) egységeket a diagram alsó felében találjuk meg. A G70 az NV40-hez hasonlóan 16 ROP egységgel rendelkezik, vagyis futószalagonként „átlagban” kevesebbel, mint az NV40. Hogyan lehetséges ez? A ROP egységek végzik a fragmentek pixelekké alakítását, az FSAA-számolást, ezek végzik a szín- és Z-tömörítést, illetve a ROP egységek írják ki a végső pixelt a frame bufferbe, vagyis fejezik be a renderelés folyamatát. Az NV40 és ennélfogva a G70 egyik meglepő újdonsága a pixel shaderek és a ROP egységek elkülönítése. Az, hogy az NVIDIA nem a pixelfutószalagok számának megfelelő ROP egységet épített a G70-be, azt jelenti, hogy szerinte nem a közeljövőben használt magas felbontások által megkívánt fill-rate lesz probléma, vagyis a ROP egységek számát nem kell az egekig emelni. Emlékezzünk csak vissza a GeForce 6600 GT-re, melyben a nyolc futószalag ellenére csak négy ROP egység van: az NV43-as chip esetében csak a legritkább esetben van szükség a négy ROP által elérhetővé vált render-kimenetek teljes áteresztőképességére.


Egy G70-es ROP-egység funkciói

Mindehhez hozzá kell tennünk, hogy ahogyan az NV40 esetében, úgy a G70 esetében is a ROP kimenetek órajelenként egy-egy Z és szín eredményt tudnak kiírni, azonban abban az esetben, ha a szín eredményre nincs szükség, a szín ROP egység képes egy második Z eredmény kiírására. Ebből a Z-duplázó technikából a megszokott árnyékolási technológiákkal felépített játékok tudnak igazán profitálni, mint például a Doom 3.

Nem kell több memória-sávszélesség

A G70 az NV40-hez hasonlóan 256 bites buszon keresztül kommunikál a memóriával, mégis, a GeForce 7800 GTX alig rendelkezik több memória-sávszélességgel, mint a GeForce 6800 Ultra (550 vs. 600 MHz). Vajon miért csak ennyit növelt az NVIDIA a memória sebességén? Az eddig elhangzott újítások sorából a lépés logikája kikövetkeztethető, az NVIDIA szerint a jövő játékai inkább a shaderekre fognak épülni, vagyis a shader kódok végrehajtásán kell gyorsítani, a memóriasávszélesség bővítésére egyelőre nincs szükség. A ROP egységek számának változatlansága is ennek köszönhető. Az NVIDIA úgy gondolja, hogy a nem túl távoli jövőben a textúra-sávszélesség túl fog nőni a color és Z eredmények sávszélesség-igényén. Ezzel persze nem fog teljesen leállni a memória sávszélességének növelése, mindössze a sebesség növelésének indoka fog megváltozni.

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

Azóta történt

Előzmények

Hirdetés