Aký je rozdiel medzi jadrami CUDA a tenzorovými jadrami? (Vysvetlené) - Všetky rozdiely

 Aký je rozdiel medzi jadrami CUDA a tenzorovými jadrami? (Vysvetlené) - Všetky rozdiely

Mary Davis

Jadrá CUDA a Tensor sú produkty vyvinuté spoločnosťou Nvidia. Čo sú teda jadrá CUDA a jadrá Tensor? CUDA je skratka pre Compute Unified Device Architecture (architektúra zjednotených výpočtových zariadení). Jadrá CUDA sa nachádzajú vo vašich GPU, smartfónoch a dokonca aj v autách, ako hovoria vývojári spoločnosti Nvidia.

Jadrá CUDA predstavujú paralelnú výpočtovú platformu a aplikačné programovacie rozhranie (API), ktoré umožňuje softvéru využívať špecifické typy grafických procesorov (GPU) na všeobecné spracovanie.

Tenzorové jadrá, ktoré tiež vyvinula spoločnosť Nvidia, sa tiež používajú v GPU. Tenzorové jadrá umožňujú výpočty so zmiešanou presnosťou, dynamicky prispôsobujú výpočty s cieľom zvýšiť priepustnosť pri zachovaní presnosti.

Zjednodušene povedané, tieto jadrá sú dôležitou súčasťou GPU vo vašom počítači na vykonávanie určitých výpočtov. Jadrá CUDA sa používajú na násobenie dvoch čísel a ich sčítanie s iným číslom.

Zatiaľ čo jadro Tensor je to isté, ale s maticami 4 × 4. Tieto výpočty vám v podstate rýchlejšie vykresľujú grafiku.

Čo je CUDA?

Compute Unified Device Architecture, skrátene CUDA, vyvinutá spoločnosťou Nvidia a vydaná 23. júna 2007, je platforma pre paralelné výpočty a aplikačné programovacie rozhranie (API).

To umožňuje softvéru využívať špecifické typy grafických procesorov (GPU) na spracovanie na všeobecné účely, čo je metóda známa ako všeobecné výpočty na GPU (GPU).

CUDA je softvérová vrstva, ktorá poskytuje priamy prístup k virtuálnej inštrukčnej sade GPU a paralelným výpočtovým prvkom na vykonávanie výpočtových jadier. CUDA bola vyvinutá na prácu s rôznymi programovými jazykmi vrátane jazykov C, C++ a Fortran.

Schopnosť pracovať s rôznymi programovými jazykmi uľahčuje špecialistom na paralelné programovanie využívanie prostriedkov GPU, ak ho odlišujeme od predchádzajúcich API, ako sú Direct3D alebo OpenGL, ktoré by vyžadovali pokročilejšie zručnosti v grafickom programovaní.

GPU s CUDA podporuje aj programovacie rámce, ako sú OpenMP, OpenACC, OpenCL a tiež HIP, ktoré dokážu takýto kód skompilovať do CUDA. Prvý názov používaný pre CUDA bol akronymom pre Compute Unified Device Architecture (architektúra zjednoteného výpočtového zariadenia). Spoločnosť Nvidia však neskôr od tejto bežne používanej skratky upustila.

Výkonná grafická karta Nvidia GTX 1080 Ti

Ďalšie informácie o CUDA

Grafický procesor (GPU) ako špecializovaný počítačový procesor spĺňa potreby náročných výpočtových úloh 3D grafiky v reálnom čase.

Okolo roku 2012 sa grafické procesory vyvinuli a stali sa vysoko paralelnými viacjadrovými systémami, ktoré umožňujú efektívne spracovanie veľkých blokov dát.

Pri paralelnom spracovaní obrovských blokov údajov je táto konštrukcia lepšia ako univerzálne centrálne procesory (CPU) pre algoritmy, ako napr:

  • kryptografické hash funkcie
  • strojové učenie
  • simulácie molekulovej dynamiky
  • fyzikálne motory
  • algoritmy triedenia

Využitie architektúry CUDA v súčasnosti a v budúcnosti

  • Zrýchlené vykresľovanie 3D grafiky
  • Zrýchlená konverzia formátov videosúborov
  • Zrýchlené šifrovanie, dešifrovanie a kompresia
  • Bioinformatika, napr. sekvenovanie DNA NGS BarraCUDA
  • Distribuované výpočty, napríklad predpovedanie natívnej konformácie proteínov
  • Simulácie lekárskych analýz, napríklad virtuálna realita založená na snímkach z CT a MRI.
  • Fyzikálne simulácie, najmä v oblasti dynamiky tekutín
  • Trénovanie neurónových sietí v problémoch strojového učenia
  • Rozpoznávanie tváre
  • Projekty distribuovanej výpočtovej techniky, ako napríklad [email protected] a iné projekty využívajúce BOINC
  • Molekulárna dynamika
  • Ťažba kryptomien
  • Softvér pre štruktúru z pohybu (SfM)

Čo je tenzorové jadro?

Špecializované jadrá nazývané Tensor Cores umožňujú trénovať so zmiešanou presnosťou. Počiatočná generácia týchto špecializovaných jadier to robí pomocou algoritmu fused multiply-add. To umožňuje násobiť a sčítať dve matice 4 x 4 FP16 do matice 4 x 4 FP16 alebo FP32.

Konečný výsledok bude FP32 len s malou stratou presnosti, výpočty so zmiešanou presnosťou sa takto označujú, aj keď vstupné matice môžu byť s nízkou presnosťou FP16.

V praxi to výrazne urýchľuje výpočty s malým vplyvom na konečnú efektívnosť modelu. Túto kapacitu rozšírili neskoršie mikroarchitektúry na ešte menej presné reprezentácie počítačových čísel.

Prvá generácia bola predstavená s mikroarchitektúrou Volta počnúc V100, pričom s každou ďalšou generáciou bolo pre výpočty s novými mikroarchitektúrami GPU sprístupnených viac formátov s presnosťou čísla.

O tom, ako sa kapacita a funkčnosť jadier Tensor Cores menila a zlepšovala s každou generáciou mikroarchitektúry, budeme hovoriť v nasledujúcej časti.

Graficky vykreslený obrázok vytvorený pomocou zariadenia Titan V

Ako fungujú tenzorové jadrá?

Prvá generácia:

Mikroarchitektúra GPU Volta bola súčasťou prvej generácie jadier Tensor Cores. Tieto jadrá umožnili trénovať so zmiešanou presnosťou a formátom čísel FP16.

V prípade niektorých GPU by to mohlo znamenať až 12-násobné zvýšenie priepustnosti teraFLOP. 640 jadier najvyššej triedy V100 prináša až 5-násobné zvýšenie rýchlosti výkonu oproti GPU Pascal predchádzajúcej generácie.

Druhá generácia:

So zavedením grafických procesorov Turing bola predstavená druhá generácia Tensor Cores. Do zoznamu podporovaných presností Tensor Core, ktoré boli predtým obmedzené na FP16, boli pridané Int8, Int4 a Int1.

Vďaka tréningovým postupom so zmiešanou presnosťou sa výkonnosť GPU zvýšila až 32-krát v porovnaní s GPU Pascal.

Tretia generácia:

Architektúra v GPU Ampere rozširuje predchádzajúce pokroky mikroarchitektúr Volta a Turing o podporu presností FP64, TF32 a bfloat16.

Tieto formáty s extra presnosťou oveľa viac urýchľujú činnosti spojené s tréningom a odvodzovaním hlbokého učenia. Napríklad formát TF32 funguje podobne ako FP32 a zároveň zaručuje až 20-násobné zrýchlenie bez toho, aby bolo potrebné meniť akýkoľvek kód.

Potom stačí len niekoľko riadkov kódu, aby automatická implementácia so zmiešanou presnosťou urýchlila tréning o ďalší 2-násobok.

Tretia generácia technológie NVLink, ktorá umožňuje mimoriadne rýchlu interakciu viacerých GPU, jadrá Ray Tracing tretej generácie a špecializácia na matematiku riedkych matíc sú ďalšími aspektmi mikroarchitektúry Ampere. .

Pozri tiež: Aký je rozdiel medzi súbormi MP3 128 kb/s a 320 kb/s? (Najlepší na jamovanie) - všetky rozdiely

Štvrtá generácia:

V budúcnosti sa plánuje vydanie štvrtej generácie jadier Tensor Cores na báze mikroarchitektúry Hopper. Štvrtá generácia jadier Tensor Cores v ďalšom počítači H100.

ktorý by mal byť vydaný v marci 2022, bude schopný spracovať formáty s presnosťou FP8 a podľa spoločnosti NVIDIA zrýchli obrovské jazykové modely "ohromujúcim 30-násobným nárastom oproti predchádzajúcej generácii".

Grafická karta RTX sa používa na veľmi rýchle vykresľovanie grafiky, pretože obsahuje tenzorové jadrá.

Rozdiel medzi jadrami CUDA a tenzorovými jadrami

Tenzorové jadrá sú v súčasnosti obmedzené na Titany V a Tesly V100. 5120 jadier CUDA na oboch GPU má maximálnu kapacitu jednej operácie násobenia s jednou presnosťou (napr. vo fp32: x += y * z) na takt GPU (napr. frekvencia PCIe Tesly V100 je 1,38 GHz).

Každé tenzorové jadro pracuje s malými maticami 4 × 4 pre malé matice. Na jeden takt GPU môže každé tenzorové jadro dokončiť jednu operáciu násobenia-akumulácie matice.

Vynásobí dve matice 4×4 FP16 a pripočíta maticu 4×4 FP32, ktorá vznikne v akumulátore (čo je tiež matica fp32 4×4).

Pozri tiež: Príznak prenesenia vs. príznak pretečenia (binárne násobenie) - všetky rozdiely

Keďže vstupné matice sú fp16, zatiaľ čo výsledky násobenia a akumulátor sú fp32, algoritmus je známy ako zmiešaná presnosť.

Správny termín by pravdepodobne bol len "maticové jadrá 4×4", ale marketingový tím spoločnosti NVIDIA sa rozhodol použiť "tenzorové jadrá".

Úplné vysvetlenie tenzorových jadier v kocke

GPU karta Jadrá 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 alebo 2 GB

GPU, ktoré obsahujú jadrá CUDA

Záver

  • Jadrá CUDA a Tensor sú produkty, ktoré vyvinula spoločnosť Nvidia. CUDA je skratka pre Compute Unified Device Architecture (architektúra zjednotených výpočtových zariadení). Tieto jadrá CUDA sa nachádzajú vo vašich GPU, smartfónoch a dokonca aj v autách.
  • Zatiaľ čo v GPU sa používajú aj tenzorové jadrá, ktoré tiež vyvinula spoločnosť Nvidia. Špecializované jadrá nazývané "Tensor cores" umožňujú trénovanie so zmiešanou presnosťou. Prvá generácia tenzorových jadier umožňovala trénovanie so zmiešanou presnosťou a formátom čísel FP16.
  • V prípade niektorých GPU by to mohlo znamenať až 12-násobné zvýšenie priepustnosti teraFLOP. Do zoznamu podporovaných presností jadra Tensor boli pridané presnosti Int8, Int4 a Int1.
  • Vďaka tréningovým postupom so zmiešanou presnosťou sa výkon GPU zvýšil až 32-krát. V budúcnosti sa plánuje vydanie štvrtej generácie Tensor Cores na báze mikroarchitektúry Hopper.

Ďalšie články

    Mary Davis

    Mary Davis je spisovateľka, tvorkyňa obsahu a zanietená výskumníčka, ktorá sa špecializuje na porovnávaciu analýzu rôznych tém. S titulom žurnalistiky a viac ako päťročnými skúsenosťami v tejto oblasti má Mary vášeň pre poskytovanie nezaujatých a priamočiarych informácií svojim čitateľom. Jej láska k písaniu začala, keď bola mladá a bola hybnou silou jej úspešnej kariéry v písaní. Maryina schopnosť skúmať a prezentovať zistenia v ľahko pochopiteľnom a pútavom formáte si ju obľúbili čitatelia na celom svete. Keď Mary nepíše, rada cestuje, číta a trávi čas s rodinou a priateľmi.