
Johdanto
NVIDIA esitteli yleisölle uuden lippulaivansa
GeForce 7800 GTX -näytönohjaimen kesäkuussa Computex 2005-tapahtumassa. High End-markkinoille
suunnatussa GeForce 7800 GTX -näytönohjaimessa on 110nm prosessilla valmistettu G70-grafiikkapiiri joka
perustuu NV40-grafiikkapiirin arkkitehtuuriin. Pienemmän valmistustekniikan ansiosta NVIDIA on kuitenkin
voinut mm. lisätä ytimen fragmenttiprosessoreiden (fragment processor - pikseliliukuhihna / pixel pipeline)
ja verteksiprosessoreiden (vertex processor - verteksivarjostinliukuhihna / vertex shader pipeline)
lukumäärää ja sekä optimoida paremmaksi pikseliliukuhihnojen arkkitehtuuria. Testeissä GeForce 7800 GTX
onkin osoittautunut melko hurjaksi, sillä suorituskyky on ollut parhaimmillaan jopa lähes kaksi kertaa
parempi verrattuna edelliseen NVIDIAn lippulaivaan GeForce 6800 Ultraan. Parantuneen suorituskyvyn lisäksi
NVIDIA on onnistunut laskemaan myös G70-grafiikkapiirin virrankulutusta päivitetyn arkkitehtuurin ansiosta,
vaikka transistorimäärä on kasvanut merkittävästi ytimessä verrattuna vanhempaan NV40-grafiikkapiiriin.
Seuraavaa artikkelia varten Leadtek Research toimitti Skenegroupin
testipenkkiin kaksi kappaletta GeForce 7800 GTX -referenssiohjaimia (WinFast PX7800 GTX TDH MyVIVO). Tässä
artikkelissa käydään läpi hieman mm. G70-grafiikkapiirin arkkitehtuuria, valmistusprosessia ja referenssijäähdytyksen
tehoa. Lisäksi artikkeli sisältää yleisiä käytännön kokemuksia ohjaimesta ja tietysti testitulokset peleissä. Verrokkina
artikkelissa käytetään edellisestä artikkelista
tuttuja MSIn valmistamia NVIDIA GeForce 6800GT ja ATI Radeon X800XL -näytönohjaimia. Artikkeli ei käsittele NVIDIAn
SLI-tekniikkaa (Scalable Link Interface) mutta SLI-testitulokset pelien osalta ovat mukana verrokkina. Alla olevasta
linkistä löytyy lisää tietoja NV40-grafiikkapiiristä ja sen arkkitehtuurista.
Tällä hetkellä jälleenmyyjiltä löytyy varastoista kattavat valikoimat NVIDIA GeForce 7800 GTX -näytönohjaimia. Lisäksi
markkinoille on ilmestynyt hieman halvempi vaihtoehto, GeForce 7800 GT -näytönohjain.

WinFast PX7800GTX TDH MyVIVO -pakkaus ja sisältö
Leadtekin WinFast PX7800GTX TDH MyVIVO -näytönohjaimen tuotepakkaus on kohtuullisen pieni. Pakkauksen koko saisi
olla hieman isompi, koska pakkauksen sisällä ohjain ja oheismateriaali ovat pakattu todella tiivisti (suojattu
muovikuorella). Pakkauksen ulkoinen ilme on perinteisen hillitty, kuten aikaisemmissakin Leadtekin retail-pakkauksissa.
Leadtekin WinFast PX7800GTX TDH MyVIVO -näytönohjaimen mukana toimitettava oheismateriaali on käytännössä täysin sama kuin
muidenkin Leadtekin valmistamien ohjaimien mukana tuleva oheismateriaali. Toivottavasti seuraavassa Leadtekin ohjaimessa
nähtäisiin mahdollisesti jo uudistettu oheismateriaali, sillä samasta oheismateriaalista kirjoittaminen alkaa hieman puuduttamaan.
Pakkauksesta löytyy GeForce 7800 GTX-näytönohjaimen lisäksi seuraavat oheismateriaalit: manuaali, "quick installation
guide", HDTV / VIVO-kaapeli (9-pin midi-din, S-Video ja komposiitti (RCA)) TV-uloslähdölle ja -sisääntulolle, 2x DVI /
VGA-adapteri ja 6-pinninen virtakaapeli / haarakappale (2x molex). Mukana tulevalla ajuri cd:llä on mm. NVIDIA ForceWare
77.50 (WHQL)-, WDN-, DirectX 9.0c -ajurit ja lisäksi WinFox 2 -, WinFast DVD -, WinFast PVR -, MuVee 3 - ja Coloreal
-ohjelmistot. Pelejä Leadtek on lisännyt pakettiin vain kaksi kappaletta: Prince of Persian: Warrior Within (DVD) ja
Splinter Cell: Chaos Theory (DVD).

G70-grafiikkapiiri
NVIDIAn G70-grafiikkapiiri (Rev. A2) on valmistettu TSMC:n (Taiwan Semiconductor Manufacturing
Company) 110nm tuotantolinjalla Taiwanissa. Transistoreita se sisältää 302 milj. joka on noin
80 milj. enemmän kuin 130nm prosessilla valmistetussa NV40-grafiikkapiirissä. Pienemmän
valmistustekniikan ansiosta NVIDIA on voinut mm. lisätä ytimen fragmenttiprosessoreiden (fragment
processor - pikseliliukuhihna / pixel pipeline) ja verteksiprosessoreiden (vertex processor -
verteksivarjostinliukuhihna / vertex shader pipeline) lukumäärää ja sekä optimoida paremmaksi
fragmenttiprosessoreiden arkkitehtuuria, jota NVIDIA kutsuu Superskalaari Arkkitehtuuriksi (Superscalar
Architecture). Valmistuskustannuksiltaan pienempää prosessia hyödyntävä G70-grafiikkapiiri on
valitettavasti kuitenkin kalliimpi valmistaa, koska piiri on fyysisesti isompi kuin NV40-grafiikkapiiri.
Pienempi valmistusprosessi on tarjonnut joka tapauksessa paremmat saannit, jonka ansiosta TSMC on
pystynyt välttämään "fubar"-piirit ja toimittamaan riittävästi toimivia piirejä NVIDIAlle. Tämä
viittaisi erinomaiseen tuotantolinjaa ja piirisuunnitteluun. NVIDIAn mukaan piiriä suunniteltaessa
tavoitteena oli nostaa transistoreiden määrää ja samalla laskea virrankulutuksen vaatimuksia. Tässä
tavoitteissa NVIDIA on onnistunut erinomaisesti, sillä G70-grafiikkapiiri kuluttaa huomattavasti
vähemmän virtaa kuin NV40-grafiikkapiiri. Flipchip-paketointia käyttävä G70-grafiikkapiiri on suunniteltu
natiiviksi PCI-E-piiriksi mutta HSI-siltapiirin (High-Speed-Interconnect bridge chip) avulla se toimisi
myös AGP-piirisarjoilla ongelmitta. Markkinoinnissa käytettävät termit ovat päivittyneet G70-grafiikkapiirin
julkaisun myötä versioon 4.0 ja nykyisiä G70-grafiikkapiirin tukemia ominaisuuksia ovat CineFX 4.0
(mm. OpenGL 2.0/DirectX 9.0c (Shader Model 3.0)), IntelliSample 4.0 ja Ultrashadow II.
G70-grafiikkapiirin arkkitehtuuri mahdollistaa myös eri kellotaajuuksien käyttämisen eri
laskentayksiköissä. Ratkaisu parantaa merkittävästi laskentayksiköiden joustavuutta
kellotaajuuksien suhteen.
G70-grafiikkapiiriä suunniteltaessa NVIDIA analysoi noin 1300 varjostinohjelmaa, joidenka
mukaan yleisimmät pikselivarjostinkäskyt ohjelmissa olisivat kerto- ja yhteenlaskut (MAD,
MUL, ADD, DP2/3/4 jne). Tutkimus osoitti myös sen, ettei NV40-grafiikkapiirin arkkitehtuuri
ole täysin optimaalinen suorittamaan rinnakkain kyseisiä pikselivarjostinkäskyjä ja laskutoimituksia
ilman muutoksia arkkitehtuurissa. NV40-grafiikkapiirin fragmenttiprosessori sisältää kaksi keskenään
erilaista 32-bittistä liukulukuvarjostinyksikköä: MUL-laskentayksikön (shader unit 1 / ALU1 -
varjostinyksikkö 1, MUL - Multiply) joka pystyy suorittamaan vain kertolaskuja ja tehokkaamman
MAD-laskentayksikön (shader unit 2 / ALU2 - varjostinyksikkö 2, MAD/MADD - Multiply-add) kerto- ja
yhteenlaskuille. Kahden MADD-laskentayksikön käyttäminen fragmenttiprosessorissa olisi nostanut
huomattavasti transistorimäärää, joten NVIDIA päätyi käyttämään NV40-grafiikkapiirissä kahta
keskenään erilaista laskentayksikköä.
NVIDIA on tehnyt muutamia muutoksia ja parannuksia G70-grafiikkapiirin arkkitehtuuriin, joista merkittävin
muutos on ehdottomasti fragmenttiprosessoreiden MUL-laskentayksikön korvaaminen tehokkaammalla
MAD-laskentayksiköllä (MADD). Toisen MADD-laskentayksikön lisääminen on parantanut huimasti
G70-grafiikkapiirin suorituskykyä pikselivarjostissa, sillä se on ollut parhaimmillaan lähes
kaksi kertaa nopeampi kerto- ja yhteenlaskuihin perustuvia pikselivarjostinkäskyjä kuin NV40-grafiikkapiiri.
Lisäksi varjostinyksikkö 1:n yhdysrakenteinen teksturointiprosessori (texture Processor - texture
memory / management unit) voi toimia G70-grafiikkapiirissä rinnakkain riippumatta laskettavista
pikselivarjostinkäskyistä. NVIDIAn mukaan myös verteksitekstuurinäytteiden hakua (vertex texture
fetch, TEX ops / texture sampling), haarautumisprosessoria (branch processor),
fragmenttiristikytkentäohjainta (fragment crossbar controller), ROP-pikseliliukuhihnoja (ROP pixel
pipeline - Raster operation) ja muistiohjainta olisi optimoitu hieman tehokkaammiksi NV40-arkkitehtuurista, mutta
niiden rakenne näyttää pysyneen samana ainenkin NVIDIAn omissa julkaisupapereissa. NV40-grafiikkapiirin arkkitehtuurista löytyy lisää tietoa
täältä.
Alla vertailu G70- ja NV40-grafiikkapiirien pikselivarjostinsuorituskyvystä (NVShaderPerf / OpenGL):
-------------------- G70 --------------------
Target: GeForce 7800 GTX (G70) :: Unified Compiler: v77.72
Cycles: 13.00 :: R Regs Used: 3 :: R Regs Max Index (0 based): 2
Pixel throughput (assuming 1 cycle texture lookup) 793.85 MP/s
-------------------- NV40 --------------------
Target: GeForce 6800 Ultra (NV40) :: Unified Compiler: v77.72
Cycles: 17.00 :: R Regs Used: 3 :: R Regs Max Index (0 based): 2
Pixel throughput (assuming 1 cycle texture lookup) 376.47 MP/s

Näytönohjainten tekniset tiedot
| Näytönohjaimen nimi |
GeForce 6600 GT |
GeForce 6800 LE |
GeForce 6800 Ultra |
GeForce 7800 GTX |
|
 |
 |
 |
 |
| Grafiikkapiirin nimi |
NV43 |
NV40 |
NV40 |
G70 |
| Valmistusprosessi |
.11µ (TSMC) |
.13µ (IBM) |
.13µ (IBM) |
.11µ (TSMC) |
| Transistoreita |
143 milj. |
222 milj. |
222 milj. |
302 milj. |
Muistiväylän leveys, bittiä |
128 bit [64x2] |
256 bit [64x4] |
256 bit [64x4] |
256 bit [64x4] |
Muistiväylän nopeus |
16.0 GB/s |
22.4 GB/s |
35.2 GB/s |
38.4 GB/s |
| Pikselitäyttösuhde |
2000 MP/s |
2400 MP/s |
6400 MP/s |
6880 MP/s |
| Tekselitäyttösuhde |
4000 MT/s |
2400 MT/s |
6400 MT/s |
10320 MT/s |
| Verteksinopeus |
375 Mtri/s |
320 Mtri/s |
600 Mtri/s |
950 Mtri/s |
| AGP/PCI-E -väylä |
2x / 4x / 8x / PCI-E |
2x / 4x / 8x / PCI-E |
2x / 4x / 8x / PCI-E |
PCI-E |
| Muistin määrä |
128 / 256 / 512 MB |
128 MB |
256 / 512 MB |
256 / 512 MB |
Piirin kellotaajuus |
500 MHz |
300-320 MHz |
400-450 MHz |
430-495 MHz |
Muistien kellotaajuus (GDDR) |
500 MHz |
350 MHz |
550-600 MHz |
600-675 MHz |
| Tuetut muistit |
DDR / GDDR2 / GDDR3 |
DDR / GDDR2 / GDDR3 |
DDR / GDDR2 / GDDR3 |
DDR / GDDR2 / GDDR3 |
Verteksi- prosessoreiden lukumäärä |
3 |
4 |
6 |
8 |
Verteksi- prosessoreiden vektorileveys |
Vec4 + scalar |
Vec4 + scalar |
Vec4 + scalar |
Vec4 + scalar |
Verteksi- käskyä kellojaksossa |
6 ALU |
8 ALU |
12 ALU |
16 ALU |
Verteksi- operaatiota kellojaksossa (fp) |
15 |
20 |
30 |
40 |
Fragmentti- prosessoreiden lukumäärä |
8 x 1 [TMU] |
8 x 1 [TMU] |
16 x 1 [TMU] |
24 x 1 [TMU] |
Fragmentti- prosessoreiden asetukset |
2 fp ALUa [yhteensä 16]
ALU1: MUL ALU + teksturointi- prosessori + mini-ALU + SFU
ALU2: MADD ALU + mini-ALU + SFU |
2 fp ALUa [yhteensä 16]
ALU1: MUL ALU + teksturointi- prosessori + mini-ALU + SFU
ALU2: MADD ALU + mini-ALU + SFU |
2 fp ALUa [yhteensä 32]
ALU1: MUL ALU + teksturointi- prosessori + mini-ALU + SFU
ALU2: MADD ALU + mini-ALU + SFU |
2 fp ALUa [yhteensä 48]
ALU1: MADD ALU + teksturointi- prosessori + mini-ALU + SFU
ALU2: MADD ALU + mini-ALU + SFU |
Fragmentti- prosessoreiden vektorileveys |
Vec4 + scalar |
Vec4 + scalar |
Vec4 + scalar |
Vec4 + scalar |
Fragmentti- prosessoreiden laskentatarkkuudet |
fp32 / fp16 |
fp32 / fp16 |
fp32 / fp16 |
fp32 / fp16 |
Fragmentti- käskyä kellojaksossa |
32 ALU + 8 NRM + 8 TEX |
32 ALU + 8 NRM + 8 TEX |
64 ALU + 16 NRM + 16 TEX |
96 ALU + 24 NRM + 24 TEX |
Fragmentti- operaatiota kellojaksossa (fp) |
80 |
80 |
160 |
240 |
Teksturointi- prosessoreiden lukumäärä (TMU) |
8 [yhdysrakenteinen] |
8 [yhdysrakenteinen] |
16 [yhdysrakenteinen] |
24 [yhdysrakenteinen] |
Tekstuureja per vaihe |
16 |
16 |
16 |
16 |
ROP-pikseli- liukuhihnojen lukumäärä |
4 |
8 |
16 |
16 |
Z-syvyys- / maskausvertailua kellojaksossa |
8 |
16 |
32 |
32 |
Pikselivarjostimen versio/malli |
3.0 |
3.0 |
3.0 |
3.0 |
Verteksivarjostimen versio/malli |
3.0 |
3.0 |
3.0 |
3.0 |
| DirectX -tuki |
9.0 |
9.0 |
9.0 |
9.0 |
| OpenGL -tuki |
1.5 / 2.0 |
1.5 / 2.0 |
1.5 / 2.0 |
1.5 / 2.0 |
| NVIDIA CineFX -versio |
3.0 |
3.0 |
3.0 |
4.0 |
| RAMDAC |
2 x 400 MHz |
2 x 400 MHz |
2 x 400 MHz |
2 x 400 MHz |