2012. február 10., péntek

Gyorskeresés

Főszponzorunk

ASUS

Útvonal

Tesztek  »  Videokártya rovat

GT200: az 1,4 milliárd tranzisztoros GPU

Bemutatjuk az új NVIDIA GeForce-generáció alapját képező GT200 grafikus chip felépítését, újításait.

Hirdetés

Belső változtatások

A G80-ra visszaemlékezve felsejlik, hogy a GPU úgynevezett TPC-ket, azaz Thread vagy Texture Processing Clustereket tartalmazott, ezekből is nyolcat. Ezek a TPC-k egyenként két-két darab SM-et, azaz streaming multiprocesszoros tömböt tartalmaztak, melyekben egyenként nyolc-nyolc darab SP, azaz stream processzor, illetve változó darabszámú textúrázó egység volt megtalálható (a G80-ban négy címző és nyolc szűrő, ez később megváltozott 1:1 arányúra). A GT200-ban a TPC-k száma 8-ról 10-re, az SM-ek száma 2-ről 3-ra nőtt, azaz a GT200 összesen 240 stream processzort működtet (10 TPC x 3 SM x 8 SP). A TPC-ken belül megtalálható textúracímzők és szűrők aránya a GT200-ban is 1:1 maradt, TPC-nként nyolc-nyolc darabról beszélhetünk. A számok bűvöletében élőket az eddig felsoroltak nem túlságosan győzhették meg, hiszen csak a stream processzorok és textúrázók száma nőtt, ráadásul ez a megnövelt érték is kevesebb, mint a korábbi csúcs duplája. Szerencsére ez csak a felszín, az architektúra rengeteg további finomhangolást és kiegészítést tartalmaz.

Először is a TPC-k vezérléséért, ütemezéséért felelős részt jelentősen kiokosították, ami elsősorban abban érhető tetten, hogy a G80-énál több szálat képes kezelni. A G80-ban található ütemező SM-enként 768 szálat, míg a GT200-ban található SM-enként 1024-et képes vezérelni, így mivel több az SM és több a kezelt szál, a GT200 ütemezője a G80-énál közel 2,5-szer több szálat kezel egyszerre (12 288 vs. 30 720). Minél több szálat kezel a GPU, annál kevesebb a futószalagban található „buborék” (pipeline stall) miatt bekövetkező várakozás, ami például memóriaelérések (illetve arra való várakozás) során bekövetkezhet, hiszen amíg az egyik szál vár, addig az ütemező egy másik szálat aktiválhat (a Hyper-Threading is valahogy így működik, csak kicsiben).

A GPU GP (general purpose), azaz általános célú felhasználásával kapcsolatos adottságait is továbbfejlesztették. Tudni kell, hogy a G80/GT200-ban található TPC-k között a MIMD (több utasítás, több adat) feldolgozás a jellemző. Ezzel szemben az SM-ek között nem a SIMD, hanem a SIMT, tehát egy utasítás, több szál megvalósítás található. Az NVIDIA azért ezt a megoldást választotta, mert így nincsenek belekényszerítve a SIMD-ek esetén használatos vektorok szélességének állandó korlátaiba. Mivel nem vektoralapú az adatfeldolgozás, a stream processzorok teljes kihasználtsággal tudnak működni, nem fordulhat elő olyan eset, hogy például a három szélességű vektor csak két adatot tartalmaz, így egy „hely” elveszik. A G80-ban található SM-ek 24 elemből álló (szál)láncokat (warp) tudnak feldolgozni, ezzel szemben a GT200 SM-jeinek az IU-ja (instruction unit, nevezhetjük ütemezőnek is) akár a 32 elemű láncokkal is képes elboldogulni.

Az SM-ekben található IU részeként megjelenő regiszterfájl méretét a GT200-ban megduplázták, így a hosszabb shaderkódok végrehajtása esetén ritkábban kell a memóriához nyúlni. Még mindig a TPC-nél (illetve annak egyes részeinél) tartunk, így itt kell megemlíteni, hogy a produktívabb ütemezésnek hála a textúrázás is hatékonyabb lett, az NVIDIA szerint 22%-kal múlja felül elődjét.

Ha már a méretekről esett szó, a GT200 a geometriai shader számolásban is megpróbál valami újat felmutatni. A G80 esetében ez a terület egy tabutéma, ugyanis a G80-ban nagyon kevés a rendelkezésre álló gyorstár vagy regiszter. Mint láthattuk, a regiszterfájlok méretét kiterjesztették, de ezen felül a stream outputként funkcionáló gyorsítótárak méretét is nem kevesebb, mint hatszorosára növelték. Hogy ez az érték pontosan miként oszlik el, arról nincs információnk (annyi biztos, hogy az SM-ekben található lokális memória mérete nem változott, maradt 16 kB), de itt sem szabad elsőre ámulatba esnünk: a GT200 87,5%-kal több SP-t tartalmaz, így pedig a tényleges, SP-számra vetített gyorsítótárméret-növekedés „csak” 320%-os. Ez sem kevés, de azért mégsem 600%. Ezzel kapcsolatban az NVIDIA az általunk is használt Rightmark3D HyperLight geometriai shader tesztjével példálózik, belsős tesztjeik szerint a GT200 a Radeon HD 3870 X2-t is megveri 15–20%-kal. Na majd meglátjuk...


Méretarányos megjelenítés
napjaink egyik csúcsprocesszora (Penryn/Wolfdale, a Core 2 Duo E8000-esek alapja) és a GT200

Nem esett még szó a GT200 elméleti maximális számítási kapacitásáról. Tudvalevő, hogy a chip megjelenése előtt a fórumokon világszerte repkedtek a teraFLOPs-os teljesítményről szóló pletykák, de 100%-ig biztosan senki sem tudta, hogy ebben a tekintetben az AMD vagy az NVIDIA lesz-e a nyerő. Az NVIDIA annak érdekében, hogy ne okozzon csalódást, itt is fejlesztett egy kicsit. A G80 esetében egy stream processzor egyszerre egy MAD (a=b*c+d) és egy MUL (a=b*c) műveletet tud végrehajtani 32 bites lebegőpontos számokon, ez 1350 MHz-es órajel mellett 518 gigaFLOPs-os teljesítményt jelent, amikor a 8800 GTX megjelent, ez egy szinte felfoghatatlan szám volt. A GT200 esetében ezt az értéket feltornászták egészen 933 gigaFLOPs-ig, amit úgy értek el, hogy a special function unitok (SFU), melyekről a G80 esetében nem esett túl sok szó (trigonometrikus és transzcendens matekot, illetve attribútuminterpolálást tudnak), a stream processzorokkal párhuzamosan (tehát egy órajelen belül) egy MUL végrehajtására képesek. Az architektúrát a támogatott precizitás tekintetében is továbbfejlesztették, a GT200 már támogatja a 64 bites (kétszeres pontosságú) lebegőpontos adattípusokat is.

A raszterizálókhoz, azaz ROP egységekhez is hozzányúltak, a legfontosabb, hogy a számukat megnövelték hatról nyolcra (érdekes ez az összehasonlítás, a G92-es chipben már csak négy ROP volt, amiből anno arra következtettünk, hogy az NVIDIA többé nem különösebben törődik az élsimítással). A ROP egységek fejenként és órajelenként 4–4 pixel kirajzolására képesek, ez azt jelenti, hogy a GPU 32 pixel/órajeles ütemmel működik (a G80 24 pixel/órajel). Árnyékkezeléskor, amikor csak Z-értéket kell számolni, az új NVIDIA chip a ROP egységek számának növekedése miatt elődjénél több, egyszerre 256 pixelt (8 x 32) tud elővarázsolni. A 8 bites nem negatív egész számokat (unsigned integer) a GT200 a G80 sebességének kétszeresével képes „blend”-elni (keverni).

Az NVIDIA a G80-nal kezdődően egy-egy ROP partícióhoz köt egy-egy 64 bites memóriacsatornát, ebből következően a GT200 immár 8 x 64, azaz 512 bites memóriabusszal rendelkezik (így alapjáraton 1 GB memóriát pakolnak mellé). Az NVIDIA továbbra sem tud elszakadni az kissé idejétmúltnak tűnő crossbar memóriavezérlőtől. A gyártó a kártya áttervezése során a textúrázók számának megnövekedése miatt optimalizálta a textúrázás során elérhető memória-sávszélességet, illetve számos optimalizációt hajtott végre a memóriavezérlőn, aminek az lett az eredménye, hogy magasabb órajelet képes elérni, és fejlettebb tömörítési eljárásokat használ.

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

Azóta történt

Előzmények

Főszponzorunk

ASUS

Gyártók, szolgáltatók

Hirdetés

Copyright © 2000-2012 PROHARDVER Informatikai Kft.