gpgpucg.elte.hu/~gpgpu/opengl/gpgpu - nvidia.pdf · nvidia gf100 - fermi (2009) az nvidia 2009-ben...
TRANSCRIPT
![Page 1: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/1.jpg)
GPGPUArchitektúra esettanulmány
![Page 2: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/2.jpg)
GeForce 7800 (2006)
![Page 3: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/3.jpg)
GeForce 7800● Rengeteg erőforrást fordítottak arra, hogy a throughput-ot maximalizálják
○ Azaz a különböző típusú feldolgozóegységek (vertex és fragment árnyalók) mindig dolgozzanak
● Ez pedig sok bottleneck-et hozott magával● Ezért az NVIDIA (is) egységesítette az architektúrát
![Page 4: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/4.jpg)
GeForce 8800 (2008 - Tesla)
![Page 5: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/5.jpg)
GeForce 8800
processingelement
![Page 6: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/6.jpg)
GeForce 8800
shader core
![Page 7: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/7.jpg)
GeForce 8800● Processing element
○ egyetlen feldolgozó egység○ 128 van belőle
● Shader core○ 16 processing element egysége○ egy shader core kap meg egy feladatot (“<X> fragment shader futtatása”)
● Egyúttal megjelent a CUDA is
![Page 8: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/8.jpg)
Fermi
![Page 9: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/9.jpg)
NVIDIA GF100 - Fermi (2009) ● Az NVIDIA 2009-ben debütáló architektúrája● Az előző generáció (GeForce 8) vezette be az egységesített architektúrát
○ azaz innentől kezdve az NVIDIA GPU-knál is egységesített stream processzorok voltak
○ előtte dedikált processzorok a különböző feladatokra (vertex és fragment programok futtatására)
● A Fermi már DirectX11 kompatibilis volt○ új kihívás például a tessellation shaderek támogatása (ez több, mint szteroid-kezelt geometry
shader: utóbbinak sosem volt célja a nagymértékű geometriai generálása)
● A Fermi-nél a hangsúly a grafikus alkalmazások gyorsításán volt
![Page 10: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/10.jpg)
Fermi architektúra● Főbb építőelemei:
○ GPC (Graphics Processing Cluster): grafikus feldolgozóegységek skálázható méretű tömbje
○ SM (Streaming Multiprocessor): valahány streamprocesszor (“GPU mag”, most: CUDA mag) csoportja.
○ CUDA mag: konkrét végrehajtó egység. Minden SM-ben 32 van. Egységesített
feldolgozóegység - ugyanúgy képes vertex, geometry, fragment és compute kernelek (‘shaderek’) futtatására
● Konkrétan a GF100-nál (a GeForce 480-ban)○ 4 darab GPC○ mindegyikben 4 SM (azaz összesen 16 SM)○ 6 memóriavezérlő
● A CPU-hoz PCIe-n keresztül csatlakozott
![Page 11: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/11.jpg)
CUDA mag● FP: IEEE 754-2008, FMA● INT: bool, shift, move, ...
![Page 12: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/12.jpg)
FMA
![Page 13: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/13.jpg)
SM
![Page 14: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/14.jpg)
SM● 32 CUDA mag egysége● 4 special function unit:
○ transzcendens függvények kiértékelésére, ○ grafikus szerelőszalag interpolációs lépéseit is ők végzik,○ egy órajel alatt egy szál egy utasítását hajtják végre => egy warp feldolgozása 8 órajel
● Két warpot tud egyszerre párhuzamosan feldolgozni (2x32 szál)● A dual warp scheduler kiválaszt kettő warp-ot és mindkettőből 1 utasítást
elküld (ha lehet - Fermin-n double-t pl. nem lehetett)○ 16 magnak, vagy○ 16 L/S egységnek, vagy○ 4 SFU-nak
![Page 15: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/15.jpg)
SM● Két végrehajtási blokkra (execution block) van osztva, 16-16 maggal● Minden órajelben
○ 32 utasítást adunk ki a végrehajtási blokkoknak (1 vagy 2 warpból)
● 2 órajel kell egy warp 32 utasításának lefuttatásához (L/S-nél is)● 8 órajel alatt értékelődik ki 32 SFU utasítás
![Page 16: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/16.jpg)
SM ütemezés
![Page 17: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/17.jpg)
SM● Minden SM-ben 4 textúrázó egység (TU) van
○ egy TU órajelenként 4 textúra mintát tud fetch-cselni○ ezeket szűrve is át tudja adni
● Cache a textúrázónak● Minden SM-hez L1 cache● Igazából: minden SM-hez tartozik 64KB mem● Ez kétféleképpen is beállítható:
○ 16KB L1 + 48KB shared○ 48KB L1 + 16KB shared
● Renderingnél 16KB L1-es konfig megy
![Page 18: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/18.jpg)
L2 cache● 768KB, ami közös az összes SM-mel● Írható, olvasható, koherens memória
![Page 19: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/19.jpg)
![Page 20: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/20.jpg)
Fermi működés● Host interface: a CPU parancsokat olvassa● GigaThread:
○ a kért adatokat betölti a rendszermemóriából a framebufferhez○ a futtatandó szállakat blokkokra osztja és hozzárendeli SM-ekhez○ ezeket a szálakat aztán az SM-ek belső ütemezői osztják el
● SM:○ a hozzá rendelt szállakat 32-es csoportokban (warp-okban) futtatja a CUDA magjain
![Page 21: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/21.jpg)
PolyMorph Engine● Lényegében a grafikus szerelőszalag primitív feldolgozásának lépéseit vezérli● 5 lépéses pipeline● Az eredményül előálló primitíveket a raszterizáló engine-nek adja át
![Page 22: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/22.jpg)
Raster Engine● 4 Raster Engine működik párhuzamosan (GPC-nként 1 darab)● 3 lépéses pipeline● Az Edge Setup a háromszögek oldalainak egyenleteit határozza meg (és
ezek végzik a backface culling-ot is)● Órajelenként 8 pixelt ad ki minden Raster Engine● A Z-cull nem pixel szinten, hanem tile alapon működik. Ha a tile minden pixele
elbukja a Z-tesztet, akkor eldobja az egész tile-t.
![Page 23: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/23.jpg)
Kepler
![Page 24: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/24.jpg)
Kepler (2012)● A Fermi utódja (GeForce 680)● Teljesítménynövelés (főleg dupla pontosságnál)● A fogyasztás is szempont már (új varázsszó: “performance per watt”)
![Page 25: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/25.jpg)
Kepler felépítés● 4 GPC● 8 új SMX (újgenerációs SM)● 4 memóriavezérlő
![Page 26: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/26.jpg)
SMX● 192 egyszeres pontosságú CUDA mag, FMA-val● 32 SFU● A magok GPU órajelen futnak● Az SMX most már egyidőben 4 warp-ot tud ütemezni és végrehajtani● Maga az ütemező is változott● Egy szál most már akár 255 regisztert is elér
![Page 27: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/27.jpg)
Memória● A Fermihez hasonlóan konfigurálható 64KB-s memória per SMX● +48KB-s read-only cache● 1536KB L2 cache (amit minden SMX lát)
![Page 28: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/28.jpg)
![Page 29: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/29.jpg)
![Page 30: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/30.jpg)
![Page 31: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/31.jpg)
Maxwell
![Page 32: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/32.jpg)
Maxwell (2014)● Még jobb teljesítmény/fogyasztás arány volt a cél (performance per watt)● Két generáció (GeForce 750, 8xx, illetve GeForce 9xx)● Felépítés:
○ 4 darab GPC○ 16 darab Maxwell SM (SMM) - 4 darab GPC-nként○ 4 memóriavezérlő
● Érdekes változtatások:○ memória sín: 192 bitről 128-ra○ SMM-ben CUDA magok száma: 192-ről 128-ra○ további egyszerűsítések
![Page 33: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/33.jpg)
SMM● 128 CUDA mag
○ 32-es egységekben○ Minden 32-es egység dedikált ütemező erőforrással és utasításpufferrel rendelkezik
● 1 PolyMorph Engine● 8 textúrázó egység● Felépítés:
○ egyszerűsítések, hogy kevesebb vezérlés kelljen
● Memória kiosztás revamp:○ L1 cache megosztva a textúra cache-sel○ 96KB dedikált osztott memória○ Az L2 cache 2048 KB
![Page 34: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/34.jpg)
SMM● 4 darab warp scheduler:● Minden warp scheduler
○ két utasítást tud egyszerre futtatni órajelenként
○ adott 32 CUDA maggal dolgozik (korábban: közös kezelésben voltak a magok, kellett plusz hozzárendelés a warp schedulerek és a magok között)
○ 8 L/S egység○ 8 SFU egység
![Page 35: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/35.jpg)
![Page 36: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/36.jpg)
Pascal
![Page 37: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/37.jpg)
Pascal (2016)● Számítási teljesítmény növelése (deep learning)
○ 5.3 TFLOPS FP64-re (~double), 10.6 TFLOPS FP32-re (~float), 21.2 TFLOPS FP16-ra (~half)
● NVLink nagysebességű és sávszélességű összeköttetésekhez● Módosított memória-architektúra
![Page 38: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/38.jpg)
Pascal● Az NVLink-et GPU-GPU adatátivelhez használják: 160 GByte/sec-es
kétirányú sávszélességet ad
![Page 39: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/39.jpg)
High Bandwidth Memory (HBM)● A munkaállomásokba szánt Tesla P100-ban● A HBM stack-elt memóriaelrendezés● Lényegében több rétegnyi memórialapkát helyeznek egymásra, esetleg a
legalsó szinten egy memóriavezérlővel irányítva egy-egy ilyen tornyot● A HBM2-ben akár 8 réteg is lehet● Akár ECC memória (!)● Még az AMD kezdte el fejleszteni a HBM1-et 2008-ban
![Page 40: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/40.jpg)
GDDR5X Memory● A GeForce GTX 1080-ban●
![Page 41: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/41.jpg)
Memóriatömörítés● A GPU-n az adatokat veszteségmentes tömörített formában tárolja a hw● A textúráknál egy fontos séma a delta color compression (DCC):
○ A DCC-ben a pixeleket blokkokban kezelik○ Minden blokkhoz tartozik egy referenciaszín○ A blokkbéli pixelek színét pedig az ettől a referenciaszíntől vett eltéréssel kódolják
● Pascal-ban új módok is vannak ehhez
![Page 42: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/42.jpg)
Load balancing● Bizonyos feladatok nem tudják lefoglalni a teljes GPU-t● Ekkor akár kettő vagy több ilyen munka is futhatna a GPU-n (például a fizikai
számítások a rendering-gel)● A Maxwell előre felosztotta a fizikai hardvert egy részhalmazra ami grafikát,
egy másikat pedig amit általános számításokat futtatott● A Pascal-ban behozták ennek a dinamikus változatát
![Page 43: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/43.jpg)
Simultaneous Multi-Projection Engine
![Page 44: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/44.jpg)
Simultaneous Multi-Projection Engine
![Page 45: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/45.jpg)
Pascal● Egyetlen, közös virtuális memóriatér a CPU-nak és a GPU-nak (legalábbis
512 TB-ig)● Compute preemption most már gépi műveletek szintjén működnek, nem
Kepler/Maxwell szintű threadblock-okban
![Page 46: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/46.jpg)
Pascal● Egy teljes Pascal-ban
○ 6 GPC○ 60 Pascal SM○ 30 TPC (mindegyik Texture Processing clusterben kettő SM)○ 8 darab 512 bites memóriavezérlő
● 1 GPC-ben:○ 10 SM
● 1 SM-ben:○ 64 CUDA mag○ 4 textúrázó egység
● Azaz összesen 3840 egyszeres pontosságú CUDA mag és 240 textúrázóegység
![Page 47: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/47.jpg)
![Page 48: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/48.jpg)
![Page 49: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/49.jpg)
![Page 50: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/50.jpg)
![Page 51: GPGPUcg.elte.hu/~gpgpu/opengl/GPGPU - NVIDIA.pdf · NVIDIA GF100 - Fermi (2009) Az NVIDIA 2009-ben debütáló architektúrája Az előző generáció (GeForce 8) vezette be az egységesített](https://reader033.vdocuments.net/reader033/viewer/2022052802/5f1abd990323462506145703/html5/thumbnails/51.jpg)
Források● Fermi whitepaper:
○ http://www.nvidia.com/content/pdf/fermi_white_papers/p.glaskowsky_nvidia's_fermi-the_first_complete_gpu_architecture.pdf
○ http://www.nvidia.com/content/pdf/fermi_white_papers/nvidia_fermi_compute_architecture_whitepaper.pdf ● Kepler whitepaper: https://www.nvidia.com/content/PDF/kepler/NVIDIA-Kepler-GK110-Architecture-Whitepaper.pdf ● Maxwell whitepaper:
○ http://international.download.nvidia.com/geforce-com/international/pdfs/GeForce-GTX-750-Ti-Whitepaper.pdf ○ http://international.download.nvidia.com/geforce-com/international/pdfs/GeForce_GTX_980_Whitepaper_FIN
AL.PDF ● Pascal whitepaper:
○ http://international.download.nvidia.com/geforce-com/international/pdfs/GeForce_GTX_1080_Whitepaper_FINAL.pdf
○ https://images.nvidia.com/content/pdf/tesla/whitepaper/pascal-architecture-whitepaper.pdf