Kakšna je razlika med jedri CUDA in tenzorskimi jedri (razloženo) - Vse razlike

 Kakšna je razlika med jedri CUDA in tenzorskimi jedri (razloženo) - Vse razlike

Mary Davis

Jedra CUDA in tenzorska jedra so izdelki, ki jih je razvilo podjetje Nvidia. Kaj sta jedra CUDA in tenzorska jedra? CUDA je kratica za Compute Unified Device Architecture. Jedra CUDA so prisotna v vaših grafičnih procesorjih, pametnih telefonih in celo avtomobilih, kot pravijo razvijalci podjetja Nvidia.

Jedra CUDA so vzporedna računalniška platforma in vmesnik za programiranje aplikacij (API), ki programski opremi omogoča uporabo posebnih vrst grafičnih procesorjev (GPU) za splošno namensko obdelavo.

V grafičnih procesorjih se uporabljajo tudi tenzorska jedra, ki jih je prav tako razvil Nvidia. Tenzorska jedra omogočajo računanje z mešano natančnostjo in dinamično prilagajajo izračune za povečanje prepustnosti ob ohranjanju natančnosti.

Preprosto povedano, ta jedra so pomemben del grafičnih procesorjev v računalniku, ki opravljajo določene izračune. Jedra CUDA se uporabljajo za množenje dveh števil in seštevanje z drugim številom.

Medtem ko je jedro Tensor enako, vendar z matrikami 4 × 4. Ti izračuni v bistvu omogočajo hitrejše upodabljanje grafike.

Kaj je CUDA?

Compute Unified Device Architecture (na kratko CUDA), ki jo je razvila Nvidia in je bila izdana 23. junija 2007, je platforma za vzporedno računanje in vmesnik za programiranje aplikacij (API).

To programski opremi omogoča uporabo posebnih vrst grafičnih procesorjev (GPU) za splošno namensko obdelavo, kar je metoda, znana kot splošno namensko računalništvo na grafičnih procesorjih (GPU).

CUDA je programska plast, ki omogoča neposreden dostop do virtualnega nabora ukazov grafičnega procesorja in vzporednih računskih elementov za izvajanje računskih jeder. CUDA je bila razvita za delo z različnimi programskimi jeziki, vključno s C, C++ in Fortranom.

Zmožnost dela z različnimi programskimi jeziki strokovnjakom za vzporedno programiranje olajša uporabo virov GPU, če ga razlikujemo od prejšnjih API-jev, kot sta Direct3D ali OpenGL, ki bi zahtevala naprednejše znanje grafičnega programiranja.

Poglej tudi: Žena in ljubimec: sta si različna? - Vse razlike

Grafični procesor s CUDA podpira tudi programska ogrodja, kot so OpenMP, OpenACC, OpenCL in tudi HIP, ki lahko takšno kodo sestavijo v CUDA. Prvo ime za CUDA je bila kratica za Compute Unified Device Architecture, vendar je Nvidia pozneje to pogosto uporabljeno kratico opustila.

Zmogljiva grafična kartica Nvidia GTX 1080 Ti

Več o CUDA

Grafična procesna enota (GPU) je specializiran računalniški procesor, ki zadovoljuje potrebe po računsko intenzivnih 3D grafičnih obremenitvah v realnem času.

Okoli leta 2012 so se grafični procesorji razvili in postali zelo vzporedni večjedrni sistemi, ki omogočajo učinkovito obdelavo podatkov za velike bloke.

Pri vzporedni obdelavi velikih blokov podatkov je ta zasnova boljša od osrednjih procesnih enot (CPU) za splošne namene za algoritme, kot so:

  • kriptografske hash funkcije
  • strojno učenje
  • simulacije molekularne dinamike
  • fizikalni motorji
  • algoritmi razvrščanja

Uporaba arhitekture CUDA zdaj in v prihodnosti

  • Pospešeno upodabljanje grafike 3D
  • Pospešeno pretvarjanje formatov video datotek
  • Pospešeno šifriranje, dešifriranje in stiskanje
  • Bioinformatika, npr. sekvenciranje DNK NGS BarraCUDA
  • porazdeljeni izračuni, kot je napovedovanje nativne konformacije proteinov.
  • simulacije medicinskih analiz, na primer virtualna resničnost na podlagi slik CT in MRI.
  • fizikalne simulacije, zlasti na področju dinamike tekočin.
  • Usposabljanje nevronskih omrežij pri problemih strojnega učenja
  • Prepoznavanje obrazov
  • Projekti porazdeljenega računalništva, kot so [email protected] in drugi projekti, ki uporabljajo BOINC.
  • Molekularna dinamika
  • Rudarjenje kriptovalut
  • Programska oprema za strukturo iz gibanja (SfM)

Kaj je tenzorsko jedro?

Specializirana jedra, imenovana Tensor Cores, omogočajo usposabljanje z mešano natančnostjo. Začetna generacija teh specializiranih jeder to omogoča z algoritmom fused multiply-add. To omogoča množenje in seštevanje dveh matrik 4 x 4 FP16 v matriko 4 x 4 FP16 ali FP32.

Končni rezultat bo FP32 z le majhno izgubo natančnosti, saj je računanje mešane natančnosti označeno kot tako, čeprav so vhodne matrike lahko FP16 z nizko natančnostjo.

V praksi to znatno pospeši izračune, pri čemer ima majhen vpliv na končno učinkovitost modela. To zmogljivost so poznejše mikroarhitekture razširile na še manj natančne predstavitve računalniških števil.

Prva generacija je bila predstavljena z mikroarhitekturo Volta z začetkom pri V100, z vsako naslednjo generacijo pa je bilo za izračunavanje z novimi mikroarhitekturami GPU na voljo več formatov natančnosti računalniških števil.

V naslednjem razdelku bomo govorili o tem, kako so se zmogljivost in funkcionalnost tenzorskih jeder spremenile in izboljšale z vsako generacijo mikroarhitekture.

Grafično upodobljena slika, ki jo je izdelal Titan V

Kako delujejo tenzorska jedra?

Prva generacija:

Mikroarhitektura grafičnih procesorjev Volta je bila vključena v prvo generacijo jeder Tensor Cores. Ta jedra so omogočala usposabljanje z mešano natančnostjo in formatom števil FP16.

To lahko pri nekaterih grafičnih procesorjih do 12-krat poveča zmogljivost teraFLOP. 640 jeder vrhunskega procesorja V100 omogoča do 5-kratno povečanje hitrosti delovanja v primerjavi z grafičnimi procesorji Pascal prejšnje generacije.

Druga generacija:

Z uvedbo grafičnih procesorjev Turing je bila predstavljena druga generacija tenzorskih jeder. Na seznam podprtih natančnosti tenzorskih jeder, ki so bile prej omejene na FP16, so bile dodane Int8, Int4 in Int1.

Zaradi postopkov usposabljanja z mešano natančnostjo se je zmogljivost grafičnega procesorja v primerjavi z grafičnimi procesorji Pascal povečala do 32-krat.

Tretja generacija:

Arhitektura v grafičnem procesorju Ampere nadgrajuje prejšnje dosežke mikroarhitektur Volta in Turing s podporo za natančnosti FP64, TF32 in bfloat16.

Ti formati z dodatno natančnostjo veliko bolj pospešijo dejavnosti usposabljanja in sklepanja globokega učenja. Format TF32 na primer deluje podobno kot FP32, hkrati pa zagotavlja do 20-kratno pohitritev brez spreminjanja kode.

Nato bo z nekaj vrsticami kode samodejna implementacija mešane natančnosti pospešila usposabljanje za dodatnih 2 x.

Tretja generacija tehnologije NVLink, ki omogoča izjemno hitre interakcije med več grafičnimi procesorji, jedra Ray Tracing tretje generacije in specializacija za matematiko redkih matrik so dodatni vidiki mikroarhitekture Ampere. .

Četrta generacija:

V prihodnosti je načrtovana izdaja četrte generacije tenzorskih jeder, ki temelji na mikroarhitekturi Hopper. Četrta generacija tenzorskih jeder v naslednjem računalniku H100.

ki bo predvidoma izšel marca 2022, bo lahko obdeloval formate z natančnostjo FP8 in bo po besedah družbe NVIDIA pospešil modele velikih jezikov "za neverjetnih 30-krat več kot prejšnja generacija".

Grafična kartica RTX se uporablja za zelo hitro upodabljanje grafike, saj vsebuje tenzorska jedra.

Razlika med jedri CUDA in tenzorskimi jedri

Jedra tenzorjev so trenutno omejena na Titana V in Teslo V100. 5120 jeder CUDA v obeh grafičnih procesorjih ima največjo zmogljivost ene operacije množenja z eno natančnostjo (na primer v fp32: x += y * z) na takt grafičnega procesorja (npr. frekvenca PCIe Tesle V100 je 1,38 Gz).

Vsako tenzorsko jedro deluje na majhnih matrikah 4 × 4. Na eno uro grafičnega procesorja lahko vsako tenzorsko jedro izvede eno operacijo množenja-akumulacije matrik.

Pomnoži dve matriki 4 × 4 FP16 in doda matriko 4 × 4 FP32, ki nastane v akumulatorju (ki je prav tako matrika fp32 4 × 4).

Poglej tudi: Razlika med religijo in kultom (kaj morate vedeti) - Vse razlike

Ker so vhodne matrike fp16, rezultati množenja in akumulator pa fp32, je algoritem znan kot algoritem mešane natančnosti.

Pravilen izraz bi bil "matrična jedra 4×4", vendar se je ekipa za trženje družbe NVIDIA odločila za "tenzorska jedra".

Celotna razlaga tenzorskih jeder na kratko

Grafična kartica Jedra 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 in 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 ali 2 GB

Grafični procesorji z jedri CUDA

Zaključek

  • Jedra CUDA in Tensor so izdelki, ki jih je razvilo podjetje Nvidia. CUDA je kratica za Compute Unified Device Architecture. Jedra CUDA so prisotna v grafičnih procesorjih, pametnih telefonih in celo v avtomobilih.
  • V grafičnih procesorjih pa se uporabljajo tudi tenzorska jedra, ki jih je prav tako razvila družba Nvidia. Specializirana jedra, imenovana "tenzorska jedra", omogočajo usposabljanje z mešano natančnostjo. Prva generacija tenzorskih jeder je omogočala usposabljanje z mešano natančnostjo in obliko števil FP16.
  • To lahko pri nekaterih grafičnih procesorjih do 12-krat poveča prepustnost teraFLOP. Na seznam podprtih natančnosti jedra Tensor so bile dodane Int8, Int4 in Int1.
  • Zaradi postopkov usposabljanja z mešano natančnostjo se je zmogljivost grafičnega procesorja povečala do 32-krat. V prihodnosti je načrtovana izdaja četrte generacije jeder Tensor Core, ki temelji na mikroarhitekturi Hopper.

Drugi članki

    Mary Davis

    Mary Davis je pisateljica, ustvarjalka vsebine in navdušena raziskovalka, specializirana za primerjalno analizo različnih tem. Z diplomo iz novinarstva in več kot petimi leti izkušenj na tem področju ima Mary strast do zagotavljanja nepristranskih in jasnih informacij svojim bralcem. Njena ljubezen do pisanja se je začela že v mladosti in je bila gonilna sila njene uspešne pisateljske kariere. Maryna sposobnost raziskovanja in predstavitve ugotovitev v lahko razumljivi in ​​privlačni obliki je priljubila bralce po vsem svetu. Ko ne piše, Mary rada potuje, bere in preživlja čas z družino in prijatelji.