Merre tartanak az új GPU-architektúrák?

Felkészülés a heterogén érára

Az NVIDIA legutóbb a GTC Asia 2011 nevű rendezvényen beszélt a jövőben esedékes termékekről és tervekről. Az már régóta tudható, hogy az új generációs architektúra a Kepler kódnevet viseli, és a fejlesztések irányáról is lehet sejteni pár dolgot általánosan, de konkrétum olyannyira nincs, hogy a vállalat még élesben sem állt elő egy demonstrációval. Ez persze nem azt jelenti, hogy az új generáció nem működik, hiszen a 2012-re tervezett hivatalos start ezt megköveteli, de az NVIDIA láthatóan titkolózik. Tulajdonképpen az adott cég stratégiájától függ, hogy miképp vezeti be a piacra az újdonságot, így nincs is semmi baj azzal, hogy az NVIDIA nem kürtöli világgá a Kepler tényleges képességeit, de az AMD hamarosan elkezdi szállítani a GCN architektúrára épülő Radeon HD 7970-es VGA-t, így elkerülhetetlen, hogy a média pletykagyára erősebb fokozatba kapcsoljon az új GeForce-szal kapcsolatban.

Természetesen a legtöbb mendemonda a csúcs GPU teljesítményéről szól: ezen a fronton minden van, így vannak olyan jóslatok, hogy a GK100 kétszer gyorsabb lesz a GF110-nél, míg a másik véglet a lapka fejlesztésének leállítása. Tekintve, hogy biztosat senki sem tud, a teljesítményt nem szeretnénk firtatni, illetve a törléssel kapcsolatban sincs semmilyen hivatalos megerősítés. Rengeteg pletyka van azonban az architektúra képességeiről, és figyelembe véve az NVIDIA korábbi nyilatkozatait, valamint a vállalat jövőképét, talán érdemes elemezni, hogy milyen is lehet a Kepler.

Steve Scott a GTC Asia 2011 nevű rendezvényen már elmondta, hogy a Kepler fejlesztésénél már fontos szempont volt a szoros integrálhatóság a processzormagokkal. Tulajdonképpen az AMD GCN architektúrája is ennek jegyében született meg, így az NVIDIA is ugyanazon az ösvényen lohol, amelyre a konkurens már rálépett. Különbséget jelent azonban, hogy a zöldek a jövőjüket az ARM processzorokkal képzelik el, míg a vörös oldal az AMD64-es, vagy x86-64-es utasításkészletet tekinti prioritásnak. Ebben semmi meglepő nincs, hiszen az NVIDIA az ARMv8 alapjaira építi Denver kódnevű processzorát, így természetes, hogy a vállalat a GPU-kra vonatkozó fejlesztéseket is ilyen irányba viszi. A Kepler esetében ez azt is jelenti, hogy az érkező GeForce-ok többet is tudhatnak majd, mint amit technikailag ki lehet használni.

A GCN architektúra esetében megjegyeztük, hogy alapvetően egy félkarú óriásról van szó, hiszen kezeli a C++ programnyelvet, így támogatja a virtuális funkciókat, a kivételkezelést, a rekurziót, valamint az AMD64-es 64 bites pointereket. A rendszer tehát képes címfordításra az AMD64-es címtartományon belül, mindemellett támogatja az x86 virtuális memóriát az IOMMU technológián keresztül. Mindez persze ma még csak papíron létezik, hiszen ahhoz, hogy ebből a felhasználó lásson valamit, viszonylag szoros integráció kell a CPU-val, illetve az operációs rendszer szintjén is számos fejlesztés szükséges. Az NVIDIA Kepler esetében már régóta tudható, hogy támogatja az ARM virtuális memóriát, de az operációs rendszer itt is limitálja a lehetőségeket, illetve alapvetően ARM processzorra van szükség a kihasználáshoz. A Kepler tehát nagyon hasonló lesz a konkurens GCN architektúrához, vagyis sok újítás lesz, melyek csak a jövőben, illetve az integráció során juthatnak főszerephez.

Hirdetés

Valószínű, hogy az NVIDIA is az integrációnak rendeli alá a fejlesztéseket, hiszen a vállalat szuperszámítógépes jövőképe ezt megköveteli. A heterogén éra lassan minden cég tervezőasztalán beköszönt, de problémát jelent, hogy a CPU és a GPU integrálása alapvetően nem éppen optimalizált. Bár a két részegység az aktuális, heterogén módon programozható PC-s chipekben már egy lapkában helyezkedik el, de egy gyors busz felel a kommunikációért. Ez a sebesség és különösen a késleltetés tekintetében jobb, mint amit egy külső busz (például PCI Express) kínál, de sokkal többre van szükség. A cél az, hogy a CPU és a GPU egységes címtartományt és teljesen koherens memóriát osszon meg egymással. Ma ez még nem valósult meg, ugyanis a CPU nem ugyanazt a logikai címteret látja, amit a GPU.

A CUDA 4.0 értékes újítása
A CUDA 4.0 értékes újítása [+]

Az NVIDIA a CUDA 4.0-ban bemutatott egy opciós lehetőséget erre, amivel a pointerek megoszthatók. Ez alapvetően jó, mert túl sok más lehetőség az aktuális termékekkel nincs, de a rendszer ettől még képtelen egy tetszőleges pointert átadni a GPU-nak az x86 memóriából. A GCN architektúra lényegében ezt vezeti be, és az NVIDIA a Keplerrel is ebbe az irányba tarthat, csak éppen az ARM zászlaja alatt hajózva. Természetesen az x86 architektúra továbbra is támogatható a CUDA alól, de licenc nélkül az NVIDIA-nak az ARM mellett kellett dönteni, mivel a heterogén éra egyik legfontosabb szempontja az egységes címtartomány.

A Kepler valószínű, hogy ugyanazokat a pointereket kezeli majd, amelyeket az ARMv7 utasításkészletű processzorok, de integrálás szempontjából a fő tényező a Maxwell APU lesz, így a rendszert ezen a ponton később a Denver projekthez igazítja majd a vállalat.

Mi változhat a Keplerben?

A Kepler felépítése is változhat a Fermihez viszonyítva, hiszen jobb a rendszerhez még az integráció előtt hozzányúlni. A következő lépcsőnek tervezett Maxwell már eleve egy kockázatos projekt, és nagyon sok buktatója lehet, így célszerű a lehető legtöbb fejlesztést végrehajtani a Keplerben, még ha azok egy része nem is használható ki. Ezt az AMD is így gondolta, így a GCN architektúrába mindent beleadtak, így még az úgynevezett architekturális integráció bevezetése előtt tesztelhető élesben a rendszer.

Az NVIDIA korábban utalt rá, hogy az Echelon projektben szereplő streaming multiprocesszorok a Maxwellben helyet kapó rendszer továbbfejlesztései. Azt nem tudni, hogy a tervezőasztalon mennyi újítás kerül bele, de ebből kiindulva a Fermiben használt CUDA magok komoly változáson is áteshetnek. A pletykák szerint az NVIDIA a Kepler esetében mellőzi majd a shaderórajelet, azaz a teljes rendszer egységes, ám alacsonyabb magórajelen üzemel majd. Sokan temetni is kezdték az architektúrát ebből kifolyólag, de az órajelek kérdése nem ennyire triviális.

Az adott architektúrától függ, hogy jó-e az egyes részegységeket külön órajelen üzemeltetni. A G80 óta az NVIDIA ezt az utat járja, de sok tranzisztort kellett bevetni ahhoz, hogy a shader egységek a magórajelnél jóval magasabb frekvencián üzemeljenek. Maga az elv nem rossz, ám rögtön látszik, hogy a magas órajelhez komplex dizájn kell, ami természetesen alacsonyabb órajel mellett egyszerűsödik, vagyis a felszabaduló tranzisztorokat az NVIDIA feldolgozókra költheti. Ha a Keplerben megszűnik a shaderórajel, akkor az NVIDIA több feldolgozóval operálhat, vagyis összességében a pletykált csökkenő órajel egyáltalán nem tragikus, sőt még jól is elsülhet. Arról nem is beszélve, hogy a hírek szerint a magórajel nő, vagyis a rendszer kiegyensúlyozottabbá válhat.


[+]

Az Echelon projektből kiindulva valószínű, hogy a CUDA magok logikai felépítése komplexebb lesz. Jelenleg nem túl bonyolult egységek ezek, hiszen tartalmaznak egy lebegőpontos és egy integer feldolgozót, illetve az alapvető vezérléshez szükséges részeket. A skalár integer egységet nem feltétlenül szükséges módosítani, de helyenként híresztelik a 64 bites aritmetikai műveletek támogatását, ami a HPC-piacon hasznos lehet. A lebegőpontos részt valószínűleg lecseréli az NVIDIA, és a skalár egység helyére egy SIMD motor kerül, melynek képességei ismeretlenek. Valószínű, hogy 256 vagy esetleg 512 bites vektorfeldolgozó kerül bevetésre, illetve opciós lehetőség, hogy a streaming multiprocesszorokon belül megosztott regiszterterület is dedikáltan beköltözik a CUDA magokba. Utóbbi elsősorban a fogyasztásra és a késleltetésre lenne pozitív hatással.

Arról nincs sok adat, hogy mennyi CUDA mag kerül egy streaming multiprocesszorba. A fenti bekezdés alapján a magok teljesítménye jelentősen nőne, így a kevesebb is elég. Az Echelon projekt esetében az NVIDIA nyolc egységgel számol, ami a Kepler szempontjából is logikusnak tűnik. A Fermihez képest tehát a CUDA magok száma csökkenhet, de ezek jóval bonyolultabb egységek lehetnek, így ez az összehasonlítás megint nem túl reális. Amennyiben az NVIDIA is SIMD motorban gondolkodik, úgy valószínű, hogy az AMD-hez hasonlóan a régi számozást nem törik meg, így a vektorfeldolgozó 32 bites részeit tekintik majd úgymond stream processzornak. Ez természetesen nagyon sarkított adat, ahogy a GCN architektúránál, de a vásárlók nagy része nem biztos, hogy megértené a változások logikai részét, így érdemes egy kicsit csalni.

A fenti változásokkal az ütemező is egyszerűsödhet, amit az NVIDIA mindenképpen átdolgoz. A hírek szerint ugyanis a Kepler ütemezője képes elvenni az erőforrást az adott folyamattól, ha azt egy fontosabb folyamat igényli. Ha már változás éri a rendszert, akkor érdemes bevezetni egyfajta moduláris dizájnt, hogy a kisebb lapkákat egyszerűbb legyen tervezni.

GPU-e egyáltalán?

Látható, hogy a GPU-architektúrák nem éppen a megszokott irányba tartanak. Alapvetően fel lehet tenni a kérdést, hogy GPU-e egyáltalán egy GCN-es Radeon, vagy egy Kepler architektúrára épülő GeForce az lesz-e? Az előzetesek alapján inkább hasonlítanak egy RISC-alapú processzorra, jó sok maggal.

A helyzet az, hogy a GPU-k sem kerülhetik el a sorsukat, azaz újra előkerül Ivan Edward Sutherland 1968-ban megfogalmazott, sokak számára kevésbé ismert, Wheel of Reincarnation nevű szabálya, melynek jelentése lényegében az, hogy egy speciális célú hardverhez képest olcsóbb egy megfelelő szoftver és egy általános célra készített hardver kombinációja. Viszont olykor a piacnak nagyobb szüksége van a magasabb számítási teljesítményre, mint az olcsóbb hardverekre, így idővel ennek érdekében az adott funkció kikerül az általános célra készített hardverből, és egy külső, speciális célú egység formájában születik meg. Később, amikor a korábbi, még speciális célú hardver feladatai túl általánossá válnak, akkor a költségek csökkentése érdekében visszakerül az általános célra készített hardverbe, mellyel gyakorlatilag kialakul egy ördögi kör.

Alapvetően nem a dedikált GPU-k kerülnek ebbe a körbe először. Az IBM PC-s idők kezdetében egy matematikai társprocesszor alkalmazására is volt lehetőség a CPU-k mellé, majd ez idővel bekerült a központi lapkába. Anno elképzelhetetlen volt, hogy egy matematikai társprocesszor nélkül a PC magas számítási teljesítményt adjon le bizonyos feladatokban, de manapság már csak nevetünk ezen. Ehhez kísértetiesen hasonlít a VGA-k helyzete, és a fenti fejlesztésekkel látható, hogy Ivan Edward Sutherland szabálya hamarosan új kört zár be.


[+]

A folyamat persze nem lesz gyors, hiszen a matematikai társprocesszor sem tűnt el egyik napról a másikra, az irány azonban egyértelmű. A rendszerek felépítése persze bonyolítja a helyzetet. Az NVIDIA és az AMD számára a VGA-piac nem rossz, bár tény, hogy az eladások csökkennek. A szegmens maga azonban értékes, és életre kelthető pár reformmal. A nagy kérdés tehát, hogy merre mennek a fejlesztések.

Az biztos, hogy a gyártók kombinálhatók lesznek, vagyis Intel és AMD processzorral rendelkező gépekbe lehet majd tenni AMD és NVIDIA VGA-t. Idővel azonban az újszerű VGA-k egyes szolgáltatásait csak platformmal lehet kihasználni, vagyis a gyártók keverésével értékes funkcióktól eshet el a felhasználó. Arra kicsi az esély, hogy az AMD és az NVIDIA megakadályozza majd, hogy egy Intel processzor mellé Radeont vagy GeForce-ot lehessen tenni, de annyi már biztos, hogy mindkét vállalat a saját útját járja majd, így a fejlesztések szempontjából az számít, hogy mit lehet elérni platformmal, vagyis az NVIDIA és az AMD VGA-hoz rendre NVIDIA és AMD processzor, illetve tulajdonképpen APU lesz a legjobb választás.

Arra persze nem érdemes mérget venni, hogy az Intel kimarad a buliból. Bár a VGA-piac jövője finoman szólva is kérdéses, így alapvetően jelenleg a kivárás a legjobb opció, de a Larrabee fejlesztései MIC fedőnéven folynak tovább, és tulajdonképpen a vállalat gyakorlatilag hasonló utat jár, azzal a különbséggel, hogy elképesztően ragaszkodnak az x86 utasításkészlet alkalmazásához.

Abu85

Azóta történt

Előzmények

Hirdetés