Hirdetés

NVIDIA GeForce GTX 980: Maxwell második felvonás

A Maxwell másodszor

Természetesen az év elején bemutatott, eredeti Maxwell architektúrához képest a második generációs dizájn némileg változott, de az abszolút hatékony energiafelhasználás előtérben maradt. Az új GM204-es kódnevű lapka méretéhez képest nagyon jó fogyasztási mutatókkal rendelkezik. Nem meglepetés, hogy megmaradt a 28 nm-es gyártástechnológia, így az 5,2 milliárd tranzisztorból felépülő, 398 mm²-es chipbe 16 darab streaming multiprocesszort sikerült beépíteni, amit az NVIDIA a Maxwell esetében SMM-nek, azaz Maxwell streaming multiprocesszornak hív.


A GM204 [+]

A streaming multiprocesszorok felépítése a GM107-ben ismert megoldáshoz képest alig változott. Ennek köszönhetően elmondható, hogy egy ilyen egységen belül négy nagyobb compute blokk került kialakításra, amelyek közös utasítás gyorsítótárat használnak. Mindegyik compute blokk rendelkezik egy utasítás pufferrel, ami nyilvánvalóan az utasítás gyorsítótárból szerzi be az aktuális munkához szükséges információkat. Az egész rendszer komplex ütemezést használ, ami részben a hardverben, részben a szoftverben valósul meg. A hardveres részért a már megszokott GigaThread motor felel, míg az ütemezés szoftveres oldala természetesen a driver fordítójának reszortja. Utóbbi alkalmazásával viszonylag sok energiát lehet spórolni.

Egy compute blokk két feladatirányító egységet (dispatch) és egy darab warp ütemezőt használ, amelyek 32 darab, úgynevezett CUDA magot etetnek, így az utasításszavak 2 darab, 16 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, amelyek támogatják a MAD (Multiply-Add) és az FMA (Fused Multiply-Add) instrukciókat. Mindegyik compute blokkban közös regiszterterület található, amelynek kapacitása 64 kB. A compute blokkonon belül található még 8 darab, a speciális funkciókért felelő egység (SFU), amelyek a trigonometrikus és transzcendens utasítások mellett az interpoláció feladatát is elvégzik.

A GM204 a textúrázási képességek területén is a GM107-et másolja, így az egyes streaming multiprocesszorok két darab textúrázó blokkot tartalmaznak, amelyekben egyenként négy textúracímző és textúraszűrő található, és ezekhez csatornánként négy mintavételező tartozik. Egy textúrázó blokkot két compute blokk használ egyszerre. Ez hardveres szinten van bedrótozva, így mondható az, hogy az SMM két nagy feldolgozó tömbre oszlik, amelyek két compute és egy textúrázó blokkot tartalmaznak. Mindemellett a Maxwell esetében a textúrázáshoz való 12 kB-os gyorsítótár technikai értelemben továbbra is egy adatgyorsítótár marad, azaz természetesen tárolhat textúrainformációkat is, de számoláshoz szükséges adatokhoz is használható. Ennek hozománya, hogy ez a gyorsítótár nem csak olvasható, hanem írható is.


Az új SMM [+]

Eddig láthatóan nincs változás a GM107 és a GM204 SMM-jei között, ám nem maradtak módosítás nélkül, ugyanis az új verzióban az SMM modulok már 96 kB-os helyi adatmegosztással (Local Data Share) rendelkeznek, amelyen a négy darab compute blokk osztozik. Itt az NVIDIA továbbra is jelentős energiát takaríthat meg, hiszen technikai értelemben nem rendel direkt LDS-t az egyes compute blokkokhoz, tehát kevesebb tranzisztort is kell erre költeniük. Viszont a DirectCompute 5.0-s szabvány ezt a megoldást direkten nem támogatja, mivel a helyi adatmegosztáson egyszerre nem osztozhat több compute blokk, pontosabban fogalmazva több szálcsoport. A Maxwell a GM107 esetében ennek áthidalására egy trükköt használt, amivel a 64 kB-os helyi adatmegosztás többféleképpen volt működtethető. Alapértelmezett módban egy blokk maximum 48 kB-os részt kaphat, de ekkor maga a tár egy időegységben mindig csak az egyik compute blokkhoz tartozhat, míg a másik három compute blokknak olyan feladatot kell futtatni, ami nem igényli a helyi adatmegosztást, viszont a fennmaradt 16 kB-ot az említett három compute blokk feldolgozói közösen hasznosíthatják. Emellett, amint a tárkapacitás nagy részét birtokló compute blokkhoz tartozó feladat véget ért, a helyi adatmegosztást rögtön igénybe veheti egy másik compute blokk. Alternatív lehetőség a 32-32 kB-ra való felosztás, ami lényegében a DirectCompute 5.0 által előírt minimális kapacitás egy szálcsoporthoz. Ilyenkor már két compute blokk írhat a saját területébe, de a másik két compute blokk elől ez az erőforrás teljesen el lesz zárva.

Nyilván nem kedvező a számítások szempontjából, ha a négy compute blokkból egyszerre csak kettő írhat a saját területébe, bár a GM204 a 96 kB-os helyi adatmegosztást továbbra is leoszthatja két 48 kB-os részre is, ami továbbra is két compute blokkot működtet, viszont relatíve nagy tárral. Ugyanakkor alternatív lehetőség három darab 32 kB-os részre osztani az LDS-t, amivel a négyből már három compute blokk is befogható. Természetesen más compute felületeken a helyi adatmegosztás továbbra is sokkal rugalmasabban használható, hiszen a fenti működés főleg a DirectCompute 5.0-s szabvány limitációiból keletkezik.

Memóriahierarchia szempontjából a GM204 nem változott a GM107-hez képest, így az architektúra továbbra is a 2 MB kapacitású, megosztott L2 gyorsítótárat tartalmaz, amit mindegyik streaming multiprocesszor elérhet, és a CUDA magok írhatnak is bele. Ennek egy része most is a mozaikos optimalizálást segíti, amolyan lapkán belüli dedikált memóriaként.

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


Az új SMM teljes vázlata [+]

Az NVIDIA a dupla pontosságot a GM204 esetében nagyjából úgy oldja meg, ahogy ezt teszi a GK110-es lapkában. Jelen esetben minden compute blokkhoz egy-egy darab speciális CUDA mag tartozik. Technikai értelemben ezek az SMM részei, viszont két-két speciális CUDA magon osztozik két-két compute blokk. Ennek következtében egy SMM-ben összesen négy dupla pontosságra tervezett mag található, ami a teljes lapkára nézve 64 feldolgozót eredményez. Ez azt jelenti, hogy a dupla pontossággal elérhető elméleti számítási tempó a szimpla pontosság mellett felmutatott elméleti sebesség 32-ed része.

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

Azóta történt

Előzmények

Hirdetés