Játékos szemszögből is előrelépés az NVIDIA Pascal

Az új architektúrában a Maxwell legjobban vérző pontjait orvosolták, ami utat nyit a VR felé.

A GP104 részletesen

Az előző oldalon taglalt változások elsődleges ára a több tranzisztor, de szerencsére ez most megengedhetővé vált, ugyanis a GP104 már a TSMC 16 nm-es FF+ node-ján készül. Magában a lapkában egyébként 7,2 milliárd tranzisztor található és ez 314 mm²-es lapkaterületbe fért be. Ebbe 20 darab streaming multiprocesszort sikerült beépíteni, amit az NVIDIA mostantól hivatalosan is SMP-nek jelöl, ami a Pascal streaming multiprocesszor rövidítése. Ezek azonban nem egyeznek meg a nagyobbik, GP100-as Pascal szimplán SM-nek jelölt multiprocesszoraival.

NVIDIA GP104
NVIDIA GP104 [+]

A streaming multiprocesszorok felépítése a második generációs Maxwell architektúrában ismert megoldáshoz képest nem változott jelentősen. Ennek köszönhetően elmondható, hogy egy ilyen egységen belül megmaradt a négy darab compute blokk, 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 Fermihez hasonló, komplex ütemezést használ, továbbá a GigaThread motor is átalakult a hardveres ütemezés megfelelő vezérlése érdekében.

Hirdetés

A compute blokkokra rátérve egy ilyen egységben két feladatirányító (dispatch) és egy warp ütemező található, 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. Ráadásul ezek az új CUDA magok olyan 32 bites ALU-kat használnak, amelyek nem egy, hanem két darab 16 bites lebegőpontos operációt is képesek végrehajtani, ugyanakkor ez a GeForce termékeken limitálva lesz, így az elérhető teljesítmény a 32 bites tempó hatvannegyed része. A compute blokkonon belül található még 8 darab 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.

Az NVIDIA a dupla pontosságot a GP104-ben ugyanúgy oldja meg, ahogy ezt teszi a GM204-ben, azaz minden compute blokkhoz egy-egy darab speciális CUDA mag tartozik. Technikai értelemben ezek az SMP részei, viszont két-két speciális CUDA magon osztozik két-két compute blokk. Ennek következtében egy SMP-ben összesen négy dupla pontosságra tervezett mag található, ami a teljes lapkára nézve 80 feldolgozót eredményez.

A GP104 SMP-je
A GP104 SMP-je [+]

A compute blokkoknál lényeges tényező, hogy az NVIDIA GP100-as verzióval ellentétben a GP104-ben már nem alkalmaz 128 kB-os közös regiszterterületet, így be kell érni 64 kB-tal, és ennyi van a Maxwell multiprocesszorainak compute blokkjaiban is. Erre a fájdalmas korlátozásra minden bizonnyal tranzisztortakarékosságból került sor, mindenesetre jobb lett volna a megduplázott kapacitás, mivel a Maxwell dizájnja eléggé regiszterszegénynek tekinthető az olyan újabb generációs videojáték-motoroknál, mint amit például az új Hitman használ.

A GP104 a textúrázási képességek területén nem újít igazán. Az egyes streaming multiprocesszorok két darab textúrázó blokkot tartalmaznak, és egy blokkot két compute blokk használ egyszerre. Egy textúrázó blokkhoz tartozik egy 24 kB-os kapacitású írható és olvasható L1 gyorsítótár, amelyet természetesen a CUDA magok is használhatnak. Maga a részegység egyébként négy darab textúrázócsatornát rejt, amely természetesen szűrt mintákkal is képes visszatérni.

A GP104-es dizájnnal a Pascal architektúra lényegében lemásolja a GM204-ben használt multiprocesszorok működését a helyi adatmegosztás terén. Emiatt az SMP modulok 96 kB-os Local Data Share tárolóval 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. Ezt a gondot most is egy trükkel hidalják át a tervezők, így a helyi adatmegosztás egyrészt továbbra is leosztható két 48 kB-os részre, ami két compute blokkot működtet 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 GP104 nem igazán változott, így az architektúra továbbra is 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 GP104 256 bites szélességű buszt használ, ami két 32 bites csatornát tartalmazó 64 bites modulokra van szétosztva. Egy-egy modulhoz egy ROP-blokk tartozik. Utóbbiból összesen 4 darab van, ami 64 blending és 256 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

Hirdetés