Mi a különbség a CUDA-magok és a Tensor-magok között? (Magyarázat) - Minden különbség
Tartalomjegyzék
A CUDA és a Tensor magok az Nvidia nevű cég által kifejlesztett termékek. Mi is az a CUDA mag és a Tensor mag? A CUDA a Compute Unified Device Architecture rövidítése. A CUDA magok jelen vannak a GPU-kban, az okostelefonokban, sőt, az Nvidia fejlesztői szerint még az autókban is.
A CUDA-magok egy párhuzamos számítási platform és alkalmazásprogramozási interfész (API), amely lehetővé teszi a szoftverek számára, hogy általános célú feldolgozásra használják a grafikus feldolgozóegységek (GPU-k) meghatározott típusait.
Míg a tenzormagokat, amelyeket szintén az Nvidia fejlesztett ki, szintén a GPU-kban használják. A tenzormagok lehetővé teszik a vegyes pontosságú számítást, dinamikusan adaptálva a számításokat az átviteli sebesség növelése érdekében, a pontosság fenntartása mellett.
Egyszerűen fogalmazva, ezek a magok a számítógépedben lévő GPU-k fontos részét képezik bizonyos számítások elvégzéséhez. A CUDA magok két szám szorzására és egy másik számhoz való hozzáadására szolgálnak.
Míg a Tensor core ugyanez, de 4×4 mátrixokkal. Ezek a számítások alapvetően gyorsabban renderelik a grafikát.
Mi a CUDA?
A Compute Unified Device Architecture, röviden CUDA az Nvidia által kifejlesztett, 2007. június 23-án kiadott párhuzamos számítási platform és alkalmazásprogramozási interfész (API).
Ez lehetővé teszi a szoftverek számára, hogy a grafikus feldolgozóegységek (GPU-k) meghatározott típusait általános célú feldolgozásra használják, ez a módszer a GPU-kon történő általános célú számítás (GPU) néven ismert.
A CUDA egy olyan szoftverréteg, amely közvetlen hozzáférést biztosít a GPU virtuális utasításkészletéhez és a párhuzamos számítási elemekhez a számítási kernelek végrehajtásához. A CUDA-t úgy fejlesztették ki, hogy különböző programozási nyelvekkel, többek között a C, C++ és Fortran nyelvekkel működjön együtt.
A különböző programozási nyelvekkel való munka képessége megkönnyíti a párhuzamos programozásban jártas szakemberek számára a GPU-erőforrások kihasználását, ha megkülönböztetjük a korábbi API-któl, például a Direct3D-től vagy az OpenGL-től, amelyekhez a grafikus programozásban fejlettebb készségekre lenne szükség.
A CUDA-val rendelkező GPU támogatja az olyan programozási keretrendszereket is, mint az OpenMP, OpenACC, OpenCL, valamint a HIP, amely képes az ilyen kódot CUDA-ra fordítani. A CUDA első neve a Compute Unified Device Architecture rövidítése volt. Az Nvidia azonban később elhagyta a közismert rövidítést.
Erős Nvidia grafikus kártya GTX 1080 Ti
További információk a CUDA alkalmazásról
A grafikus feldolgozó egység (GPU) speciális számítógépes processzorként megfelel a valós idejű, számításigényes 3D-s grafikus munkaterhelések igényeinek.
2012 körül a GPU-k fejlődtek, és nagymértékben párhuzamos, többmagos rendszerekké váltak, amelyek lehetővé tették a nagy blokkok hatékony adatfeldolgozását.
Hatalmas adatblokkok párhuzamos feldolgozásakor ez a kialakítás jobb, mint az általános célú központi feldolgozóegységek (CPU-k) az algoritmusok esetében, például:
- kriptográfiai hash függvények
- gépi tanulás
- molekuladinamikai szimulációk
- fizikai motorok
- rendezési algoritmusok
A CUDA architektúra felhasználása most és a jövőben
- 3D grafika gyorsított renderelése
- Videófájlformátumok gyorsított konverziója
- Gyorsított titkosítás, visszafejtés és tömörítés
- Bioinformatika, pl. NGS DNS-szekvenálás BarraCUDA
- Elosztott számítások, mint például a fehérjék natív konformációjának előrejelzése
- orvosi elemző szimulációk, például CT- és MRI-felvételeken alapuló virtuális valóság
- Fizikai szimulációk, különösen a folyadékdinamikában
- Neurális hálózatok képzése gépi tanulási problémákban
- Arcfelismerés
- Elosztott számítástechnikai projektek, mint például a [email protected] és más BOINC-ot használó projektek.
- Molekuláris dinamika
- Kriptovaluták bányászata
- Structure from motion (SfM) szoftver
Mi az a Tensor Core?
A Tensor Cores nevű speciális magok lehetővé teszik a vegyes pontosságú képzést. Ezeknek a speciális magoknak a kezdeti generációja ezt egy fuzionált szorzási-adalékolási algoritmussal teszi. Ez lehetővé teszi két 4 x 4 FP16 mátrix szorzását és összeadását egy 4 x 4 FP16 vagy FP32 mátrixhoz.
A végeredmény FP32 lesz, csak csekély pontosságveszteséggel, a vegyes pontosságú számítást így nevezik, még akkor is, ha a bemeneti mátrixok alacsony pontosságú FP16-osok lehetnek.
A gyakorlatban ez jelentősen felgyorsítja a számításokat, a modell végső hatékonyságát alig befolyásolva. Ezt a kapacitást a későbbi mikroarchitektúrák még kevésbé pontos számítógépes számreprezentációkra is kiterjesztették.
Az első generációt a Volta mikroarchitektúrával vezették be a V100-tól kezdve, minden egyes generációval több számítási pontosságú számítógépes formátum vált elérhetővé a számításokhoz az új GPU-mikroarchitektúrákkal.
A következő részben arról lesz szó, hogy a Tensor Cores kapacitása és funkcionalitása hogyan változott és javult az egyes mikroarchitektúra-generációkkal.
Egy Titan V által készített grafikusan renderelt kép
Hogyan működnek a tenzormagok?
Első generáció:
A Volta GPU mikroarchitektúra a Tensor magok első generációjához tartozott. Ezek a magok lehetővé tették a vegyes pontosságú és FP16 számformátumú képzést.
Ez bizonyos GPU-k esetében akár 12-szeres teraFLOP teljesítménynövekedést is eredményezhet. A csúcskategóriás V100 640 magja akár 5x nagyobb teljesítménysebességet biztosít az előző generációs Pascal GPU-khoz képest.
Második generáció:
A Turing GPU-k bevezetésével a Tensor Core-ok második generációja is megjelent. A korábban FP16-ra korlátozott, támogatott Tensor Core-pontok listája kiegészült az Int8, Int4 és Int1 pontossággal.
A vegyes pontosságú képzési eljárásoknak köszönhetően a GPU teljesítménye akár 32-szeresére nőtt a Pascal GPU-khoz képest.
Harmadik generáció:
Az Ampere GPU architektúrája a Volta és Turing mikroarchitektúrák korábbi fejlesztéseit bővíti az FP64, TF32 és bfloat16 pontosság támogatásával.
A mélytanulási képzési és következtetési tevékenységeket sokkal jobban felgyorsítják ezek az extra pontosságú formátumok. A TF32 formátum például az FP32-hez hasonlóan működik, miközben akár 20-szoros gyorsulást is garantál, anélkül, hogy bármilyen kódot módosítanánk.
Ezután mindössze néhány sornyi kóddal az automatikus vegyes pontosságú végrehajtás további 2x gyorsítja fel a képzést.
Az Ampere mikroarchitektúra további aspektusai a harmadik generációs NVLink, amely lehetővé teszi a villámgyors multi-GPU interakciókat, a harmadik generációs Ray Tracing magok és a ritka mátrixok matematikai specializációja. .
Negyedik generáció:
A Hopper mikroarchitektúrán alapuló negyedik generációs Tensor-magok jövőbeli kiadását tervezik. A negyedik generációs Tensor-magok a következő H100-ban.
Lásd még: Mi a különbség a "Taking" és a "Taken" között? (Az igei formák) - Minden különbségamely várhatóan 2022 márciusában jelenik meg, képes lesz az FP8-as pontosságú formátumok kezelésére, és az NVIDIA szerint a hatalmas nyelvi modelleket "az előző generációhoz képest elképesztő 30-szorosára gyorsítja".
Az RTX grafikus kártyát a grafika nagyon gyors renderelésére használják, mivel tenzormagokat tartalmaz.
A különbség a CUDA-magok és a Tensor-magok között
A tenzormagok jelenleg a Titan V-re és a Tesla V100-ra korlátozódnak. A két GPU 5120 CUDA-magjának maximális kapacitása GPU-órajelenként egy egyszeres pontosságú szorzási-akkumulációs művelet (például fp32-ben: x += y * z) (pl. a Tesla V100 PCIe frekvenciája 1,38Gz).
Minden egyes tenzormag 4×4 kis mátrixokkal dolgozik kis mátrixok esetén. Egy GPU-órajelenként minden tenzormag egy mátrixszorzási-akkumulációs műveletet tud elvégezni.
Lásd még: Mi a különbség a Sephora és az Ulta között? (Magyarázat) - Minden különbségKét 4×4 FP16-os mátrixot szoroz meg, és hozzáadja a 4×4-es FP32-es mátrixot, amely az akkumulátorban keletkezik (ez szintén egy fp32-es 4×4-es mátrix).
Mivel a bemeneti mátrixok fp16, míg a szorzási eredmények és az akkumulátor fp32, az algoritmust vegyes pontosságúnak nevezzük.
A helyes kifejezés valószínűleg csak "4×4 mátrix magok" lenne, de az NVIDIA marketingcsapata a "tenzormagok" kifejezést választotta.
Tenzormagok teljes magyarázata dióhéjban
GPU kártya | CUDA magok | VRAM |
---|---|---|
GeForce GTX 1660 Ti | 1536 | 6GB |
GeForce GTX 1660 Super | 1408 | 6GB |
GeForce GTX 1660 | 1408 | 6GB |
GeForce GTX 1650 Super | 1408 | 4GB |
GeForce GTX 1650 | 1024 és 896 | 4GB |
GeForce GTX 1060 3GB | 1280 | 4GB |
GeForce GTX 1650 | 1280 | 3GB |
GeForce GTX 1060 6GB | 768 | 6GB |
GeForce GTX 1050 Ti (3GB) | 768 | 4GB |
GeForce GTX 1050 (2GB) | 640 | 3GB |
GeForce GTX 960 | 1024 | 2GB |
GeForce GTX 950 | 786 | 2GB |
GeForce GTX 780 Ti | 2880 | 2GB |
GeForce GTX 780 | 2304 | 3GB |
GeForce GTX 750 Ti | 640 | 2 GB |
GeForce GTX 750 | 512 | 1 GB vagy 2 GB |
CUDA magokat tartalmazó GPU-k
Következtetés
- A CUDA és a Tensor magok olyan termékek, amelyeket az Nvidia nevű vállalat fejlesztett ki. A CUDA a Compute Unified Device Architecture rövidítése. Ezek a CUDA magok jelen vannak a GPU-kban, az okostelefonokban, sőt még az autókban is.
- Míg a tenzormagokat, amelyeket szintén az Nvidia fejlesztett ki, szintén a GPU-kban használják. A "Tensor Cores" nevű speciális magok lehetővé teszik a vegyes pontosságú képzést. A Tensor Cores első generációja lehetővé tette a vegyes pontosságú képzést és az FP16 számformátumot.
- Ez bizonyos GPU-k esetében akár 12-szeres teraFLOP teljesítménynövekedést is eredményezhet. A támogatott Tensor Core pontosságok listájára felkerült az Int8, Int4 és Int1 is.
- A vegyes pontosságú képzési eljárásoknak köszönhetően a GPU teljesítménye akár 32-szeresére nőtt. A Hopper mikroarchitektúrán alapuló Tensor Cores negyedik generációjának jövőbeli kiadását tervezik.