Vélemény: VR-para GeForce-on, de mit jelent ez valójában?

Nagy szavak a levegőben

Alig pár napja hűlt ki a kialakult vita az aszinkron compute és a második generációs Maxwell architektúra viszonyával kapcsolatban, amelynek az alapjait megpróbáltuk érthetően elmagyarázni, kifejezetten ügyelve a félreértések helyretételére. Sajnos azonban a fórumok ismét égnek, ugyanis David Kanter, az elismert architektúraelemző az ominózus TechReport adás vége felé (1 óra 21 perc körül) azt mondta az Oculus munkatársaira hivatkozva, hogy a GeForce kártyákon a preempció megvalósítása „valószínűleg katasztrofális”. Persze nincs baj azzal, ha a technikai részletek kiderülnek, de az már problémás, hogy mindössze tíz percet kapott az adásból a téma, ami sajnos nem túl sok idő arra, hogy a lényeget sikerüljön elmagyarázni.

A legfontosabb azt tisztázni, hogy a hardverek mire készülnek. Az NVIDIA az architektúráját elsődlegesen grafikai számításra építette, ami igazából meg is látszik rajta, hiszen általános számításokban az AMD GCN architektúrája jelentősen túlteljesíti mind a Kepler, mind a Maxwell modelleket. Leragadva azonban a GeForce és a Radeon termékeknél, a játékok által ma jellemzően használt DirectX 11-es API-val gyakorlatilag minden hardverbe érkező feladat a grafikai parancslistán keresztül futott be. A mai PC-s játékoknál a grafika számítása nagymértékben megjósolható, így komolyan ki lehet gyúrni rá az architektúrát, és minden olyan ütemezésre vonatkozó funkciót ki lehet dobni vagy át lehet helyezni a szoftveres rétegbe, amelyre az aktuális API-k működése mellett nincs szükség. Ezzel jelentősen növelni lehet egy architektúra teljesítmény/fogyasztás mutatóját is.

Az általános számítások tekintetében azonban messze nem ilyen egyszerű a helyzet, és ezek az alkalmazások jellemzően nagyon kiszámíthatatlanok. Emiatt például az architektúrák ütemezését igen masszívra kell tervezni, aminek sajnos jelentős hátránya, hogy leromlik a rendszer teljesítmény/fogyasztás mutatója. Ez tulajdonképpen évek óta így van, de senkit sem zavart, mert a jellemzően DirectX 11 API-ra írt játékok szempontjából irreleváns volt, hogy a hardver ütemezése mennyire robusztus, vagy maga a rendszer mennyire jól kezeli preempciót.

Utóbbi szóval nagyon sűrűn lehet találkozni manapság, mivel a virtuális valóság teljesen felrúgja azokat az igényeket, amelyeket eddig egy program támasztott a hardverek felé. Mint ismeretes, valamilyen szintű preempció minden grafikus vezérlőben található. Erre azért van szükség, hogy az éppen futó feladatsor bizonyos helyzetekben megszakítható legyen annak érdekében, hogy a hardver képes legyen más feladatot futtatni. Minden grafikus architektúra másképp kezeli ezt, vagyis mondhatjuk azt is, hogy a preempciónak különböző hatékonyságú implementációi léteznek.

Többek között a PC-nél maradva az Intel Gen7.5 és Gen8, valamint az AMD GCN1 és GCN2 architektúráinak az éppen futó munkacsoportokat be kell fejezniük, de utána lehetségessé válik egy magasabb prioritású feladat futtatásának beszúrása. Ennél jobb rendszernek tekinthető az Intel Gen9 és az AMD GCN3 architektúra, amelyek képesek arra, hogy egy magasabb prioritású feladatot lefuttassanak úgy, hogy szándékosan megszakítják az éppen futó munkacsoportokat, és a felszabaduló feldolgozókra mehet az új feladat. Ez az a modell, amelyet jellemzően finomszemcsés preempciónak hívnak.

Az NVIDIA a fenti modelltől jelentősen eltérő rendszert használ. A Fermi, Kepler és Maxwell architektúrára épülő GeForce-ok esetében a preempció a rajzolási parancsokhoz igazított, vagyis egy magasabb prioritású feladat csak akkor szúrható be a feladatsorba, ha az adott rajzoláshoz tartozó feladat lefut. Ez egyrészt jó, mert a már elavultnak tekinthető, de a ma még elterjedt grafikus API-k (például DirectX 11) esetében lehetőség volt arra, hogy a grafikus meghajtó bizonyos rajzolásokat előnyben részesítsen, ugyanakkor rossz is, mert az új grafikus API-k (például DirectX 12 és Vulkan) teljesen újragondolt működést vezetnek be, amelyeknek sokkal jobb az a feldolgozási modell, amire az Intel és az AMD épít.

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

Azóta történt

Előzmények

Hirdetés