• Nem Talált Eredményt

VLIW4 alapú GPU-k helyett SIMD alapú GPU bevezetése

In document GPGPU-k és programozásuk (Pldal 189-199)

családhoz tartozó magok és kártyák

2. A Southern Islands mikroarchitektúra főbb újításai

2.1. VLIW4 alapú GPU-k helyett SIMD alapú GPU bevezetése

7.4. ábra - Az ATI és az AMD GPU-k mikroarchitektúra fejlődésének főbb állomásai [95]

2.1.1. Az ATI (melyet AMD 2006-ban felvásárolt) és az AMD GPU-k mikroarchitektúra fejlődésének főbb állomásai [95]

Amint azt a fenti ábra szemlélteti, az AMD GPU-it hagyományosan VLIW alapú ALU-kra alapozta, eleinte VLIW5-ös, majd VLIW4-es ALU-kat használva.

2.1.2. VLIW alapú ALU-k használata GPU-kban

Az Nvidia-val ellentétben AMD a GPU-it VLIW5 ALU-kra alapozta. Ezekben 5 feldolgozó egység (EU) és egy elágazás kezelő (Branch Unit) van, szemben az Nvidia által használt SIMD alapú ALU-kkal.

7.5. ábra - Egy VLIW5 ALU blokkdiagrammja [17]

2.1.3. VLIW-alapú ALU-k

• A fenti ábrán láthatóan AMD a VLIW5-ös ALU-t 6-szoros kibocsájtású VLIW utasításokkal vezérli, melyek mindegyik EU számára meghatározzák az elvégzendő műveletet.

• A VLIW utasításban egyidejűleg kibocsájtott múveleteknek viszont függőségektől mentesnek kell lennie.

• A fordító feladata olyan VLIW utasítás folyam generálása, amelyben minél több függőségektől mentes művelet van (statikus függőség feloldás).

2.1.4. Hullámfront sorozat átkódolása VLIW4 utasításokká [96]

Tegyük fel, hogy a fordítónak az alábbi hullámfront sorozatot kell átkódolnia VLIW4 utasításokká.

Mindegyik hullámfrontban 64 munkaelem van, a hullámfrontok között fennálló függőségeket az ábra jelzi.

7.6. ábra

-VLIW4 utasítások használatakor a fordító 4 különböző hullámfrontból helyez végrehajtandó müveleteket a VLIW4 utasítás 4 kibocsájtási helyére (slot).

A 4 kibocsájtási helyen specifikált műveletet egy 16-széles SIMD egyik feldolgozó egysége fogja végrehajtani.

7.7. ábra - VLIW4 ALU blokkdiagrammja (a Northern Islands család (HD6900-as

kártyájában)) [17]

7.8. ábra - 16-széles SIMD egység egyszerűsített blokkdiagrammja ([95])

2.1.5. Hullámfrontok ütemezése VLIW4 kódolást feltételezve [96]

7.9. ábra

-Létező függőségek meggátolják a fordítót abban, hogy minden ciklusban mind a négy helyet betöltse (ld. ábra).

A hullámfront sorozat VLIW4 utasításokká történt átkódolásának eredményét az ábra szemlélteti.

Vegyük észre, hogy a hullámfront 64 munka-elemének ütemezése a 16-széles futószalagot tartalmazó SIMD egységen 4 óraciklust vesz igénybe.

Összességében a teljes hullámfront sorozat ütemezése 6x4 ciklust igényel.

2.1.6. Grafikus feldolgozás és VLIW alapú ALU-k

Ahogyan azt már említettük, a korai GPU-k a grafikai feldolgozásra helyezték a hangsúlyt.

A grafikai feldolgozás lényegében fix algoritmusok végrehajtását jelenti, így a fordítók jó eséllyel voltak képesek a rendelkezésre álló kibocsájtási helyek nagy arányú feltöltésére, azaz magas hatásfokot értek el.

Másképp fogalmazva a grafikai alkalmazások nagyon jól illeszkednek a VLIW alapú GPU architektúrákhoz [95].

2.1.7. Az AMD motivációja a korábbi GPU-kban használt VLIW alapú ALU-k használatára

• A VLIW alapú, statikus függőség feloldást használó GPU architektúra alacsonyabb komplexitású, mint egy hardveres dinamikus függőség feloldást használó tradicionális SIMD alapú GPU architektúra, emiatt AMD korábban ezt a megoldást preferálta.

• A gyakorlatban ez annyit jelent, hogy azonos mennyiségű tranzisztor esetén a VLIW alapú GPU-k több tranzisztort használhatnak feldolgozó egységként, mint a dinamikus függőség feloldást használó SIMD alapú GPU-k, tehát VLIW alapú GPU-kban jellemzően több EU található, mint a SIMD alapú GPU-kban.

A következő táblázatban az Nvidia dinamikus függőség feloldást használó SIMD alapú GPU-it és az AMD statikus függőség feloldást használó VLIW-alapú GPU-it hasonlítjuk össze.

2.1.8. Feldolgozó egységek (EU) száma Nvidia és AMD GPU-k esetében 7.10. ábra

-2.1.9. Az AMD motivációja első GPU-iban VLIW5 alapú ALU-k használatára [97]

Az AMD eredetileg VLIW5 kialakítást választott a feldolgozó egységei számára.

Döntésük a DX9-hez kapcsolódott, ugyanis ott a VLIW5 ALU lehetővé tette a 4 tényezős skalár szorzás (pl.

RGBA szín reprezentáció) mellett egy további skaláris komponens (pl. megvilágítás) párhuzamos kiszámítását, ami a DX9-ben a vertex shaderek esetén szükséges volt.

2.1.10. Az AMD VILW5 ALU-jának kialakítása

Az AMD a 2007-ben bevezetett R600 GPU magban már a VLIW5 kialakítást használta, bár egy kicsit más formában, mint a későbbi GPU megvalósításokban (ld. ábra).

7.11. ábra - Feldolgozó egységek (EU) száma Nvidia és AMD GPU-k esetében

Megjegyzés

A VLIW5 kialakítást egészen az ATI első DX9-et támogató 2002-ben megjelent GPU kártyájáig, az R300 magra épülő Radeon 9700-ig lehet visszavezetni [101].

Az R300 a programozható vertex shader futószalagnál használta ki a VLIW5 előnyeit [102].

7.12. ábra - A vertex shader futószalag az ATI első DX 9.0 támogatású GPU-jában (az

R300 magban) (2002) [102]

2.1.11. A továbbfejlesztett VLIW5 ALU bevezetése

A 2008-ban bevezetett RV770 GPU magban (Evergreen vonal) az AMD leváltotta a VLIW5 kialakítást egy továbbfejlesztett VLIW5 kialakításra, ami már támogatta az FP64 MAD utasítást.

7.13. ábra - Az AMD VLIW alapú shader ALU-inak fejlődési lépései

2.1.12. A VLIW4 bevezetése a továbbfejlesztett VLIW5 kialakítás helyett - 1 7.14. ábra - Az AMD VLIW alapú shader ALU-inak fejlődési lépései

A 2010-ben megjelenő Cayman GPU magokban (Northern Islands vonal) az AMD lecserélte a továbbfejlesztett VLIW5 felépítést VLIW4 felépítésre.

2.1.13. A VLIW4 bevezetése a továbbfejlesztett VLIW5 kialakítás helyett - 2

A váltás okát az AMD a Cayman (HD 6900/Northern Islands vonal) 2010 decemberi bevezetésekor indokolta. E szerint VLIW5 architektúrájuk átlagos kihasználtsága DX10/11-es játékok shadereinek futásakor csupán 3.4 volt az ötből, vagyis az 5. EU többnyire kihasználatlan volt [17].

Az új VLIW4 kialakításban az AMD

• eltávolította a T-egységet (Transzcendentális egység),

• az EU-k közül hármat úgy fejlesztett tovább, hogy azok közösen képesekké váltak órajel ciklusonként 1 transzcendentális utasítás végrehajtására és

• mind a 4 EU-t továbbfejlesztette annak érdekében, hogy közösen órajel ciklusonként képesek legyenek egy FP64 művelet elvégzésére.

7.15. ábra - A Northern Islands vonalban (HD6900) bevezetett VLIW4 ALU blokkdiagrammja [17]

2.1.14. Az AMD továbbfejlesztett VLIW5 és VLIW4 megvalósításainak összehasonlítása [17]

7.16. ábra

-Megjegyzés

A VLIW4 ALU előnyei a VLIW5-tel szemben - 1 [103]

Amint azt az előbbiekben már tárgyaltuk, az új VLIW4 kialakításban az AMD

• eltávolította a T-egységet (Transzcendentális egység),

• az EU-k kózül továbbfejlesztett közül hármat úgy, hogy azok közösen képesekké váltak óraciklusonként 1 transzcendentális utasítás végrehajtására és

• mind a 4 EU-t továbbfejlesztette, hogy közösen órajel ciklusonként képesek legyenek egy FP64 művelet elvégzésére.

Az új felépítésű ALU által óraciklusonként elvégezhető műveletek:

• 4 FX32 vagy 4 FP32 művelet vagy

• 1 FP64 művelet vagy

• 1 transzcendentális + 1 FX32 vagy 1 FP32 művelet, míg

a korábbi kialakítás képességei:

• 5 FX32 vagy 5 FP32 művelet vagy

• 1 FP64 művelet vagy

• 1 transzcendentális + 4 FX/FP 32 művelet órajelciklusonként.

A VLIW4 ALU előnyei a VLIW5-tel szemben - 2 [103]

• A korábbi generációkhoz szükséges lapkaméretnek nagyjából a 10%-át sikerült megtakarítani azzal, hogy a T-egységet AMD eltávolította, miközben a feldolgozó egységek közül hármat alkalmassá tett

transzcendentális függvények végrehajtására, ill. a 4 feldolgozó egységet együttesen arra, hogy órajel ciklusonként képes legyen egy FP64 utasítást feldolgozni.

• A szimmetrikus ALU kialakítás egyúttal nagyban leegyszerűsíti a VLIW fordító ütemezési feladatait is.

• A VLIW4 ALU további előnye az, hogy FP64 számításokat az FP32 számítások sebességének ¼-edével képes elvégezni, a korábbi 1/5-ös aránnyal szemben.

2.1.15. A numerikus számítások fontosságának növekedése és ezzel összefüggésben a GCN microarchitektúra bevezetése

• Amint azt korábban már említettük, az AMD első GPU-i esetében a fő cél a grafikai alkalmazások támogatása volt.

• Mivel a fix grafikai algoritmusokhoz a VLIW architektúra igen jól illeszkedik, ezért AMD eleinte VLIW-alapú ALU-kat használt (ami a korábbi ATI megvalósításokon alapult).

• Az idő múlásával azonban a számításigényes alkalmazások (HPC) egyre nagyobb teret nyertek, és a GPU-k, valamint az adatpárhuzamos gyorsítók egyre több alkalmazási területen váltak fontossá, mint pl. a fizikai alkalmazások, pénzügyi és üzleti alkalmazások, bányászat stb.

• Ezen túlmenően, a numerikus számítást végző grafikus kártyák és gyorsítók jelentősen nagyobb haszonnal voltak forgalmazhatók és lényegesen nagyobb fejlődési potenciállal rendelkeznek, mint a hagyományos grafikai kártyák [95]. kibocsájtási helyeket megfelelő mértékben feltölteni végrehajtandó műveletekkel [95], ezért az AMD következő lépésként a GPU-iban használt VLIW4 ALU-kat lecserélte az új GCN architektúrájú ALU-kra (a South Islands családjában), amint ezt a következő ábra szemlélteti.

2.1.16. A VLIW4 alapú ALU-k leváltása SIMD alapú GCN architektúrájú ALU-kra [91]

2.1.16.1. Az AMD GPU mikroarchitektúráinak fejlődése

7.17. ábra

In document GPGPU-k és programozásuk (Pldal 189-199)