1 / 15

GPU architektúra

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.

jewel
Download Presentation

GPU architektúra

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. GPU architektúra ComputeUnifiedDeviceArchitecture Készítette: Páros Zoltán

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

  3. 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 (SingleInstuctionMultipleThread) architektúrájának köszönhetően egyetlen utasítást többszálontud végrehajtani. Ez azt jelenti, hogy ugyanazt a az utasítást több 10.000 szálon tudja végrehajtani.

  4. CPU vs. GPU • GPU számítási kapacitásának fejlődése a CPU-hoz mérten 2009-2010

  5. 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 (rasteroperation) 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 vertexesré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.

  6. GPU programozás kialakulása 2007-ben jelennek meg az első, felhasználó számára is programozható GPU-k ComputeCapability /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 10 CC 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 átdolgoztak CC 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

  7. 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-raahostról (CPU)- a GPU-ra írt programmal az adatokon végrehajtjuk a műveleteket- az adatokat vissza kell másolnunk a GPU-rólahostra • 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:- Pagedmemory- Page-lockedmemory- Mappedmemory- Writecombining

  8. 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: ThreadProcessingClusters (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)

  9. Tesla 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.

  10. Fermi architektúra • Legelső 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

  11. Fermi 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

  12. Fermi 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 (ThreadLevelParallelism), vagyis a szálszintű párhuzamos feldolgozás a GF104-ben kiegészült az ILP-vel (InstructionLevelParallelism), azaz az utasításszintű párhuzamos feldolgozással.

  13. 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öteg Block – ezek tartalmazzák a szálakat : CC1.x – 512, CC2.x – 1024, CC3.x - ? /future/ Grid – rács, mely a blokkokat tartalmazza : architektúra-függő a mérete

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

  15. Köszönöm a figyelmet!

More Related