• Nem Talált Eredményt

A Kepler mikroarchitektúrájának főbb továbbfejlesztései

In document GPGPU-k és programozásuk (Pldal 159-166)

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ó.

4. Az Nvidia GK104 Kepler magja, és a hozzá tartozó

In document GPGPU-k és programozásuk (Pldal 159-166)