Kāda ir atšķirība starp CUDA kodoliem un tenzoru kodoliem? (Paskaidrots) - Visas atšķirības

 Kāda ir atšķirība starp CUDA kodoliem un tenzoru kodoliem? (Paskaidrots) - Visas atšķirības

Mary Davis

CUDA un Tensor kodoli ir produkti, ko izstrādājis uzņēmums Nvidia. Kas ir CUDA kodoli un Tensor kodoli? CUDA nozīmē Compute Unified Device Architecture. CUDA kodoli ir jūsu GPU, viedtālruņos un pat automašīnās, kā to apgalvo Nvidia izstrādātāji.

CUDA kodoli ir paralēlās skaitļošanas platforma un lietojumprogrammu programmēšanas saskarne (API), kas ļauj programmatūrai izmantot noteiktu veidu grafikas procesorus (GPU) vispārējas nozīmes apstrādei.

Tensoru kodoli, kurus arī izstrādāja Nvidia, tiek izmantoti arī GPU. Tensoru kodoli nodrošina jauktas precizitātes skaitļošanu, dinamiski pielāgojot aprēķinus, lai palielinātu caurlaides spēju, vienlaikus saglabājot precizitāti.

Vienkāršiem vārdiem sakot, šie kodoli ir svarīga jūsu datora GPU daļa, lai veiktu noteiktus aprēķinus. CUDA kodoli tiek izmantoti, lai reizinātu divus skaitļus un saskaitītu tos ar citu skaitli.

Savukārt Tensor kodols ir tas pats, bet ar matricām 4 × 4. Šie aprēķini būtībā ātrāk atveido grafiku.

Kas ir CUDA?

Nvidia izstrādātā un 2007. gada 23. jūnijā izlaistā skaitļošanas vienotās ierīces arhitektūra CUDA ir paralēlās skaitļošanas platforma un lietojumprogrammu programmēšanas saskarne (API).

Tas ļauj programmatūrai izmantot īpaša veida grafikas procesorus (GPU) vispārējas nozīmes datu apstrādei, un šī metode ir pazīstama kā vispārējas nozīmes skaitļošana ar GPU (GPU).

CUDA ir programmatūras slānis, kas nodrošina tiešu piekļuvi GPU virtuālajam instrukciju kopumam un paralēlajiem skaitļošanas elementiem, lai izpildītu skaitļošanas kodolus. CUDA tika izstrādāta darbam ar dažādām programmēšanas valodām, tostarp C, C++ un Fortran.

Iespēja strādāt ar dažādām programmēšanas valodām atvieglo paralēlās programmēšanas speciālistiem izmantot GPU resursus, ja atšķir to no iepriekšējām API, piemēram, Direct3D vai OpenGL, kas prasītu attīstītākas prasmes grafiskās programmēšanas jomā.

Skatīt arī: Kāda ir atšķirība starp gardēnijas un jasmīna ziediem? (Svaiguma sajūta) - visas atšķirības

GPU ar CUDA atbalsta arī programmēšanas ietvarstruktūras, piemēram, OpenMP, OpenACC, OpenCL, kā arī HIP, kas šādu kodu var kompilēt uz CUDA. Pirmais CUDA nosaukums bija akronīms Compute Unified Device Architecture, tomēr vēlāk Nvidia atteicās no plaši lietotā akronīma.

Jaudīga Nvidia grafiskā karte GTX 1080 Ti

Vairāk par CUDA

Kā specializēts datora procesors grafikas procesors (GPU) atbilst reāllaika 3D grafikas slodžu vajadzībām, kas prasa intensīvu skaitļošanu.

Skatīt arī: Kāda ir atšķirība starp elektrolītiskajiem un galvaniskajiem elementiem? (Detalizēta analīze) - visas atšķirības

Ap 2012. gadu GPU attīstījās un kļuva par ļoti paralēlām daudzkodolu sistēmām, kas ļauj efektīvi apstrādāt lielus datu blokus.

Apstrādājot milzīgus datu blokus paralēli, šī konstrukcija ir pārāka par vispārējas nozīmes centrālo procesoru (CPU) algoritmiem, piemēram:

  • kriptogrāfiskās hash funkcijas
  • mašīnmācīšanās
  • molekulārās dinamikas simulācijas
  • fizikas dzinēji
  • šķirošanas algoritmi

CUDA arhitektūras lietojums tagad un nākotnē

  • Paātrināta 3D grafikas atveidošana
  • Paātrināta video failu formātu interkonversija
  • Paātrināta šifrēšana, atšifrēšana un saspiešana
  • Bioinformātika, piemēram, NGS DNS DNS sekvenēšana BarraCUDA
  • Izplatīti aprēķini, piemēram, proteīnu dabiskās konformācijas prognozēšana.
  • Medicīniskās analīzes simulācijas, piemēram, virtuālā realitāte, kas balstīta uz datortomogrāfijas un magnētiskās rezonanses skenēšanas attēliem.
  • Fizikālās simulācijas, jo īpaši šķidrumu dinamikā.
  • Neironu tīklu apmācība mašīnmācīšanās problēmās
  • Sejas atpazīšana
  • Sadalītās skaitļošanas projekti, piemēram, [email protected] un citi projekti, kuros izmanto BOINC.
  • Molekulārā dinamika
  • Kriptovalūtu ieguve
  • Struktūra no kustības (SfM) programmatūra

Kas ir tenzora kodols?

Specializētie kodoli, ko sauc par Tensor kodoliem, ļauj veikt jauktas precizitātes apmācību. Šo specializēto kodolu sākotnējā paaudze to dara, izmantojot saplūdušo reizināšanas un saskaitīšanas algoritmu. Tas ļauj reizināt un saskaitīt divas 4 x 4 FP16 matricas ar 4 x 4 FP16 vai FP32 matricu.

Galīgais rezultāts būs FP32 ar tikai nelielu precizitātes zudumu, par tādu tiek dēvēta jauktās precizitātes skaitļošana, lai gan ievades matricas var būt FP16 ar zemu precizitāti.

Praksē tas ievērojami paātrina aprēķinus, maz ietekmējot modeļa galīgo efektivitāti. Vēlākajās mikroarhitektūrās šī spēja tika paplašināta līdz vēl mazāk precīzām datora skaitļu reprezentācijām.

Pirmā paaudze tika ieviesta ar Volta mikroarhitektūru, sākot ar V100, ar katru nākamo paaudzi aprēķiniem ar jaunām GPU mikroarhitektūrām tika nodrošināts vairāk skaitļu precizitātes formātu.

Turpmākajā sadaļā mēs runāsim par to, kā Tensoru kodolu jauda un funkcionalitāte ir mainījusies un uzlabojusies ar katru mikroarhitektūras paaudzi.

Grafiski atveidots attēls, ko veido Titan V

Kā darbojas tenzoru kodoli?

Pirmā paaudze:

Volta GPU mikroarhitektūra tika iekļauta kopā ar pirmās paaudzes Tensor kodoliem. Šie kodoli ļāva apmācīt ar jauktu precizitāti un FP16 skaitļu formātu.

Tas varētu līdz pat 12x palielināt teraFLOP caurlaidspēju noteiktiem GPU. 640 kodolu, kas ir augstākā līmeņa V100, nodrošina līdz pat 5x lielāku veiktspējas ātrumu salīdzinājumā ar iepriekšējās paaudzes Pascal GPU.

Otrā paaudze:

Līdz ar Turing GPU ieviešanu tika ieviesta otrā Tensor Core paaudze. Tensor Core atbalstīto precizitāšu sarakstam, kas iepriekš bija ierobežots līdz FP16, tika pievienotas Int8, Int4 un Int1.

Pateicoties jauktas precizitātes apmācības procedūrām, GPU veiktspējas caurlaidspēja salīdzinājumā ar Pascal GPU tika palielināta līdz pat 32 reizēm.

Trešā paaudze:

Ampere GPU arhitektūra paplašina Volta un Turing mikroarhitektūru iepriekšējos sasniegumus, pievienojot FP64, TF32 un bfloat16 precizitātes atbalstu.

Šie papildu precizitātes formāti daudz vairāk paātrina dziļās mācīšanās apmācības un secinājumu izdarīšanas darbības. Piemēram, TF32 formāts darbojas līdzīgi kā FP32, vienlaikus garantējot līdz pat 20x paātrinājumu, nemainot kodu.

Tad, izmantojot tikai dažas koda rindiņas, automātiskā jauktas precizitātes implementācija paātrinās apmācību vēl 2 reizes.

Trešās paaudzes NVLink, kas nodrošina ārkārtīgi ātru vairāku GPU mijiedarbību, trešās paaudzes Ray Tracing kodoli un specializācija retās matricas matemātikā ir Ampere mikroarhitektūras papildu aspekti. .

Ceturtā paaudze:

Nākotnē ir plānots izdot uz Hopper mikroarhitektūru balstītu ceturtās paaudzes Tensor kodolu versiju. Ceturtās paaudzes Tensor kodoli nākamajā H100.

kuru paredzēts izlaist 2022. gada martā, spēs apstrādāt FP8 precizitātes formātus un, pēc NVIDIA teiktā, paātrinās milzīgu valodu modeļus "pārsteidzoši 30 reizes salīdzinājumā ar iepriekšējo paaudzi".

RTX grafikas karte tiek izmantota ļoti ātrai grafikas atveidošanai, jo tā satur tenzora kodolus.

Atšķirība starp CUDA kodoliem un tenzoru kodoliem

Tensoru kodoli pašlaik ir tikai Titan V un Tesla V100. 5120 CUDA kodoliem abos GPU ir maksimālā jauda - viena vienas precizitātes reizināšanas-akumulācijas operācija (piemēram, fp32: x += y * z) uz GPU taktu (piemēram, Tesla V100 PCIe frekvence ir 1,38Gz).

Katrs tenzora kodols darbojas ar mazām matricām 4 × 4. Vienā GPU taktā katrs tenzora kodols var izpildīt vienu matricas reizināšanas-akumulācijas operāciju.

Tā reizina divas 4 × 4 FP16 matricas un pieskaita 4 × 4 FP32 matricu, ko iegūst akumulatorā (kas arī ir fp32 4 × 4 matrica).

Tā kā ieejas matricas ir fp16, bet reizināšanas rezultāti un akumulators ir fp32, algoritmu sauc par jauktas precizitātes algoritmu.

Pareizais termins, visticamāk, būtu vienkārši "4×4 matricas kodoli", taču NVIDIA mārketinga komanda izvēlējās lietot "tenzora kodoli".

Tensoru kodolu pilns skaidrojums īsumā

GPU karte CUDA kodoli 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 un 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 vai 2 GB

GPU ar CUDA kodoliem

Secinājums

  • CUDA un Tensor kodoli ir produkti, kurus izstrādājis uzņēmums Nvidia. CUDA ir saīsinājums no Compute Unified Device Architecture. Šie CUDA kodoli ir jūsu GPU, viedtālruņos un pat automašīnās.
  • Savukārt GPU tiek izmantoti arī tenzoru kodoli, kurus arī izstrādāja Nvidia. Specializētie kodoli, ko dēvē par "tenzoru kodoliem", ļauj apmācīt ar jauktu precizitāti. Tensoru kodolu pirmā paaudze ļāva apmācīt ar jauktu precizitāti un FP16 skaitļu formātu.
  • Tas varētu līdz pat 12x palielināt teraFLOP caurlaidspēju noteiktos GPU. Tensor Core atbalstīto precizitāšu sarakstā tika pievienotas Int8, Int4 un Int1.
  • Pateicoties jauktas precizitātes apmācības procedūrām, GPU veiktspēja tika palielināta līdz pat 32 reizēm. Nākotnē plānots izdot uz Hopper mikroarhitektūru balstītu ceturtās paaudzes Tensor kodolu.

Citi raksti

    Mary Davis

    Mērija Deivisa ir rakstniece, satura veidotāja un dedzīga pētniece, kas specializējas salīdzināšanas analīzē par dažādām tēmām. Ar žurnālistikas grādu un vairāk nekā piecu gadu pieredzi šajā jomā Marijai ir aizraušanās ar objektīvas un vienkāršas informācijas sniegšanu saviem lasītājiem. Viņas mīlestība pret rakstīšanu sākās, kad viņa bija maza, un tā ir bijusi viņas veiksmīgās rakstniecības karjeras virzītājspēks. Mērijas spēja pētīt un prezentēt atklājumus viegli saprotamā un saistošā formātā, ir viņu iecienījusi lasītājus visā pasaulē. Kad viņa neraksta, Marijai patīk ceļot, lasīt un pavadīt laiku kopā ar ģimeni un draugiem.