Kuo skiriasi CUDA branduoliai ir tenzorių branduoliai? (paaiškinta) - Visi skirtumai

 Kuo skiriasi CUDA branduoliai ir tenzorių branduoliai? (paaiškinta) - Visi skirtumai

Mary Davis

CUDA ir "Tensor" branduoliai - tai bendrovės "Nvidia" sukurti produktai. Kas yra CUDA ir "Tensor" branduoliai? CUDA reiškia "Compute Unified Device Architecture". CUDA branduolių yra jūsų GPU, išmaniuosiuose telefonuose ir net automobiliuose, kaip teigia "Nvidia" kūrėjai.

CUDA branduoliai - tai lygiagrečiųjų skaičiavimų platforma ir taikomųjų programų programavimo sąsaja (API), leidžianti programinei įrangai naudoti tam tikro tipo grafikos procesorių (GPU) bendrosios paskirties apdorojimui.

Tensoriniai branduoliai, kuriuos taip pat sukūrė "Nvidia", taip pat naudojami GPU. Tensoriniai branduoliai leidžia atlikti mišraus tikslumo skaičiavimus, dinamiškai pritaikant skaičiavimus, kad būtų padidintas našumas ir išlaikytas tikslumas.

Paprastai tariant, šie branduoliai yra svarbi jūsų kompiuteryje esančių GPU dalis, skirta tam tikriems skaičiavimams atlikti. CUDA branduoliai naudojami dviem skaičiams dauginti ir pridėti prie kito skaičiaus.

Tuo tarpu "Tensor core" yra tas pats, bet su matricomis 4×4. Šie skaičiavimai iš esmės atvaizduoja grafiką greičiau už jus.

Kas yra CUDA?

2007 m. birželio 23 d. išleista bendrovės "Nvidia" sukurta CUDA (Compute Unified Device Architecture, sutrumpintai CUDA) - tai lygiagrečiųjų skaičiavimų platforma ir taikomųjų programų programavimo sąsaja (API).

Tai leidžia programinei įrangai naudoti tam tikro tipo grafikos procesorių (GPU) bendrosios paskirties duomenų apdorojimui - šis metodas vadinamas bendrosios paskirties skaičiavimais su GPU (GPU).

CUDA yra programinės įrangos sluoksnis, kuris suteikia tiesioginę prieigą prie GPU virtualaus instrukcijų rinkinio ir lygiagrečiųjų skaičiavimo elementų skaičiavimo branduolių vykdymui. CUDA buvo sukurta darbui su įvairiomis programavimo kalbomis, įskaitant C, C++ ir Fortran.

Galimybė dirbti skirtingomis programavimo kalbomis palengvina lygiagrečiojo programavimo specialistams naudotis GPU ištekliais, jei atskirsime ją nuo ankstesnių API, tokių kaip "Direct3D" ar "OpenGL", kurios reikalauja turėti pažangesnių grafinio programavimo įgūdžių.

GPU su CUDA taip pat palaiko tokias programavimo sistemas, kaip OpenMP, OpenACC, OpenCL, taip pat HIP, kurios gali tokį kodą kompiliuoti į CUDA. Pirmasis naudotas CUDA pavadinimas buvo akronimas, reiškiantis Compute Unified Device Architecture, tačiau vėliau "Nvidia" atsisakė šio plačiai naudojamo akronimo.

Galinga "Nvidia" vaizdo plokštė GTX 1080 Ti

Daugiau apie CUDA

Kaip specializuotas kompiuterio procesorius, grafikos procesorius (GPU) tenkina realiuoju laiku atliekamų daug skaičiavimų reikalaujančių 3D grafikos užduočių poreikius.

Apie 2012 m. GPU išsivystė ir tapo labai lygiagrečiomis daugiabranduolinėmis sistemomis, leidžiančiomis efektyviai apdoroti didelių blokų duomenis.

Lygiagrečiai apdorojant didžiulius duomenų blokus, ši konstrukcija yra pranašesnė už bendrosios paskirties centrinius procesorius (CPU), skirtus algoritmams, pvz:

  • kriptografinės hash funkcijos
  • mašininis mokymasis
  • molekulinės dinamikos modeliavimas
  • fizikos varikliai
  • rūšiavimo algoritmai

CUDA architektūros panaudojimas dabar ir ateityje

  • Spartesnis 3D grafikos atvaizdavimas
  • Spartesnis vaizdo failų formatų keitimas
  • Spartesnis šifravimas, iššifravimas ir suspaudimas
  • Bioinformatika, pvz., NGS DNR sekos nustatymas BarraCUDA
  • paskirstytieji skaičiavimai, pavyzdžiui, baltymų prigimtinės konformacijos numatymas.
  • Medicininės analizės modeliavimas, pavyzdžiui, virtualioji realybė pagal kompiuterinės tomografijos ir magnetinio rezonanso tomografijos vaizdus.
  • Fizikinis modeliavimas, ypač skysčių dinamikos srityje.
  • Neuroninių tinklų mokymas sprendžiant mašininio mokymosi problemas
  • Veido atpažinimas
  • paskirstytųjų skaičiavimų projektai, pavyzdžiui, [email protected] ir kiti BOINC naudojantys projektai.
  • Molekulinė dinamika
  • Kriptovaliutų kasyba
  • Struktūra iš judesio (SfM) programinė įranga

Kas yra tenzorių branduolys?

Specializuoti branduoliai, vadinami "Tensor Cores", leidžia atlikti mišraus tikslumo mokymą. Šių specializuotų branduolių pradinė karta tai daro naudodama sulietą dauginimo ir pridėjimo algoritmą. Tai leidžia dauginti ir pridėti dvi 4 x 4 FP16 matricas prie 4 x 4 FP16 arba FP32 matricos.

Galutinis rezultatas bus FP32 su nedideliu tikslumo praradimu, mišraus tikslumo skaičiavimai taip ir vadinami, nors įvesties matricos gali būti mažo tikslumo FP16.

Praktiškai tai gerokai pagreitina skaičiavimus, o galutiniam modelio efektyvumui tai turi mažai įtakos. Vėlesnės mikroarchitektūros šią galimybę išplėtė iki dar mažiau tikslių kompiuterio skaičių atvaizdavimų.

Pirmoji karta buvo pristatyta su "Volta" mikroarchitektūra, pradedant nuo V100, o su kiekviena nauja GPU mikroarchitektūra skaičiavimams buvo suteikiama daugiau kompiuterio skaičiaus tikslumo formatų.

Apie tai, kaip keitėsi ir tobulėjo "Tensor Cores" branduolių talpa ir funkcionalumas su kiekviena mikroarchitektūros karta, kalbėsime tolesniame skyriuje.

Grafinis vaizdas, sukurtas "Titan V

Kaip veikia tenzorių branduoliai?

Pirmoji karta:

Kartu su pirmosios kartos "Tensor Cores" branduoliais buvo įdiegta "Volta" GPU mikroarchitektūra. Šie branduoliai suteikė galimybę mokyti naudojant mišrų tikslumą ir FP16 skaičių formatą.

Dėl to tam tikrų GPU teraFLOP našumas gali padidėti iki 12 kartų. 640 aukščiausios klasės V100 branduolių suteikia iki 5 kartų didesnį našumą, palyginti su ankstesnės kartos "Pascal" GPU.

Antroji karta:

Įdiegus "Turing GPU", buvo pristatyta antroji "Tensor Core" karta. Į palaikomų "Tensor Core" tikslumų sąrašą buvo įtraukti Int8, Int4 ir Int1, kurie anksčiau buvo tik FP16.

Dėl mišraus tikslumo mokymo procedūrų GPU našumas padidėjo iki 32 kartų, palyginti su "Pascal" GPU.

Trečioji karta:

"Ampere" GPU architektūra išplečia ankstesnius "Volta" ir "Turing" mikroarchitektūrų pasiekimus, pridėdama FP64, TF32 ir bfloat16 tikslumo palaikymą.

Giluminio mokymosi mokymo ir išvadų darymo veiklą šie papildomo tikslumo formatai pagreitina daug labiau. Pavyzdžiui, TF32 formatas veikia panašiai kaip FP32, tačiau taip pat garantuoja iki 20 kartų didesnį greitį nekeičiant jokio kodo.

Tuomet vos keliomis kodo eilutėmis automatinis mišraus tikslumo diegimas pagreitins mokymą dar 2 kartus.

Taip pat žr: Pokémon White vs. Pokémon Black? (paaiškinta) - visi skirtumai

Trečiosios kartos "NVLink", leidžianti itin sparčiai sąveikauti su keliais GPU, trečiosios kartos "Ray Tracing" branduoliai ir retų matricų matematikos specializacija - papildomi "Ampere" mikroarchitektūros aspektai. .

Ketvirtoji karta:

Ateityje planuojama išleisti "Hopper" mikroarchitektūra pagrįstą ketvirtosios kartos "Tensor Cores" branduolių versiją. Ketvirtosios kartos "Tensor Cores" branduoliai kitame H100.

kuris turėtų būti išleistas 2022 m. kovo mėn., galės apdoroti FP8 tikslumo formatus ir, pasak NVIDIA, paspartins didžiulių kalbų modelius "stulbinamai 30 kartų, palyginti su ankstesne karta".

RTX vaizdo plokštė naudojama labai sparčiai atvaizduoti grafiką, nes joje yra tensorių branduolių.

CUDA branduolių ir tenzorių branduolių skirtumas

Šiuo metu "Tensor" branduoliai yra tik "Titan V" ir "Tesla V100". 5120 CUDA branduolių abiejuose GPU gali atlikti ne daugiau kaip vieną vienos tikslumo daugybos ir kaupimo operaciją (pvz., fp32: x += y * z) per vieną GPU taktą (pvz., "Tesla V100" PCIe dažnis yra 1,38Gz).

Kiekvienas tenzorių branduolys veikia su mažomis 4×4 mažomis matricomis. Per vieną GPU taktą kiekvienas tenzorių branduolys gali atlikti vieną matricų dauginimo-akumuliavimo operaciją.

Jis padaugina dvi 4×4 FP16 matricas ir prideda 4×4 FP32 matricą, kuri gaunama akumuliatoriuje (kuris taip pat yra fp32 4×4 matrica).

Taip pat žr: Kuo skiriasi ROI ir ROIC? (Paaiškinta) - visi skirtumai

Kadangi įvesties matricos yra fp16, o daugybos rezultatai ir kaupiklis - fp32, šis algoritmas vadinamas mišraus tikslumo.

Teisingas terminas greičiausiai būtų "4×4 matricos branduoliai", tačiau NVIDIA rinkodaros komanda pasirinko "tensorių branduolius".

Tensorių branduolių išsamus paaiškinimas trumpai

GPU plokštė CUDA branduoliai VRAM
"GeForce GTX 1660 Ti 1536 6GB
"GeForce GTX 1660 Super 1408 6GB
"GeForce GTX 1660 1408 6GB
"GeForce GTX 1650 Super 1408 4 GB
"GeForce GTX 1650 1024 ir 896 4 GB
"GeForce GTX 1060 3GB 1280 4 GB
"GeForce GTX 1650 1280 3GB
"GeForce GTX 1060 6GB 768 6GB
"GeForce GTX 1050 Ti" (3 GB) 768 4 GB
"GeForce GTX 1050" (2GB) 640 3GB
"GeForce GTX 960 1024 2 GB
"GeForce GTX 950 786 2 GB
"GeForce GTX 780 Ti 2880 2 GB
"GeForce GTX 780 2304 3GB
"GeForce GTX 750 Ti 640 2 GB
"GeForce GTX 750 512 1 GB arba 2 GB

GPU, kuriuose yra CUDA branduolių

Išvada

  • CUDA ir "Tensor" branduoliai yra produktai, kuriuos sukūrė bendrovė "Nvidia". CUDA reiškia "Compute Unified Device Architecture". Šie CUDA branduoliai yra jūsų GPU, išmaniuosiuose telefonuose ir net automobiliuose.
  • Tuo tarpu tensoriniai branduoliai, kuriuos taip pat sukūrė "Nvidia", taip pat naudojami GPU. Specializuoti branduoliai, vadinami "Tensor cores", leidžia mokyti mišriu tikslumu. Pirmoji "Tensor cores" branduolių karta leido mokyti mišriu tikslumu ir FP16 skaičių formatu.
  • Dėl to tam tikruose GPU teraFLOP našumas gali padidėti iki 12 kartų. Į palaikomų "Tensor Core" tikslumų sąrašą įtrauktos Int8, Int4 ir Int1.
  • Dėl mišraus tikslumo mokymo procedūrų GPU našumas padidėjo iki 32 kartų. Ateityje planuojama išleisti "Hopper" mikroarchitektūra pagrįstą ketvirtosios kartos "Tensor Cores" branduolių versiją.

Kiti straipsniai

    Mary Davis

    Mary Davis yra rašytoja, turinio kūrėja ir aistringa tyrinėtoja, kurios specializacija yra palyginimo analizė įvairiomis temomis. Turėdama žurnalistikos laipsnį ir daugiau nei penkerių metų patirtį šioje srityje, Mary aistringai teikia nešališką ir aiškią informaciją savo skaitytojams. Jos meilė rašymui prasidėjo, kai ji buvo jauna, ir ji buvo sėkmingos rašymo karjeros varomoji jėga. Marijos sugebėjimas tyrinėti ir pateikti išvadas lengvai suprantamu ir patraukliu formatu ją pamėgo skaitytojai visame pasaulyje. Kai ji nerašo, Marija mėgsta keliauti, skaityti ir leisti laiką su šeima bei draugais.