Zhruba 681 miliónov tranzistorov v 90nm čipe: G80 (NV50) je tretia veľká architektonická novinka od uvedenia GeForce série. NV 10 (GeForce 256) priniesol register combiner, NV30 (GeForce FX) priniesol "CineFX". Sú to nové prístupy k danej problematike ako je aj G80...
Úvod, nezávislé takt domény v G80, shader core:
Možno povedať, že sa špecializované 3D čipy vyvinuli preto, lebo sa chceli použiť textúry. Rendering bez textúr by bol pri prijateľnej rýchlosti možný aj na procesoroch. Keď však chceme vidieť textúry a podľa možnosti aj filtrované, preťažíme podmienečne každé CPU. Tak boli vyvinuté grafické čipy s 3D funkciami a filtráciou textúr.
Pri NV10 sa však myslelo už ďalej. Čítať textúry z pamäte, filtrovať a nanášať na trojuholníky je pekné, ale prečo nedať vývojárom väčšiu kontrolu nad tým ako sú tieto údaje spoločne s interpolovanými vertex údajmi prepočítavané ? Register combiner ponúkol v tom čase ohromujúcu flexibilitu a výpočtový výkon práve pre tieto úlohy. S loopback a jedným prednastaveným texture shaderom sa to od GeForce 3 nazývalo dokonca "pixelshader". NV30 priniesol omnoho viac presnosti a flexibility pre pixelshading. Kvôli tomu bola vyvinutá CineFX architektúra. Pre GeForce 6 bolo CineFX od základov prerobené a vylepšené. Teraz s NV50 (G80) prichádza k nám znovu, naozaj nová architektúra. Spolu s G80 založila nVidia základový kameň pre svoje budúce čipy.
Nezávislé takt domény v G80:
Odborný výraz: | Funkcia: |
Interpolátor | vypočítava určité input hodnoty pre pixelshader |
Shader-ALU | vykonáva shader výpočet |
TMU (Texture Mapping Unit) | poskytuje filtrované hodnoty textúr Shader-ALU |
ROP (Raster Operation) | vykonáva konečné práce na pixeloch |
Unified Shader hore alebo dole, potrebné jednotky ostali a môžu byť do veľkej miery využívané pixel, vertex alebo geometry shaderom. ALUs, TMUs a ROPs sú pri G80 do určitej miery odpojené. G80 má dve takt domény. Shader-ALUs (ku ktorým patria aj interpolátory) bežia u GeForce 8800GTX na frekvencii 1350MHz, zvyšok čipu (TMUs a ROPs) na 575MHz. Tieto frekvencie sú nezávisle od seba nastaviteľné. Zatiaľ čo je pomer jednotiek ALUs/TMUs u G80 pevný, dá sa ALU/TMU výkon meniť cez takt.
V priepustnosti pamäte ide nVidia tiež novými cestami. GeForce 8800GTX má 384-bit DDR zbernicu a 768 MiB RAM. GeForce 8800GTS má 320-bit DDR zbernicu a 640 MiB RAM. Skalárnosť architektúry rozšíriť aj pre zbernicu, priepustnosť je niečo nové. Pokiaľ sa v článku píše o G80 myslí sa na GeForce 8800GTX a pri G71 na GeForce 7900GTX.
Shader core:
G80 poskytuje v prípade GeForce 8800GTX osem aktívnych Vec-16 ALUs, pričom môže ALU vykonať za takt MUL, ADD a ešte jednu MUL (try floating point operation - 3 Flops na jeden skalárny kanál). MUL znamená multiplication, ADD addition. Väčšina shader kódu je naďalej vypočítavaný pomocou MUL a ADD. ALUs majú frekvenciu 1350MHz, čo dá teoretický aritmetický výkon 518 GFLOPs/s. (8 x 16 x 3 FLOPs/s x 1, 350 GHz = 512 GFLOPs/s) nVidia však ešte stále má čo robiť so schelduler-om, nakoľko je druhá MUL jednotka doteraz nevyužívaná – aspoň tak to vyzerá.
Krátke pripomenutie ako to vyzerá u NV4 a G70:
Tu to napríklad vyzerá tak, že pri prístupu k textúre je prvá Shader-ALU (pri NV40 MUL, pri G70 MAD) blokovaná. Pri CineFX máme "priebehovú pipe". Všetko čo ide do TMU jednotky, ktorá je medzi Shader-ALU 1 a 2, musí ísť najprv cez Shader-ALU 1. Táto prevezme so svojou MUL jednotkou k tomu ešte časť korektúry perspektív. Aj pri G80 by korektúra perspektívy nemala byť úloha interpolátora, ale čiastočne Shader-ALU. To však nevysvetluje, prečo je dosiaľ len jedna MUL jednotka za takt využitá. Pomôže nám to snáď objasniť čas.
Predchádzajúce architektúry (u ATi aj nVidie) využívali RGBA quadpipelines. Jeden quad sa skladá z 2x2 pixelov. Jeden pixel má štyri komponenty (RGBA). Preto musí byť ALU jednej quadpipe 16x (krát) poddelená (4 pixely á 4 komponenty = 16 operácii). V každej quadpipe sa tak za takt obvykle vypočítajú 4 komponenty zo štyroch pixelov. G80 má bloky so štyrmi skalárnymi quadpipes. Za takt sa tak vypočíta 16 komponentov zo 16 pixelov (4 quads). V konečnom dôsledku sa tak výkon rovná: pre jeden quad, čiže 4 pixely, vykonať Vec3 + Vec1 operáciu trvá väčšinou jeden takt.U G80 trvá vykonať Vec3 + Vec1 operáciu štyri takty, za ten čas sa však dokončia aj štyri quady – 16 pixelov. Okrem toho existuje veľa prípadov, kde pracuje G80 efektívnejšie. K ním sa vrátime neskôr.
SLI zapojenie dvoch G80 ponúka aritmetický výkon jeden Teraflop za sekundu; pri takom výkone vyzerá aj Cell procesor ako slabý. Grafické čipy sa ešte stále vyvíjajú rýchlejšie ako procesory.
Teoretický aritmetický výkon: |
G71 Pixelshader | 125 GFlop/s ADD | 125 GFlop/s MUL | spolu 250 GFlop/s |
G71 Vertex Shader | 28 GFlop/s ADD | 28 GFlop/s MUL | spolu 56 GFlop/s |
G80 Unified Shader | 173 GFlop/s ADD | 346 GFlop/s MUL | spolu 518 GFlop/s |
|
Ako ukazuje tabuľka, ponúka Unified Shader G80 väčší teoretický aritmetický výkon ako Pixel a Vertexshader G71 dokopy. Vďaka efektivite G80 je využiteľný výkon ešte o kus vyšší ako u G71. Tieto čísla sú len teoretické maximá. Vyvodiť z rozdielu medzi nimi, výkonnostný rozdiel medzi G80 a G71 by bol nezmysel. Okrem toho vychádzam z predpokladu, že Shader-ALU využíva dve MUL operácie za takt. Vyzerá to tak, že v praxi tomu tak nie je.Ešte raz: Nepoužívať prosím tieto čísla pre porovnanie výkon medzi G80 a G71, nakoľko majú v praxi aj iné veci vplyv na celkový výkon, ktoré ostali teraz nezapočítané.
glide
Ledy
barco
killswitch
crux2005
killswitch
crux2005
Ledy
killswitch
killswitch
crux2005
gogi
strelooriginal
dexman
eotslubo
optimista
badbat
MEPHISTO