Jaký je rozdíl mezi jádry CUDA a Tensor Cores? (Vysvětlení) - Všechny rozdíly
Obsah
Jádra CUDA a Tensor jsou produkty vyvinuté společností Nvidia. Co jsou tedy jádra CUDA a jádra Tensor? CUDA je zkratka pro Compute Unified Device Architecture. Jádra CUDA jsou přítomna v grafických procesorech, chytrých telefonech, a dokonce i v autech, jak tvrdí vývojáři společnosti Nvidia.
Jádra CUDA jsou paralelní výpočetní platformou a rozhraním pro programování aplikací (API), které umožňuje softwaru využívat specifické typy grafických procesorů (GPU) k univerzálnímu zpracování.
Tensorová jádra, která rovněž vyvinula společnost Nvidia, se rovněž používají v grafických procesorech. Tensorová jádra umožňují výpočty se smíšenou přesností a dynamicky přizpůsobují výpočty tak, aby se zvýšila propustnost při zachování přesnosti.
Zjednodušeně řečeno, tato jádra jsou důležitou součástí grafických procesorů v počítači, které provádějí určité výpočty. Jádra CUDA se používají k násobení dvou čísel a jejich sčítání s jiným číslem.
Zatímco jádro Tensor je totéž, ale s maticemi 4×4. Tyto výpočty vám v podstatě urychlí vykreslování grafiky.
Co je CUDA?
Compute Unified Device Architecture, zkráceně CUDA, vyvinutá společností Nvidia a vydaná 23. června 2007, je paralelní výpočetní platforma a aplikační programové rozhraní (API).
To umožňuje softwaru využívat specifické typy grafických procesorů (GPU) k univerzálnímu zpracování, což je metoda známá jako univerzální výpočty na GPU (GPU).
CUDA je softwarová vrstva, která poskytuje přímý přístup k virtuální instrukční sadě GPU a paralelním výpočetním prvkům pro provádění výpočetních jader. CUDA byla vyvinuta pro práci s různými programovými jazyky včetně jazyků C, C++ a Fortran.
Viz_také: Jaký je rozdíl mezi ráčnou a nástrčným klíčem? (Vše, co potřebujete vědět) - Všechny rozdílyMožnost práce s různými programovacími jazyky usnadňuje specialistům na paralelní programování využití prostředků GPU, pokud je odlišíme od předchozích rozhraní API, jako je Direct3D nebo OpenGL, které by vyžadovaly pokročilejší znalosti grafického programování.
GPU s CUDA podporuje také programovací rámce, jako jsou OpenMP, OpenACC, OpenCL a také HIP, které dokáží takový kód zkompilovat do CUDA. První používaný název pro CUDA byl akronym pro Compute Unified Device Architecture. Společnost Nvidia však později od této běžně používané zkratky upustila.
Výkonná grafická karta Nvidia GTX 1080 Ti
Další informace o CUDA
Grafický procesor (GPU) jako specializovaný počítačový procesor splňuje potřeby výpočetně náročných 3D grafických úloh v reálném čase.
Kolem roku 2012 se GPU vyvinuly a staly se vysoce paralelními vícejádrovými systémy umožňujícími efektivní zpracování dat pro velké bloky.
Při paralelním zpracování obrovských bloků dat je tato konstrukce lepší než univerzální centrální procesory (CPU) pro algoritmy, jako např.:
- kryptografické hashovací funkce
- strojové učení
- simulace molekulární dynamiky
- fyzikální motory
- algoritmy třídění
Využití architektury CUDA nyní a v budoucnu
- Zrychlené vykreslování 3D grafiky
- Zrychlená konverze formátů video souborů
- Zrychlené šifrování, dešifrování a komprese
- Bioinformatika, např. sekvenování DNA NGS BarraCUDA
- Distribuované výpočty, například předpovídání nativní konformace proteinů.
- Simulace lékařských analýz, například virtuální realita založená na snímcích z CT a MRI.
- Fyzikální simulace, zejména v oblasti dynamiky tekutin.
- Trénování neuronových sítí v problémech strojového učení
- Rozpoznávání obličejů
- Projekty distribuovaných výpočtů, například [email protected] a další projekty využívající BOINC.
- Molekulární dynamika
- Těžba kryptoměn
- Software Structure from motion (SfM)
Co je tenzorové jádro?
Specializovaná jádra nazývaná Tensor Cores umožňují trénování se smíšenou přesností. Počáteční generace těchto specializovaných jader to provádí pomocí algoritmu fused multiply-add. To umožňuje násobit a sčítat dvě matice 4 x 4 FP16 do matice 4 x 4 FP16 nebo FP32.
Viz_také: Pán prstenů - Jak se od sebe liší Gondor a Rohan? - Všechny rozdílyKonečný výsledek bude FP32 jen s malou ztrátou přesnosti, výpočty se smíšenou přesností jsou takto označovány, i když vstupní matice mohou být s nízkou přesností FP16.
V praxi se tím výpočty výrazně urychlují s malým vlivem na výslednou efektivitu modelu. Tato schopnost byla pozdějšími mikroarchitekturami rozšířena na ještě méně přesné počítačové reprezentace čísel.
První generace byla představena s mikroarchitekturou Volta počínaje V100, s každou další generací bylo pro výpočty s novými mikroarchitekturami GPU zpřístupněno více formátů přesnosti čísel.
V následující části si povíme, jak se s každou generací mikroarchitektury měnila a zlepšovala kapacita a funkčnost jader Tensor.
Graficky vykreslený obrázek vytvořený přístrojem Titan V
Jak fungují tenzorová jádra?
První generace:
Mikroarchitektura GPU Volta byla součástí první generace jader Tensor Cores. Tato jádra umožnila trénovat se smíšenou přesností a formátem čísel FP16.
U některých GPU by tak mohlo dojít až k 12násobnému zvýšení propustnosti v teraFLOP. 640 jader nejvyšší úrovně V100 poskytuje až pětinásobné zvýšení rychlosti oproti GPU Pascal předchozí generace.
Druhá generace:
Se zavedením grafických procesorů Turing byla představena druhá generace Tensor Cores. Do seznamu podporovaných přesností Tensor Core, které byly dříve omezeny na FP16, byly přidány Int8, Int4 a Int1.
Díky tréninkovým postupům se smíšenou přesností se propustnost GPU zvýšila až 32krát ve srovnání s GPU Pascal.
Třetí generace:
Architektura v GPU Ampere rozšiřuje dřívější pokroky mikroarchitektur Volta a Turing o podporu přesností FP64, TF32 a bfloat16.
Tyto formáty s extra přesností mnohem více urychlují činnosti spojené s trénováním a odvozováním hlubokého učení. Například formát TF32 funguje podobně jako FP32 a zároveň zaručuje až 20násobné zrychlení bez nutnosti měnit kód.
Pak stačí jen několik řádků kódu, aby automatická implementace se smíšenou přesností urychlila trénink další 2x.
Dalšími aspekty mikroarchitektury Ampere jsou třetí generace technologie NVLink umožňující bleskurychlou interakci více grafických procesorů, jádra Ray Tracing třetí generace a specializace na matematiku řídkých matic. .
Čtvrtá generace:
V budoucnu se plánuje vydání čtvrté generace Tensor Cores založené na mikroarchitektuře Hopper. Čtvrtá generace Tensor Cores v příštím H100.
který by měl být uveden v březnu 2022, bude schopen zpracovávat formáty s přesností FP8 a podle společnosti NVIDIA urychlí obrovské jazykové modely "ohromujícím 30násobným tempem oproti předchozí generaci".
Grafická karta RTX slouží k velmi rychlému vykreslování grafiky, protože obsahuje tensorová jádra.
Rozdíl mezi jádry CUDA a tenzorovými jádry
Tensorová jádra jsou v současné době omezena na Titany V a Tesly V100. 5120 jader CUDA na obou GPU má maximální kapacitu jedné operace násobení s jednou přesností (například ve fp32: x += y * z) na takt GPU (např. frekvence PCIe Tesly V100 je 1,38Gz).
Každé tenzorové jádro pracuje s malými maticemi 4×4 pro malé matice. Za jeden takt GPU může každé tenzorové jádro dokončit jednu operaci násobení-akumulace matic.
Vynásobí dvě matice 4×4 FP16 a sečte matici 4×4 FP32, která vznikne v akumulátoru (což je také matice fp32 4×4).
Protože vstupní matice jsou fp16, zatímco výsledky násobení a akumulátor jsou fp32, je tento algoritmus znám jako algoritmus se smíšenou přesností.
Správný termín by pravděpodobně byl "maticová jádra 4×4", ale marketingový tým společnosti NVIDIA se rozhodl použít "tenzorová jádra".
Úplné vysvětlení tenzorových jader v kostce
GPU karta | Jádra CUDA | VRAM |
---|---|---|
GeForce GTX 1660 Ti | 1536 | 6 GB |
GeForce GTX 1660 Super | 1408 | 6 GB |
GeForce GTX 1660 | 1408 | 6 GB |
GeForce GTX 1650 Super | 1408 | 4 GB |
GeForce GTX 1650 | 1024 a 896 | 4 GB |
GeForce GTX 1060 3GB | 1280 | 4 GB |
GeForce GTX 1650 | 1280 | 3 GB |
GeForce GTX 1060 6GB | 768 | 6 GB |
GeForce GTX 1050 Ti (3 GB) | 768 | 4 GB |
GeForce GTX 1050 (2 GB) | 640 | 3 GB |
GeForce GTX 960 | 1024 | 2 GB |
GeForce GTX 950 | 786 | 2 GB |
GeForce GTX 780 Ti | 2880 | 2 GB |
GeForce GTX 780 | 2304 | 3 GB |
GeForce GTX 750 Ti | 640 | 2 GB |
GeForce GTX 750 | 512 | 1 GB nebo 2 GB |
GPU obsahující jádra CUDA
Závěr
- CUDA a jádra Tensor jsou produkty, které vyvinula společnost Nvidia. CUDA je zkratka pro Compute Unified Device Architecture. Tato jádra CUDA jsou přítomna v grafických procesorech, chytrých telefonech a dokonce i v autech.
- Zatímco tensorová jádra, která rovněž vyvinula společnost Nvidia, se používají i v grafických procesorech. Specializovaná jádra nazývaná "Tensor cores" umožňují trénování se smíšenou přesností. První generace tensorových jader umožnila trénování se smíšenou přesností a formátem čísel FP16.
- To by mohlo u některých GPU znamenat až 12násobné zvýšení propustnosti teraFLOP. Na seznam podporovaných přesností Tensor Core byly přidány Int8, Int4 a Int1.
- Díky tréninkovým postupům se smíšenou přesností se výkon GPU zvýšil až 32krát. V budoucnu se plánuje vydání čtvrté generace Tensor Cores založené na mikroarchitektuře Hopper.