gpu architektúra

15
GPU architektúra Compute Unified Device Architecture Készítette: Páros Zoltán

Upload: jewel

Post on 23-Feb-2016

42 views

Category:

Documents


0 download

DESCRIPTION

GPU architektúra. Compute Unified Device Architecture Készítette: Páros Zoltán. GPU fejlődése. A játékipar fejlődésének köszönhetően a GPU óriási párhuzamos számítási kapacitással bír Ezt a kapacitást, már nem csak megjelenítésre, hanem általános célú számításokra is használják. CPU vs. GPU. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: GPU architektúra

GPU architektúra

Compute Unified Device ArchitectureKészítette: Páros Zoltán

Page 2: GPU architektúra

GPU fejlődéseA játékipar fejlődésének köszönhetően a GPU

óriási párhuzamos számítási kapacitással bírEzt a kapacitást, már nem csak

megjelenítésre, hanem általános célú számításokra is használják.

Page 3: GPU architektúra

CPU vs. GPU

A memória elérés a CPU-nál mondhatni a leglassabb művelet. A Cache elérése gyors, viszont mérete csak pár MB, és nagyon drága. GPU-nál a gyors memória-elérés megvalósítása jóval olcsóbb, és gazdaságosabb.A GPU SIMT (Single Instuction Multiple Thread) architektúrájának köszönhetőenegyetlen utasítást többszálon tud végrehajtani.Ez azt jelenti, hogy ugyanazt a az utasítást több 10.000 szálon tudja végrehajtani.

Page 4: GPU architektúra

CPU vs. GPU

GPU számítási kapacitásának fejlődése a CPU-hoz mérten

2009-2010

Page 5: GPU architektúra

GPU modell A modern GPU-k megértéséhez először a

klasszikus grafikus futószalagot kell megismerni. A folyamat a geometriai csomópontok – a vertexek – felépítésével kezdődik, melyeket a térben eltolni – transzformálni – és világítani kell. Ezután következik a csomópontok háromszögekbe rendezése. Az utóbbi időben a harmadik lépés, a pixelszintű számolás kapta a legnagyobb hangsúlyt. Az egyes képpontok színének meghatározása folyik itt bonyolult matematikai számítások – árnyalási egyenletek – és textúrázási eljárások segítségével. A negyedik lépést az NVIDIA ROP (raster operation) vagyis raszteres műveleti résznek, a Microsoft pedig Input Mergernek nevezi. Itt összegződnek a pixel shaderek eredményei és itt kerül a képre az anti-aliasing (élsimítás). A ötödik elem a memória, melyben a végleges kép fölépül, és a textúrákat és egyéb adatokat tárolja.

Az évek során ez az elvi felépítés semmit sem változott, csak az egyes lépcsők fejlődtek. A DirectX 7-ben a vertexes rész kikerült a CPU-ból, és a grafikus processzor T&L (Transform & Lighting) egysége foglalkozott vele. A DirectX 8-ban a pixel egységek programozhatósága debütált, ami a DirectX 9 folyamán fokozatosan finomodott. A ROP részen fejlődtek a Z-buffer technikák és az élsimítás, a memória pedig egyre gyorsabb és gyorsabb lett.

Page 6: GPU architektúra

GPU programozás kialakulása

2007-ben jelennek meg az első, felhasználó számára is programozható GPU-kCompute Capability /számítási képesség/ alapján rangsorolják a videókártyákat:CC 1.0: GPU általános számítási célú felhasználása, nVidia CUDA toolkit megjelenése,

Directx 10CC 1.1: További tökéletesítések, atomic funkcióCC 1.3: atomic funkciók tökéletesítése, dupla-pontosságú egységek, néhány Tesla architektúrát átdolgoztakCC 1.2: CC 1.3 előbb jelent meg, mint a CC 1.2 ; A kettő között a különbség, a dupla-pontosságú egységek hiánya, 1.2-nél már vannak.CC 2.0: megegyezik a Fermi architektúrával. Nagy programozási változások, könnyebb Kezelhetőség. Új szál szinkronizáció funkciók

Page 7: GPU architektúra

CPU és GPU kapcsolata 3 lépésben tudunk bármilyen műveletet

végrehajtatni a GPU-val:- adatotokat át kell másolnunk a GPU-ra a hostról (CPU)- a GPU-ra írt programmal az adatokon végrehajtjuk a műveleteket- az adatokat vissza kell másolnunk a GPU-ról a hostra

A GPU PCI-Express 16x nagy sávszélű busszal kapcsolódik a hosthoz. Ez a busz legfőképpen a DMA-n keresztüli adatforgalmat biztosítja a CPU és GPU memóriák között. Egyik process unit sem képes megcímezni a másik memóriáját. /DMA végzi/

Memória elérés:- Paged memory- Page-locked memory- Mapped memory- Write combining

Page 8: GPU architektúra

Tesla architektúra Tesla a termék neve, amelyet GPGPU (általános célú GPU) célra fejlesztett és

dobott piacra az nVIDIA. Ez az igazi első CUDA-kompatibilis architektúra. A nagy fejlődés az architektúrában: Thread Processing Clusters (TPC) Mindegyik TPC közvetlen eléri a DRAM vezérlőt (crossbar hálózat). A

memória fel van osztva 8 vezérlőre (Core). A memória a GPU chipjén kívül található. Mindegyik TPC-nek van 2-3 stream processzora. (Kép következő dián)

Page 9: GPU architektúra

Pár szó az adatforgalomról:

CPU-MEMÓRIA: 25GB/s GPU-MEMÓRIÁJA:

77GB/s CPU-GPU: 8GB/s DMA-n

keresztül Tehát a memória elérés a

GPU-nál 3-szor gyorsabb mint a CPU-nál, azóta ez többszörösére nőtt.

Ezen kívül Core-oknak van megosztott memóriájuk, mindegyik rendelkezik saját Cach-el.

Tesla architektúra

Page 10: GPU architektúra

Fermi architektúraLegelső olyan GPU architektúra, melyet kifejezetten a

szuperszámítások elvégzésére terveztek.512 vagy annál több CUDA Core a legújabb modelleknél

Page 11: GPU architektúra

768 KB teljesen koherens L2 Cache minden egyes SM-hoz. Ez az új Cache úgy viselkedik, mint a CPU L2 Cache. Eléggé jelentős változás történik ezel.Nem a grafikai számításokat gyorsítja fel, hanem a DRAM hozzáférést.

A Teslánál említett TPC eltűnt

CC 2.x 2 másoló motorja van

Fermi architektúra

Page 12: GPU architektúra

Az ütemezők számán nem változtattak, maradt kettő (SM-enként), de ezekhez egy helyett immár kettő-kettő dispatch egység (menetirányító) kapcsolódik, tehát így egy helyett egyszerre két utasítást képesek feldolgozni, azaz lényegében szuperskalár működésről beszélhetünk. A Fermi TLP alapú működése (Thread Level Parallelism), vagyis a szálszintű párhuzamos feldolgozás a GF104-ben kiegészült az ILP-vel (Instruction Level Parallelism), azaz az utasításszintű párhuzamos feldolgozással.

Fermi architektúra

Page 13: GPU architektúra

Software oldal: CUDA egy kiterjesztett változata a C nyelv GPU programozási

ágának A programozási modell legfőképpen az nVIDIA grafikus kártyák

architektúrájával párosult. Példa 102 szál szétosztására:

<<<1, 102>>>, <<<2, 51>>>, <<<3, 34>>>, <<<6, 17>>> tehát: <<<x, ⌈size/x⌉>>>Az ajánlott szálszám az, ha osztható 32-vel maradék nélkül. Warp végett. Sokkal gyorsabban kezeli a GPU

Thread - SzálWarp – 32 szálból álló kötegBlock – ezek tartalmazzák aszálakat : CC1.x – 512, CC2.x – 1024, CC3.x - ? /future /Grid – rács, mely a blokkokattartalmazza : architektúra-függőa mérete

Page 14: GPU architektúra

Az egységek memóriához való hozzáférése

Page 15: GPU architektúra

Köszönöm a figyelmet!