Hogyan Tervezzünk GPU Chipet
Chapter 1 Introduction to Gpu Chip Design

1. fejezet: Bevezetés a GPU-chip tervezésbe

Mik a GPU-k és miben különböznek a CPU-któl

A Grafikus Feldolgozó Egységek (GPU-k) olyan speciális elektronikus áramkörök, amelyek arra lettek tervezve, hogy gyorsan manipulálják és módosítsák a memóriát, ezáltal felgyorsítva a képek létrehozását egy képpufferben, amely egy megjelenítő eszközre van szánva. A GPU-kat eredetileg arra fejlesztették ki, hogy átvegyék a 2D-s és 3D-s grafikai renderelést a CPU-tól, lehetővé téve sokkal jobb teljesítményt a grafika-intenzív alkalmazások, mint a videojátékok számára.

Míg a CPU-k általános célú számításokra vannak tervezve, és bonyolult vezérlési logikával rendelkeznek, hogy támogassanak egy széles körű programkészletet, addig a GPU-k egy erősen párhuzamos architektúrával rendelkeznek, amely ezrével kisebb, hatékonyabb magokból áll, amelyek arra lettek tervezve, hogy több feladatot kezeljenek egyidejűleg. Ez ideálissá teszi őket a grafikai renderelésre, ahol nagy adattömbök dolgozhatók fel párhuzamosan.

A CPU-k és GPU-k közötti kulcsfontosságú architektúrális különbségek a következők:

  • Magok száma: A GPU-knak sok kis magja van (százak vagy ezrek), míg a CPU-knak néhány nagy, erős magja (2-64).
  • Gyorsítótár hierarchia: A CPU-knak nagy gyorsítótáraik vannak a késleltetés csökkentése érdekében, míg a GPU-k kisebb gyorsítótárakkal rendelkeznek, és inkább a nagy sávszélességre támaszkodnak a késleltetés kompenzálására.
  • Vezérlési logika: A CPU-k bonyolult elágazás-előrejelzési és rendelkezés-átütemezési képességekkel rendelkeznek. A GPU-k sokkal egyszerűbb vezérlési logikával bírnak.
  • Utasításkészlet: A CPU-k széles körű utasításkészlettel rendelkeznek az általános célú számításokhoz. A GPU-k utasításkészlete korlátozottabb és a grafikai feladatokra van optimalizálva.
  • Memória sávszélesség: A GPU-knak nagyon nagy memória sávszélességük van (akár 1 TB/s), hogy táplálja a sok magjukat. A CPU-knak alacsonyabb a sávszélességük (50-100 GB/s).
  • Lebegőpontos teljesítmény: A GPU-k sokkal nagyobb lebegőpontos teljesítményre képesek, ami alkalmassá teszi őket a nagy teljesítményű számítástechnika (HPC) és mesterséges intelligencia (AI) feladatokra.

Összefoglalva, a GPU-k erősen párhuzamos architektúrája lehetővé teszi, hogy kiválóan teljesítsenek olyan feladatokban, amelyek nagy adattömbök párhuzamos feldolgozását igénylik, míg a CPU-k kifinomultabb vezérlési logikája alkalmassá teszi őket az általános célú számításokra.Itt a magyar fordítás a megadott markdown fájlhoz. A kódnál nem fordítottam le a kódot, csak a megjegyzéseket.

A GPU-k kulcsfontosságú alkalmazásai és jelentősége

Az elmúlt két évtizedben a GPU-k az egyik legfontosabb számítástechnikai technológiává váltak, mivel erősen párhuzamos felépítésük révén hatékonyabbak, mint az általános célú CPU-k a nagy adathalmazokat párhuzamosan feldolgozó algoritmusok esetén. A GPU-technológia gyors fejlődését hajtó néhány kulcsfontosságú alkalmazási terület:

Számítógépes grafika és játékok

A GPU-k leggyakoribb felhasználása a képkockák előállításának gyorsítása a kijelzőeszközre történő kimeneti pufferben. A GPU-k kiválóan teljesítenek a számítógépes grafika és képfeldolgozás terén, és erősen párhuzamos felépítésük révén hatékonyabbak, mint az általános célú CPU-k azon algoritmusok esetén, ahol nagy adathalmazokat dolgoznak fel párhuzamosan. Szabványos alkatrészei a modern játékkonzoloknak és játékos PC-knek.

Nagy teljesítményű számítástechnika (HPC)

A GPU-k párhuzamos feldolgozási képességei alkalmassá teszik őket a nagy adathalmazokat párhuzamos algoritmusokkal feldolgozó tudományos számítási alkalmazásokra. A GPU-kat széles körben alkalmazzák szuperszámítógépekben és HPC-fürtökben, ahol a CPU-kkal együttműködve gyorsítják a rendkívül párhuzamos terheléseket, mint például az időjárás-előrejelzést, molekuláris dinamikai szimulációkat és szeizmikus elemzéseket.

Mesterséges intelligencia és gépi tanulás

A GPU-k párhuzamos feldolgozási teljesítménye kulcsfontosságú szerepet játszott a mélytanulás és az AI gyors fejlődésében az elmúlt években. A komplex mélyneurális hálózatok betanítása hatalmas számítási teljesítményt igényel, és a GPU-k váltak a választott platformmá a nagy léptékű AI-modellek betanítására, mivel hatékonyan tudják végrehajtani a mélytanulási algoritmusok szívét képező mátrixszorzási műveleteket. Minden jelentős felhő alapú AI-platform és a mesterséges intelligenciára használt szuperszámítógépek GPU-kat használnak.A kriptovaluta-bányászat során a GPU-k széles körben használatosak, mivel párhuzamos feldolgozási képességeik jól alkalmasak a proof-of-work alapú kriptovalutákban, mint például a Bitcoin, használt kriptográfiai hash-algoritmusokra. A 2017-es kriptovaluta-boom idején a AMD és Nvidia csúcsmodelljei iránt rendkívül nagy volt a kereslet.

Gyorsított számítás és peremhálózati mesterséges intelligencia

A Moore-törvény lassulásával egy jelentős trend figyelhető meg a gyorsított, heterogén számítástechnika felé, ahol a CPU-k mellett specializált gyorsítóchipek, mint a GPU-k, gyorsítják fel az igényes számítási feladatokat. A GPU-kat arra is használják, hogy mesterséges intelligencia képességeket vigyenek a perifériás eszközökbe, mint okostelefonok, okos hangszórók és autóipari rendszerek. A mobilos SoC-k ma már gyakran tartalmaznak integrált GPU-kat, amelyeket mind grafikai, mind mesterséges intelligencia feladatok gyorsítására használnak.

A GPU-k masszív párhuzamossága és nagy memória-sávszélessége miatt az egyik legfontosabb számítási platformmá váltak napjainkban, alkalmazásaik messze túlmutatnak a számítógépes grafikán. Ahogy elérjük az általános célú processzorok teljesítményének határait, a specializált chipek, mint a GPU-k, FPGA-k és AI-gyorsítók egyre fontosabb számítási motorjai lesznek a jövőnek.

A számítási gyorsítók tájképe

Mivel az általános célú CPU-k teljesítménynövekedése az utóbbi években lelassult, egyre inkább előtérbe kerülnek a specializált gyorsítóchipek, amelyek képesek felgyorsítani bizonyos számítási feladatokat. A GPU-k az egyik legkiemelkedőbb példái ezeknek a gyorsítóknak, de több más fontos kategória is létezik:

Mezőprogramozható kapu-tömbök (FPGA-k)

Az FPGA-k olyan félvezető eszközök, amelyek egy konfigurálható logikai blokkok (CLB) mátrixából és programozható összeköttetésekből állnak. Az FPGA-k újraprogramozhatók a gyártás után, hogy megfeleljenek az adott alkalmazás vagy funkcionalitás követelményeinek, így rugalmasabb alternatívát kínálnak az ASIC-okhoz képest. Gyakran használják őket az űrkutatásban és a védelemben, ASIC-prototípusok készítésében, orvosi képalkotásbanItt van a magyar fordítás a megadott markdown fájlhoz. A kódban nem fordítottam le a kódot, csak a megjegyzéseket.

Alkalmazás-specifikus integrált áramkörök (ASIC-ok)

Az ASIC-ok olyan integrált áramkörök, amelyeket egy adott felhasználásra terveztek, nem pedig általános célú használatra, mint a CPU-k. A modern ASIC-ok gyakran tartalmaznak teljes 32 bites vagy 64 bites processzorokat, memória blokkokat, beleértve a ROM-ot, RAM-ot, EEPROM-ot, flash memóriát és más nagy építőelemeket. Az ASIC-okat gyakran használják bitcoin bányászatban, AI gyorsítókban, 5G vezeték nélküli kommunikációban és IoT eszközökben.

AI gyorsítók

Az AI gyorsítók olyan speciális chipek, amelyeket az AI terhelések, különösen a neurális hálózatok betanítása és következtetése felgyorsítására terveztek. Példák erre a Google Tensor Processing Unit (TPU), az Intel Nervana Neural Network Processor (NNP) és néhány startup, amely AI chipeket épít a semmiből. Ezek a chipek csökkentett pontosságú matematikát, hatékony mátrixszorzási áramköröket és a számítás és a memória szoros integrációját használják, hogy sokkal jobb teljesítményt érjenek el watt-ra vetítve, mint a GPU-k vagy a CPU-k az AI terhelések esetén.

Képfeldolgozó egységek (VPU-k)

A VPU-k olyan speciális chipek, amelyeket a számítógépes látás és a képfeldolgozási terhelések gyorsítására terveztek. Gyakran tartalmaznak dedikált hardvert olyan feladatokhoz, mint a képjel-feldolgozás, a sztereó látás és a CNN-alapú objektumfelismerés. A VPU-kat gyakran használják olyan alkalmazásokban, mint az autós ADAS, a drónok, az AR/VR fejhallgatók, az okos kamerák és más perifériás eszközök, amelyek alacsony késleltetésű vizuális feldolgozást igényelnek.

Neuromorf és kvantum chipek

Ha tovább tekintünk, a neuromorf chipek megpróbálják utánozni az agy architektúráját, hogy gyors és energiahatékony neurális hálózati teljesítményt nyújtsanak, míg a kvantum chipek a kvantummechanikai hatásokat használják fel arra, hogy bizonyos problémákat gyorsabban oldjanak meg, mint a klasszikus számítógépek. Ezek még mindig feltörekvő kutatási területek, de a jövőben fontos gyorsítók lehetnek.

Az általános trend a számítástechnikában a területspecifikus architektúrák és a különféle gyorsítók általános célú CPU-k mellett történő integrációja, hogy felgyorsítsák aItt a magyar fordítás a megadott markdown fájlhoz. A kódhoz tartozó megjegyzéseket fordítottam le, a kódot nem.

Fontos számítási feladatok. A GPU-k úttörői voltak ennek a gyorsított számítási modellnek, és továbbra is az egyik legfontosabb gyorsítótípus, de számos más gyorsító is egyre fontosabbá válik sok alkalmazási területen.

GPU hardver alapjai

Egy modern GPU több kulcsfontosságú hardverkomponensből áll:

Streaming Multiprocesszorok (SM-ek)

Az SM a NVIDIA GPU-architektúra alapvető építőeleme. Minden SM egy sor CUDA-magot (tipikusan 64-től 128-ig) tartalmaz, amelyek vezérlési logikát és utasítás-gyorsítótárat osztanak meg. Minden CUDA-mag egy teljesen csővezetékes egész aritmetikai logikai egységgel (ALU) és lebegőpontos egységgel (FPU) rendelkezik. Általában egy GPU-chip 16-tól 128-ig terjedő SM-eket tartalmaz, ami ezernyi CUDA-magot eredményez.

Textúra/L1 gyorsítótár

Minden SM-nek saját textúra-gyorsítótára és L1 gyorsítótára van a teljesítmény javítása és a memóriahasználat csökkentése érdekében. A textúra-gyorsítótár a térbeli lokalitás optimalizálására szolgál, és különösen hatékony a grafikai számítási feladatokhoz. Az L1 gyorsítótár kezeli a memóriaműveleteket (betöltés, tárolás) és gyors adathozzáférést biztosít alacsony késleltetéssel.

Megosztott memória

A megosztott memória egy gyors, chipre integrált memória, amely az SM-en belüli CUDA-magok között van megosztva. Programozható gyorsítótárként használható, lehetővé téve a gyakran újrafelhasznált adatok nagyobb sávszélességű és alacsonyabb késleltetésű elérését. A megosztott memória egyenlő méretű memóriamodulokra (bankokra) van osztva, amelyeket a magok egyidejűleg érhetnek el.

Regiszterfájl

Minden SM-nek nagy regiszterfájlja van, amely alacsony késleltetésű tárolást biztosít a műveleti operandusoknak. A regiszterfájl a rezidens szálak között van felosztva egy SM-en, így minden szál saját dedikált regiszterkészlettel rendelkezik. Egy regiszter elérése általában nulla extra órajel-ciklust vesz igénybe utasításonként, de késések léphetnek fel a regiszter olvasás utáni írás függőségek és a regiszter memória bank-ütközések miatt.

Warp ütemező

A warp ütemező felel a warpokon való gazdálkodásért és ütemezésért egy SM-en. A warp 32 szálból álló csoport, amely egyidejűleg fut a CUDA-magokon.A warp ütemező kiválasztja a végrehajtásra kész warpoket, és elküldi őket a magokhoz, ami magas kihasználtságot és késleltetés-elrejtést tesz lehetővé.

Összekapcsoló hálózat

Az összekapcsoló hálózat összeköti az SM-eket a GPU megosztott L2 gyorsítótárával és a memória vezérlőkkel. Általában keresztkapcsoló kapcsolóként valósítják meg, ami lehetővé teszi, hogy több SM egyidejűleg férjen hozzá az L2 gyorsítótárhoz és a DRAM-hoz.

Memória vezérlők

A memória vezérlők kezelik a GPU DRAM-jához intézett összes olvasási és írási kérést. Felelősek a DRAM-hozzáférési minták optimalizálásáért a sávszélesség-kihasználtság maximalizálása érdekében. A modern GPU-k nagyon széles DRAM-felületekkel (256-bit - 4096-bit) rendelkeznek, és támogatják a nagy sávszélességű memória-technológiákat, mint a GDDR6 és a HBM2.

RT magok és Tensor magok

A modern NVIDIA GPU-k speciális hardvermodulokat is tartalmaznak a sugárkövetés (RT magok) és az AI/mélytanulás (Tensor magok) gyorsítására. Az RT magok gyorsítják a határoló térfogat hierarchia (BVH) bejárását és a sugár-háromszög metszésvizsgálatokat, míg a Tensor magok nagy átviteli sebességű mátrix-szorzást és konvolúciós műveleteket biztosítanak.

Ezek a hardverkomponensek együttműködve teszik lehetővé, hogy a GPU-k rendkívül nagy számítási teljesítményt és memória-sávszélességet érjenek el, ami alkalmassá teszi őket a grafika, a nagy teljesítményű számítás és az AI területén található párhuzamos terhelések kezelésére. A modern GPU-k erősen párhuzamos architektúrája és speciális hardvermoduljai lehetővé teszik, hogy bizonyos terhelések esetén teljesítményben nagyságrendekkel felülmúlják az általános célú CPU-kat.

A GPU-k rövid története

A GPU-k története a 3D grafikai gyorsítás korai napjaira, az 1990-es évekre nyúlik vissza:

  • 1990-es évek: A 3dfx Voodoo és az NVIDIA RIVA TNT korai 3D gyorsítók az 1990-es évek közepén kezdtek megjelenni, hogy tehermentesítsék a CPU-t a 3D grafikai renderelés alól. Ezek rögzített függvényű eszközök voltak, amelyek egy adott grafikai API-ra voltak optimalizálva, és nem rendelkeztek programozhatósággal.

  • 1999: Az NVIDIA bemutatta a GeForce 256-ot, az első GPU-t, amely hardveres transzformációt és világítást (T&L) valósított meg a standard 3D renderelés mellett.Itt a magyar fordítás a megadott markdown fájlhoz. A kódban nem fordítottam le a kommenteket.

  • 2001: Az NVIDIA piacra dobta a GeForce 3-at, amely bevezette a programozható csúcs- és pixelárnyalást, megnyitva az utat a realisztikusabb és dinamikusabb vizuális effektusok felé. Ez jelentette a kezdetét az áttérésnek a rögzített funkcionalitású grafikai csővezetékekről a programozható csővezetékekre.

  • 2006: Az NVIDIA GeForce 8800 GTX megjelenése fordulópontot jelentett, mivel ez volt az első GPU, amely támogatta a CUDA programozási modellt, lehetővé téve a fejlesztők számára, hogy a GPU-t általános célú számításokra (GPGPU) használják a grafika mellett. 128 CUDA magot tartalmazott, és több mint 500 GFLOPS teljesítményt ért el.

  • 2008: Az Apple, az AMD, az Intel és az NVIDIA létrehozta az OpenCL munkacsoportot, hogy kifejlesszenek egy nyílt szabványt a heterogén rendszerek párhuzamos programozására. Az OpenCL egy gyártótól független alternatívát nyújtott a CUDA-val szemben, bár a CUDA maradt a legszélesebb körben használt GPGPU platform.

  • 2010: Az NVIDIA bevezette a Fermi architektúrát, amely akár 512 CUDA magot tartalmazott, egységes L1/L2 gyorsítótár-hierarchiát, ECC memória-támogatást és jobb dupla pontosságú teljesítményt kínált. Ez lehetővé tette, hogy a GPU-k szélesebb körben alkalmazhatók legyenek a HPC és a tudományos számítások területén.

  • 2016: Az NVIDIA bemutatta a Pascal architektúrát a Tesla P100-zal, amely nagy sávszélességű HBM2 memóriát, akár 3584 CUDA magot és speciális FP16 magokat tartalmazott a mélytanuláshoz. A P100 több mint 10 TFLOPS teljesítményt tudott nyújtani, megerősítve a GPU-k szerepét az AI-tanítás platformjaként.

  • 2018: Az NVIDIA piacra dobta a Turing architektúrát, amely bevezette az RT Magokat a valós idejű sugárkövető rendereléshez és a Tensor Magokat a gyorsított AI-következtetéshez. A Turing jelentős mérföldkövet jelentett a GPU-architektúrában, mivel a GPU képességeit a raszterizáción és a GPGPU-n túl a fejlett renderelési technikákra és az AI-gyorsításra is kiterjesztette.

Következtetés

Az elmúlt két évtizedben a GPU-k a rögzített funkcionalitású grafikai gyorsítóktól a rendkívül programozható és sokoldalú eszközökké fejlődtek, amelyek a grafikai feldolgozástól a tudományos számításokon és a mélytanuláson át a valós idejű sugárkövető renderelésig terjedő széles körű alkalmazási lehetőségeket kínálnak.Itt a magyar fordítás a megadott markdown fájlhoz. A kódban nem fordítottam le a kódot, csak a megjegyzéseket.

Programozható, energiahatékony számítási motorok, amelyek kulcsfontosságú szerepet játszanak a legkülönbözőbb alkalmazásokban a játékoktól és a vizualizációtól a nagy teljesítményű számításokig és a mesterséges intelligenciáig. A transzformációt lehetővé tevő kulcsfontosságú architektúrális innovációk a következők:

  • Programozható árnyékolás bevezetése az elágazás és a ciklus támogatásával
  • Egyesített árnyékoló architektúrák, amelyek lehetővé teszik, hogy ugyanazok a feldolgozó egységek különböző árnyékolási feladatokhoz legyenek használhatók
  • A CUDA és az OpenCL általános célú programozási modellek támogatásának hozzáadása
  • Az energiahatékonyság növelése a többszálúság kiterjedt használatával a memória-késleltetés elrejtése és az aritmetikai egységek kihasználtsága érdekében
  • A memóriasávszélesség folyamatos javulása és a nagy sávszélességű memória-technológiák, mint a GDDR6 és a HBM2 bevezetése
  • Rögzített funkciójú egységek beépítése a sugárkövető és a tenzor-feldolgozás felgyorsítására a renderelés és az AI-terhelések felgyorsítása érdekében

A jövőbe tekintve világos, hogy a specializáció és a heterogén számítástechnika továbbra is kulcsfontosságú hajtóerők lesznek a teljesítmény és a hatékonyság javításában. A GPU-k jól pozícionáltak, hogy az élvonalban maradjanak ezekben a trendekben, örökségük az energiahatékony párhuzamos feldolgozás és a képességük, hogy beépítsék a területspecifikus funkcionalitást, miközben megőrzik az általános célú programozhatóságot. A chiplet-alapú tervezési és a fejlett csomagolási technológiák lehetővé teszik, hogy a GPU-k még magasabb teljesítményszintekre skálázódjanak és még több funkcionalitást integrálhassanak az idő múlásával.

Ugyanakkor a GPU-gyorsítás alkalmazhatósága tovább növekszik, ahogy egyre több tudományos számítási, adatelemzési és gépi tanulási terhelés mutatja azt a finom szemcsézettségű párhuzamosságot, amiben a GPU-k kiválóak. Képességükkel, hogy felgyorsítsák ezeket és más feltörekvő alkalmazásokat, a GPU-k egyre fontosabb szerepet játszanak a jövőbeli számítástechnikai fejlesztések hajtásában. Architektúrájuk megértése kulcsfontosságú a teljes potenciáljuk felszabadításához.