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