Hirdetés

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 Pascal részletesen

Az NVIDIA az idei évben már többször is elővette a Pascal architektúrát egy-egy bemutatón. Többek között a GP100-as verzió rejtelmeiről is írtunk már, de az egy HPC-piacra tervezett lapka, így csak egy szempontból lehetett vizsgálni. A GP104 kódnevű verzióra már GeForce termékcsalád is épül, így más szemszögből is elemezhető, hogy az NVIDIA milyen változásokat vitt véghez, és ezt felületesen a hónap elején már meg is tettük. Azóta azonban az apró, de annál fontosabb információk is napvilágot láttak, így ideje a részletesebb elemzésnek.

Ahogy korábban már leírtuk a Pascal architektúra tulajdonképpen nem tekinthető alapvető reformnak, csupán az elődnek számító Maxwell architektúra és a Fermi örökségének egybegyúrásáról van szó. Még kifejezőbben megfogalmazva a Maxwell generáció több ponton is vérzett jövőbiztosság szempontjából. Erről számtalan alkalommal írtunk, és három alapvető gondot lehetett felfedezni az architektúrán, amelyek az ütemezésre, a compute hatékonyságra, illetve az új API-k támogatására bonthatók le.

A legfontosabb változás, ami egyben az alap is, a Fermi örökségéhez való visszatérés az ütemezés szempontjából. Ez egyszerűen megmagyarázható, mivel a jövőben egyre több olyan program várható, amelyik a futtatás szempontjából kiszámíthatatlan. Ezt úgy érdemes felfogni, hogy egy játék működése a grafikai feldolgozás tekintetében nagyon is megjósolható, mivel a grafikus futószalag kötöttsége miatt a hardver jól kigyúrható a tipikus munkamenetekre. Itt nem kevés tranzisztort lehet spórolni, mivel az ütemezés így nagyrészt szoftveressé tehető, vagyis az egész konstrukció működését biztosító részek egy jelentős hányadát nem szükséges hardveresen implementálni. A gond akkor kezdődik, amikor a program valami kiszámíthatatlant csinál, azaz nem követi a kötött grafikus futószalagot. Ilyenek például a játékoknak azon futószalagjai, amelyek compute shadert futtatnak, ugyanis ezekre nem igazán lehet felkészülni egy nagyrészt szoftveres ütemezéssel. Mivel a játékokban a compute futószalagok száma folyamatosan nő, és a várakozások szerint idén már eléri a grafikai futószalagok számának 20-40%-át is, mindenképpen a hardveres ütemezés használata adja a legjobb eredményt.

A Pascal architektúra másik fontos változása a preempció terén következett be. Ez az a pont, ahol a Maxwell és a korábbi NVIDIA architektúrák rendkívül intenzíven véreztek, mivel az NVIDIA egy nagyon régi modellt alkalmazott, nevezetesen a rajzolási szintű preempciót. Ezzel a problémával viszonylag sokat foglalkoztunk, elsősorban a virtuális valóságot figyelembe véve, mivel ez az a terület, ahol a preempció minősége dönt a jó és a rossz élmény között.

A probléma tulajdonképpen azzal kapcsolatos, hogy a korábbi GeForce termékcsaládok csak a rajzolási parancsok határainál voltak képesek üzemmódot váltani, ami konkrétan az elképzelhető legrosszabb eshetőség a virtuális valóság szempontjából. A megfelelően finom szemcsézettségű preempció hiányában ugyanis a timewarp lekésheti a szinkronablakot. A gondot az okozza, hogy nem minden rajzolás egységes, vagyis lehetnek olyan feladatok, amelyek az ezredmásodperc törtrésze alatt lefutnak, de olyanok is, amelyek akár 3-6 ezredmásodpercig is eltartanak. Utóbbi jelenti a problémát, mert a timewarp számítására nagyjából 1-3 ezredmásodpercnyi idő van a virtuális valóságon belül, míg az aszinkron timewarpra sincs több nagyjából 10 ezredmásodpercnél. Könnyen kitalálható, hogy ha egy timewarp beragad egy hosszú ideig tartó rajzolás mögé, akkor gyakorlatilag képtelenség, hogy időben elkészüljön. Az eredmény szempontjából a timewarp típusa is fontos. Ha a normál timewarp nem készült el, akkor a virtuális fejpozíció nem lesz elég közel ahhoz, ami a valós, míg ha az aszinkron timewarp csúszott le a szinkronablakról, akkor az az előző képkocka ismétlésével jár, vagyis konkrétan egy apróbb akadással.

Ráadásul maga a problémakör olyan extrém, hogy a nyers számok tekintetében akár minden rendben is lehet, mivel a szoftveres mérőprogramok nem veszik figyelembe a timewarpokat, vagyis tulajdonképpen bőven előfordulhat, hogy a hardver kipréseli magából az elvárt képfrissítési sebességet, csupán a virtuális valóságon belüli élmény lesz rosszabb minőségű az elvártnál, mert a szoftveres úton nem kimérhető timewarpokon már elcsúszik a munka.


[+]

Az NVIDIA a fenti problémára reagálva a Pascalban bevezet egy finomabb szemcsézettségű preempciós modellt, amely a vállalat elmondása szerint pixel- és utasításszinten teszi lehetővé az üzemmódváltást. Ez még mindig egyfajta durvaszemcsés preempciós modellhez hasonlítható, mivel a már megkezdett pixelt és utasítást be kell fejezni a váltás előtt, de az NVDIA szerint a grafikából compute módba való átváltás 100 mikromásodperc alatti időegységen belül megtörténik, ami nagy átlagban több százszor, kiugró esetekben pedig akár több ezerszer gyorsabb, mint amit a korábbi GeForce architektúrák kínáltak.

A preempció szempontjából az is megjegyzendő, hogy az Intel Gen9 és az AMD GCN3 architektúráin belül az üzemmódváltás még a Pascal architektúránál is majdnem százszor gyorsabban valósítható meg, ugyanis ezek az architektúrák a kérés beérkezésekor konkrétan képesek a feladatmegszakításra és a munkalementésre, vagyis nem kell megvárniuk a futtatott folyamat befejezését sem. Ugyanakkor ez nem akkora probléma, mint az első olvasatra látszik. Nyilván előnyös, ha a lehető legfinomabb szemcsézettségű a preempció, de a Maxwell-lel a gond inkább az volt, hogy maga a rendszer nem tudott kvázi valós időben reagálni a beérkező, kritikus fontosságú feladatokra. Ebből a szempontból a Pascal képességei is bőven elég jónak mondhatók ahhoz, hogy a virtuális valóságon belüli igényeket megfelelően lekezelje.

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

Azóta történt

Előzmények

Hirdetés