NVIDIA GeForce GTX TITAN: egy GPU-s góliát

A megreformált Kepler

A GK110 esetében fontos változás, hogy bár a rendszer a Kepler architektúrára épül, azért az NVIDIA némi reformmal is élt a működés szempontjából, amellett, hogy jóval több feldolgozót kapott a lapka. A 28 nm-es gyártástechnológia használata természetesen megmaradt, de a 7,1 milliárd tranzisztorból felépülő, 551 mm²-es chipbe 15 darab streaming multiprocesszort sikerült beépíteni, amit az NVIDIA egy ideje SMX-nek hív. A TITAN-ban egy ilyen egység le van tiltva, így összesen 14 SMX található benne.

Hirdetés

A streaming multiprocesszorok felépítését a szokásos komplexitás jellemzi: mindegyik ilyen egység 192 darab, úgynevezett CUDA magot tartalmaz két nagyobb csoportba rendezve, így az utasításszavak csoportonként 3 darab, 32 utas feldolgozón hajtódnak végre párhuzamosan. Mindegyik CUDA mag rendelkezik egy IEEE754-2008-as szabványnak megfelelő, 32 bites lebegőpontos végrehajtóval, melyek támogatják a MAD (Multiply-Add) és az FMA (Fused Multiply-Add) instrukciókat. A regiszterek szempontjából a GK104-hez képest nem változott semmi, így közös regiszterterület található egy streaming multiprocesszoron belül, melynek kapacitása 256 kB. Emellett a feladatirányító egységek (dispatch) száma sem nőtt, vagyis továbbra is nyolc található egy-egy SMX modulban a négy darab warp ütemező mellett.


A GK110 logikai felépítése [+]

Első olvasására totálisan a GK104 SMX-e köszön vissza, de a reformot jelentő részletekkel együtt már látható lesz a fejlődés. Először is a GK110 dedikált feldolgozókat kapott a dupla pontosságú számításokra. Egy streaming multiprocesszoron belül 64 darab, úgynevezett speciális CUDA mag található. Ezek szimpla pontosságú feladatot nem végezhetnek, és alapvetően két csoportba rendeződnek, így az utasításszavak összesen két darab 32 utas feldolgozón lesznek párhuzamosan végrehajtva. Ez alapvetően eltér a többi Kepler GPU működésétől, mivel azok a lapkák nem kaptak dupla pontosságú számításokra felkészített, dedikált CUDA magokat, így minden SMX egy 32 utas feldolgozót tudott úgy összefűzni, hogy képes legyen a dupla pontosságú számítások elvégzésére.

Ebben az esetben négy CUDA mag csoportosult, hogy megoldjanak egy feladatot. A különbség tehát jól érezhető, de a miértekre is érdemes választ adni. A GK110-et az NVIDIA professzionális szintre tervezte, a Tesla sorozatba, ahol számottevő követelmény a dupla pontosságú feldolgozás. Ezt a játékokban nincs értelme hasznosítani, mivel szükségtelen az extrém pontosság melletti számítás, így oda a többi Kepler GPU képességei illenek.

Ez arra is választ ad, hogy az NVIDIA miért korlátozza alapértelmezett módban a GeForce GTX TITAN dupla pontosság melletti számítási kapacitását. A lapkában ugyanis hiába van komoly számítási teljesítmény, a driver a feldolgozást lekorlátozza, ami annyit jelent, hogy a TITAN minden nyolcadik órajel során végezhet dupla pontosságú számítást. Kerülőút lehet a meghajtó vezérlőpultjába épített opció, amit bekapcsolva feloldható az előbbi limit, ám a magórajelet a rendszer fixen 725 MHz-re csökkenti. Korlátozás tehát mindenképp lesz, de igazából ennek tényleg nincs komoly jelentősége. A PC-n mindenképp az alapértelmezett mód a reálisan használható alternatíva, mivel a játékokban és az átlagos felhasználásra készített programokban nincs szükség a speciális CUDA magokra.


A GK110 SMX logikai felépítése [+]

A GK110 a textúrázás szempontjából is lemásolja a többi Kepler architektúrára épülő GPU-t, így az egyes streaming multiprocesszorok négy darab textúrázó blokkot tartalmaznak, melyekben egyenként négy textúracímző és textúraszűrő található, és ezekhez csatornánként négy mintavételező tartozik. Ezek az egységek a képességek szempontjából is megegyeznek, így itt újításról nem lehet beszámolni. Sokkal érdekesebb azonban a memóriahierarchia vizsgálata. A GK110 1,5 MB kapacitású, megosztott L2 gyorsítótárat alkalmaz, mely minden streaming multiprocesszor számára elérhető, és a CUDA magok írhatnak is bele. A felújított SMX modulok 64 kB-os L1 gyorsítótárral rendelkeznek, mely a feladatnak megfelelően dinamikusan szétosztható egy 16 és egy 48 kB-os részre, vagy 32-32 kB-os szeletelés is lehetséges, attól függően, hogy mekkora megosztott memóriát igényelnek a CUDA magok. Természetesen a grafikus feldolgozás során a DirectX 11 specifikációinak megfelelően kötelező minimum 32 kB-os helyi adatmegosztást (Local Data Share) alkalmazni. A textúrázó csatornák természetesen most is külön gyorsítótárat kaptak.

Újítás a többi Kepler GPU-hoz képest a 48 kB-os csak olvasható memória az SMX-eken belül. Ez a CUDA felületen kihasználható, de a szabványos API-kon keresztül már nem, vagyis a hétköznapi felhasználók számára nem lényeges paraméter. Ami viszont már valóban előnnyel jár, az a CUDA magok megduplázott sávszélessége az L1 gyorsítótár felé. Ez lényegi változást eredményez majd a helyi adatmegosztást használó compute shaderek esetében, hiszen az adatok megosztása és elérése dupla olyan gyorsan történhet, mint a korábbi Kepler architektúrára épülő GPU-kon. Erre nagy szükség volt, mivel ezen a ponton az összes DirectX 11-es architektúrát vizsgálva a Kepler a valaha készült leggyengébb megoldás. Hogy ezt jobban meg lehessen érteni, egy táblázatban felvázoltuk az aktuális architektúrák multiprocesszorainak különbségeit szimpla pontosság mellett:

Az aktuális architektúrák különbségei a helyi adatmegosztás sebessége szempontjából
Architektúra NVIDIA Kepler (GK10x) SMX NVIDIA Kepler (GK110) SMX AMD GCN CU
Ciklusonkénti operáció 384 FLOP/ciklus 384 FLOP/ciklus 128 FLOP/ciklus
L1 gyorsítótár és LDS 64 kB (megosztható) 64 kB (megosztható) 16 + 64 kB
Sávszélesség 128 bájt/ciklus 256 bájt/ciklus 64 + 128 bájt/ciklus
Egységnyi op. sávszélessége 0,33 bájt/FLOP 0,66 bájt/FLOP 1,5 bájt/FLOP

Régóta ismert tény, hogy az NVIDIA a Fermihez képest az egységnyi operációra lebontott sávszélességet jelentősen visszavette a Kepler esetében. A döntés ma is nehezen érthető, főleg azt figyelembe véve, hogy az új DirectX 11-es játékokban ez a paraméter mennyire fontos, de a lényeg, hogy a Kepler jó irányba tart a tempó növelésével. Ez a már kiadott hardvereken ugyan nem segít, de egy új generáció mindenképp jobban teljesíthet. Persze ez csak egy tényező a számítási hatékonyság palettáján, ám nagyon fontos jó értékre belőni, mivel nagymértékben kihat a hardver működésére.

A memóriavezérlő tekintetében az NVIDIA továbbra is maradt a crossbarnál. A GK110 384 bites szélességű buszt használ, mely 64 bites csatornákra van szétosztva. Egy-egy csatornához két ROP-blokk tartozik. Utóbbiból összesen 12 darab van, ami 48 blending és 384 Z mintavételező egységet eredményez.

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

Azóta történt

Előzmények