Jaký je rozdíl mezi jádry CUDA a Tensor Cores? (Vysvětlení) - Všechny rozdíly

 Jaký je rozdíl mezi jádry CUDA a Tensor Cores? (Vysvětlení) - Všechny rozdíly

Mary Davis

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íly

Mož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íly

Koneč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.

Další články

    Mary Davis

    Mary Davis je spisovatelka, tvůrkyně obsahu a zanícená výzkumnice specializující se na srovnávací analýzy různých témat. S titulem v oboru žurnalistiky a více než pětiletými zkušenostmi v oboru má Mary vášeň pro poskytování nezaujatých a přímých informací svým čtenářům. Její láska ke psaní začala, když byla mladá a byla hnacím motorem její úspěšné spisovatelské kariéry. Maryina schopnost zkoumat a prezentovat poznatky ve snadno srozumitelném a poutavém formátu si ji oblíbili čtenáři po celém světě. Když Mary nepíše, ráda cestuje, čte a tráví čas s rodinou a přáteli.