családhoz tartozó magok és kártyák
3. A Kepler mikroarchitektúrájának főbb újításai
3.5. A Kepler mikroarchitektúrájának főbb továbbfejlesztései
a) A feldolgozó egységek működési frekvenciáját (shader frequency) a mag működési frekvenciájára csökkentették.
b) A hardveres függőség ellenőrzést egyszerűsítették azáltal, hogy a fordító a programban az ütemező számára értelmezhető kulcsszavakat (ún. compiler hinteket) helyezhet el.
c) SMX-enként négyszeres kibocsájtású warp ütemezőt vezettek be.
d) A szálanként elérhető regiszterek számát megnégyszerezték.
e) Bevezettek egy általános célra használható 48 KB-os, csak olvasható adat gyorsítótárat.
f) A Fermihez képest megduplázták az L2 cache méretét és sávszélességét.
3.5.1. a) A feldolgozó egységek működési frekvenciájának (shader frequency) lecsökkentése a mag frekvenciájára - 1
Általánosságban elmondható, hogy a teljesítmény duplázására két alapvető elv létezik:
• megduplázhatjuk a feldolgozó egységek órajelét az eredeti kétszeresére vagy
• megduplázhatjuk az elérhető feldolgozó egységek számát, és azokat az eredeti órajellel működtetjük.
Az első lehetőséghez a korábbiakkal nagyjából azonos lapkaterület szükséges, azonban a teljesítmény felvétel megnő. A második esetben a feldolgozáshoz kétszer akkora lapkaterületre van szükség, azonban a fogyasztás alacsonyabb lesz, mint az első esetben.
Megjegyzés
• Magasabb órajel frekvenciához (fc) magasabb működési feszültség szükséges (V).
• A processzorok dinamikus disszipációja a következőképpen számolható: D = konstans x fc x V2. vagyis a magasabb frekveciához magasabb fogyasztás tartozik.
• Másrészről a nagyobb lapkaméret magasabb előállítási költséggel jár, tehát a tényleges kompromisszum az alacsonyabb fogyasztás és a magasabb előállítási költség között van.
3.5.2. a) A feldolgozó egységek működési frekvenciájának (shader frequency) lecsökkentése a mag frekvenciájára - 2
A G80-as Fermi család tervezői a feldolgozó egységek órajel frekvenciájának (vagyis a shader frekvenciának) duplázása mellett döntöttek a teljesítmény növelése érdekében, amint az az ábrán látszik.
5.17. ábra - Mag és shader frekvenciák összehasonlítása az Nvidia fontosabb GPU családjaiban
A választott megoldás előnye a kisebb lapkaméret, ami csökkenti a gyártási költségeket, a hátránya azonban a másik megoldáshoz képest a megnövekedett fogyasztás.
3.5.3. a) A feldolgozó egységek működési frekvenciájának (shader frequency) lecsökkentése a mag frekvenciájára - 3
Ezzel ellentétben a Keplerrel kezdődően az Nvidia a fogyasztás csökkentésére helyezte a hangsúlyt, és a nyers számítási teljesítmény helyett a lehető legjobb fogyasztás/teljesítmény arány elérésére törekedett.
Ennek megfelelően tervezéskor áttértek a másik alapvető lehetőségre, vagyis a feldolgozó egységek számát növelték meg jelentősen, a shader frekvenciát pedig lecsökkentették a működési frekvenciával megegyező értékre, a lenti táblázatok szerint.
5.18. ábra - Rendelkezésre álló feldolgozási erőforrások a Kepler SMX és a Fermi SM esetén
3.5.4. a) A feldolgozó egységek működési frekvenciájának (shader frequency) lecsökkentése a mag frekvenciájára - 4
5.19. ábra - Magok és shaderek órajel frekvenciái az Nvidia főbb GPU családjaiban
3.5.5. A Fermi és Kepler feldolgozó egységei lapkaméretének és energia fogyasztásának összehasonlítása [76]
5.20. ábra
-Megjegyzés
Az AMD a GPU-iban a feldolgozó egységek órajelét az alap órajelen tartotta, amint azt a következő táblázat szemlélteti.
5.21. ábra - Nvidia és AMD GPU kártyák főbb jellemzőinek összevetése [77]
3.5.5.1. A Kepler energia hatékonysága a Fermihez képest
Nvidia a Kepler tervezésekor a wattonkénti teljesítményre optimalizált, így a Fermihez képest jelentősen nagyobb energia hatékonyságot értek el, ahogyan az az alábbi ábrán látható [76].
5.22. ábra - Fermi és Kepler kártyák teljesítményhatékonyságának összevetése [76]
3.5.6. b) A hardveres függőség ellenőrzés egyszerűsítése a fordító által az ütemezőnek szolgáltatott kulcsszavak (compiler hints) segítségével
A Fermi mikroarchitektúrájának része egy összetett hardveres ütemező, ami a warp ütemezéshez végez függőség ellenőrzést az alábbi ábra szerint.
5.23. ábra - A Fermi hardveres függőség ellenőrzője [76]
A Kepler termékvonalban az Nvidia nagyban leegyszerűsítette a hardveres függőség vizsgálatot azáltal, hogy a fordító kulcsszavakat helyezhet el a programban, melyek az ütemezőnek megadják pl. azt, hogy az utasítások mikor lesznek futásra készek.
Ez az információ a feldolgozó futószalagok rögzített késleltetései alapján számítható ki, és lényegesen leegyszerűsítheti az ütemező felépítését (amint az az ábrán látható).
5.24. ábra - A Kepler hardveres függőség ellenőrzésének blokkdiagrammja [76]
3.5.7. c) SMX-enként négyszeres warp ütemező bevezetése
Ahogy azt már korábban említettük, Nvidia a Kepler architektúrában töbszörözte a rendelkezésre álló számítási erőforrásokat az előző Fermi architektúrához képest, az alábbiak szerint.
3.5.8. Rendelkezésre álló számítási erőforrások a Kepler SMX és a Fermi SM esetében
5.25. ábra
-A jelentősen megnövekedett számú erőforrás kihasználásához (ld. táblázat) az Nvidia négyszeres kibocsátású warp ütemezőt vezetett be minden SMX egységhez.
5.26. ábra
-Az SMX négy warp ütemezőjének mindegyike minden óraciklusban kiválaszt kiküldésre egy olyan warp-ot, melyben két egymástól független utasítás van (ld. lent) [70].
5.27. ábra
-3.5.9. d) A szálanként elérhető regiszterek számának megnégyszerezése
A GKxxx Kepler magjainak szálai 255 regiszterhez férhetnek hozzá, ez négyszer annyi, mint amennyivel a Fermi magok szálai rendelkeznek (ld. a lenti táblázatot).
5.28. ábra - Számítási verziók főbb eszköz jellemzői [32]
3.5.10. A Kepler magokban bevezetett szálanként elérhető regiszterszám négyszerezésének hatása
A regisztereket erőteljesebben használó programkódokra jótékony hatással lehet a regiszterek megnövelt száma [70].
3.5.11. e) Egy általános célra használható 48 KB-os, csak olvasható adat
gyorsítótár bevezetése
A GPGPU-k Fermi generációjában már bevezettek egy 48 KB-os csak olvasható gyorsító tárat. Tapasztalt programozók gyakran használták ezt a gyorsító tárat annak ellenére, hogy ez csak a textúra egységből elérhető.
A Keplerben ez a csak olvasható gyorsító tár már elérhetővé vált általános felhasználásra is (ld. lent)
5.29. ábra - A Kepler cache architektúrája [70]
3.5.12. f) Az L2 cache méret és sávszélesség megduplázása a Fermihez képest
A GK110-ben az Nvidia megduplázta az L2 cache méretét, így a Fermi magokban (GF100/GF110) elérhető korábbi 768 KB-os L2 gyorsító tárhoz képest itt már 1.5 MB használható [70]. [70].
Megjegyzés
A GK104 továbbra is 512 KB L2 cache-t tartalmaz, ami ugyanannyi, amennyi a korábbi Fermi GF104/GF114 magokban található.