Mis vahe on CUDA tuumade ja tensorituumade vahel? (Selgitatud) - Kõik erinevused

 Mis vahe on CUDA tuumade ja tensorituumade vahel? (Selgitatud) - Kõik erinevused

Mary Davis

CUDA ja Tensor cores on tooted, mille on välja töötanud ettevõte nimega Nvidia. Mis on siis CUDA cores ja Tensor cores? CUDA tähendab Compute Unified Device Architecture. CUDA cores on olemas teie GPU-des, nutitelefonides ja isegi autodes, nagu ütlevad Nvidia arendajad.

CUDA südamikud on paralleelarvutiplatvorm ja rakendusprogrammeerimisliides (API), mis võimaldab tarkvaral kasutada teatavat tüüpi graafikaprotsessoreid (GPU) üldotstarbeliseks töötlemiseks.

Tensorituumad, mis on samuti Nvidia poolt välja töötatud, on kasutusel ka GPU-des. Tensorituumad võimaldavad segatäpsusega arvutusi, kohandades arvutusi dünaamiliselt, et suurendada läbilaskevõimet, säilitades samal ajal täpsuse.

Lihtsamalt öeldes on need südamikud teie arvuti GPUde oluline osa, et teha teatud arvutusi. CUDA südamikud on mõeldud kahe arvu korrutamiseks ja teise arvuga liitmiseks.

Samas Tensor core on sama, kuid 4×4 maatriksitega. Need arvutused on põhimõtteliselt graafika kiirem renderdamine sinu jaoks.

Mis on CUDA?

Compute Unified Device Architecture, lühendatult CUDA, mille on välja töötanud Nvidia ja mis avaldati 23. juunil 2007, on paralleelarvutiplatvorm ja rakendusprogrammeerimisliides (API).

See võimaldab tarkvaral kasutada teatavat tüüpi graafikaprotsessoreid (GPU) üldotstarbeliseks töötlemiseks, mida nimetatakse üldotstarbeliseks arvutamiseks GPUs (GPU).

CUDA on tarkvarakiht, mis pakub otsest juurdepääsu GPU virtuaalsele käsukomplektile ja paralleelsetele arvutuselementidele arvutuskärnede täitmiseks. CUDA on välja töötatud erinevate programmeerimiskeelte, sealhulgas C, C++ ja Fortrani jaoks.

Võimalus töötada erinevate programmeerimiskeeltega lihtsustab paralleelprogrammeerimise spetsialistide jaoks GPU ressursside kasutamist, kui me eristame seda varasematest APIdest, nagu Direct3D või OpenGL, mis eeldavad graafilise programmeerimise edasijõudnute oskust.

GPU koos CUDAga toetab ka programmeerimisraamistikke, nagu OpenMP, OpenACC, OpenCL ja ka HIP, mis suudab sellise koodi CUDA-sse kompileerida. CUDA esimene nimi, mida kasutati, oli akronüüm Compute Unified Device Architecture. Nvidia loobus aga hiljem selle üldkasutatava akronüümi kasutamisest.

Võimas Nvidia graafikakaart GTX 1080 Ti

Rohkem infot CUDA kohta

Spetsiaalse arvutiprotsessorina vastab graafikaprotsessor (GPU) reaalajas toimivate, arvutusmahukate 3D-graafikatööde vajadustele.

Umbes 2012. aastal arenesid GPU-d ja neist olid saanud väga paralleelsed mitmetuumalised süsteemid, mis võimaldasid tõhusat andmetöötlust suurte plokkide jaoks.

Suurte andmeplokkide paralleelsel töötlemisel on see konstruktsioon parem kui üldotstarbelised keskseadmed (CPU) selliste algoritmide jaoks nagu:

  • krüptograafilised hash-funktsioonid
  • masinõpe
  • molekulaardünaamika simulatsioonid
  • füüsikamootorid
  • sorteerimisalgoritmid

CUDA arhitektuuri kasutamine praegu ja tulevikus

  • 3D graafika kiirendatud renderdamine
  • Videofailiformaatide kiirendatud konverteerimine üksteisega
  • Kiirendatud krüpteerimine, dekrüpteerimine ja pakkimine
  • Bioinformaatika, nt NGS DNA sekveneerimine BarraCUDA
  • hajutatud arvutused, näiteks valkude natiivse konformatsiooni ennustamine
  • Meditsiinilise analüüsi simulatsioonid, näiteks virtuaalne reaalsus, mis põhineb kompuutertomograafia ja magnetresonantstomograafia kujutistel.
  • Füüsikalised simulatsioonid, eelkõige vedelikudünaamika valdkonnas
  • Neuronivõrgu koolitus masinõppe probleemides
  • Näo äratundmine
  • hajutatud arvutiprojektid, nagu [email protected] ja muud BOINCi kasutavad projektid.
  • Molekulaardünaamika
  • Krüptovaluutade kaevandamine
  • Structure from motion (SfM) tarkvara

Mis on tensori tuum?

Spetsiaalsed tuumad, mida nimetatakse Tensor Cores, võimaldavad segatäpsuse koolitust. Nende spetsialiseeritud tuumade algupärane põlvkond teeb seda fusiooni korrutamise-lisamise algoritmi abil. See võimaldab korrutada ja liita kaks 4 x 4 FP16 maatriksit 4 x 4 FP16 või FP32 maatriksiksiks.

Vaata ka: Erinevus Aesir & Vanir: Norse mütoloogia - kõik erinevused

Lõpptulemus on FP32, mis kaotab vaid veidi täpsust, segatäpsusarvutusi nimetatakse selliseks, kuigi sisendmaatriksid võivad olla madala täpsusega FP16.

Praktikas kiirendab see arvutusi märkimisväärselt, mõjutades vähe mudeli lõplikku efektiivsust. Hilisemate mikroarhitektuuride abil on seda võimekust laiendatud veelgi ebatäpsemate arvutite arvude esitusviiside jaoks.

Esimene põlvkond võeti kasutusele Volta mikroarhitektuuriga alates V100-st, iga põlvkonna järel tehti arvutite arvutamiseks kättesaadavaks rohkem arvutäpsuse formaate uute GPU-mikroarhitektuuridega.

Järgnevas osas räägime sellest, kuidas Tensor Cores'i võimsus ja funktsionaalsus on muutunud ja paranenud iga mikroarhitektuuripõlvkonnaga.

Graafiliselt renderdatud pilt, mille on teinud Titan V

Kuidas tensori südamikud töötavad?

Esimene põlvkond:

Volta GPU mikroarhitektuur sisaldas esimese põlvkonna Tensor Cores'i. Need protsessori südamikud võimaldasid treenida segatäpsusega ja FP16 arvude formaadis.

See võib teatud GPU-de puhul suurendada teraFLOPi läbilaskevõimet kuni 12 korda. 640 tuuma V100 tipptasemel annavad kuni 5x suurema jõudluse kiiruse võrreldes eelmise põlvkonna Pascal GPU-dega.

Teine põlvkond:

Turingi GPUde kasutuselevõtuga võeti kasutusele teise põlvkonna Tensor Cores. Int8, Int4 ja Int1 lisati Tensor Core'i toetatud täpsuste loetellu, mis varem olid piiratud FP16-ga.

Tänu segatäpsuse treeningprotseduuridele suurenes GPU läbilaskevõime kuni 32 korda võrreldes Pascal GPUdega.

Kolmas põlvkond:

Ampere GPU arhitektuur laiendab Volta ja Turingi mikroarhitektuuride varasemaid täiustusi, lisades FP64, TF32 ja bfloat16 täpsuse toe.

Sügava õppimise koolitus ja järelduste tegemine kiireneb palju rohkem nende täiendava täpsusega formaatide abil. Näiteks TF32 formaat toimib sarnaselt FP32-ga, tagades samas kuni 20-kordse kiirenduse ilma koodi muutmata.

Seejärel kiirendab automaatne segatäpsuse rakendamine paari koodireaga treenimist veel 2x.

Kolmanda põlvkonna NVLink, mis võimaldab ülikiire multi-GPU koostoimimist, kolmanda põlvkonna Ray Tracing tuumad ja spetsialiseerumine hõreda maatriksiga matemaatikale on Ampere'i mikroarhitektuuri täiendavad aspektid. .

Neljas põlvkond:

Hopperi mikroarhitektuuril põhineva neljanda põlvkonna Tensor Cores'i tulevane versioon on plaanis. Neljanda põlvkonna Tensor Cores'i järgmine H100.

mis peaks ilmuma 2022. aasta märtsis, saab hakkama FP8 täpsusega formaatidega ja NVIDIA sõnul kiirendab tohutuid keelemudeleid "hämmastavalt 30 korda rohkem kui eelmine põlvkond".

RTX-graafikakaarti kasutatakse graafika väga kiireks renderdamiseks, kuna see sisaldab tensorituumaid.

Erinevus CUDA tuumade ja tensorituumade vahel

Tensorituumad on praegu piiratud Titan V ja Tesla V100-ga. 5120 CUDA tuuma mõlemal GPU-l on maksimaalne võimsus üks ühekordse täpsusega korrutamis-kogumisoperatsioon (näiteks fp32-s: x += y * z) GPU taktis (nt Tesla V100 PCIe sagedus on 1,38Gz).

Iga tensori tuum töötab väikeste maatriksite puhul 4×4 väikese maatriksiga. Iga tensori tuum saab ühe GPU taktimõõdiku kohta sooritada ühe maatriksi korrutamise-akumuleerimise operatsiooni.

See korrutab kaks 4×4 FP16 maatriksit ja lisab 4×4 FP32 maatriksi, mis tekib akumulaatoris (mis on samuti fp32 4×4 maatriks).

Vaata ka: Lame kõht VS. Abs - Mis on erinevus? - Kõik erinevused

Kuna sisendmaatriksid on fp16, kuid korrutustulemused ja akumulaator on fp32, nimetatakse seda algoritmi segatäpsuseks.

Õige termin oleks tõenäoliselt lihtsalt "4×4 maatriksituumad", kuid NVIDIA turundusmeeskond otsustas kasutada "tensorituumad".

Tensori südamikud täielik selgitus lühidalt

GPU kaart CUDA südamikud VRAM
GeForce GTX 1660 Ti 1536 6GB
GeForce GTX 1660 Super 1408 6GB
GeForce GTX 1660 1408 6GB
GeForce GTX 1650 Super 1408 4GB
GeForce GTX 1650 1024 ja 896 4GB
GeForce GTX 1060 3GB 1280 4GB
GeForce GTX 1650 1280 3GB
GeForce GTX 1060 6GB 768 6GB
GeForce GTX 1050 Ti (3GB) 768 4GB
GeForce GTX 1050 (2GB) 640 3GB
GeForce GTX 960 1024 2GB
GeForce GTX 950 786 2GB
GeForce GTX 780 Ti 2880 2GB
GeForce GTX 780 2304 3GB
GeForce GTX 750 Ti 640 2 GB
GeForce GTX 750 512 1 GB või 2 GB

CUDA tuumasid sisaldavad GPUd

Kokkuvõte

  • CUDA ja Tensor cores on tooted, mis mõlemad on välja töötatud ettevõtte Nvidia poolt. CUDA tähendab Compute Unified Device Architecture. Need CUDA tuumad on olemas teie GPU-des, nutitelefonides ja isegi autodes.
  • Samal ajal kui tensorituumoreid, mis on samuti Nvidia poolt välja töötatud, kasutatakse ka GPU-des. Spetsiaalsed tuumad, mida nimetatakse "Tensorituumoriteks", võimaldavad segatäpsusega treenimist. Tensorituumorite esimene põlvkond võimaldas treenida segatäpsusega ja FP16 arvuformaadiga.
  • See võib teatud GPUde puhul suurendada teraFLOPi läbilaskevõimet kuni 12 korda. Int8, Int4 ja Int1 lisati Tensor Core'i toetatud täpsuste loetellu.
  • Tänu segatäpsuse treeningprotseduuridele suurenes GPU jõudlus kuni 32 korda. Tulevikus on plaanis välja anda Hopperi mikroarhitektuuril põhinev neljanda põlvkonna Tensor Cores.

Muud artiklid

    Mary Davis

    Mary Davis on kirjanik, sisulooja ja innukas uurija, kes on spetsialiseerunud erinevate teemade võrdlusanalüüsile. Ajakirjaniku kraadiga ja üle viieaastase kogemusega selles valdkonnas Mary on kirglik oma lugejatele erapooletu ja otsekohese teabe edastamise vastu. Tema armastus kirjutamise vastu sai alguse juba noorena ja on olnud tema eduka kirjanikukarjääri liikumapanev jõud. Mary võime uurida ja esitada leide lihtsalt arusaadavas ja kaasahaaravas vormis on teda lugejatele üle kogu maailma armsaks teinud. Kui ta ei kirjuta, naudib Mary reisimist, lugemist ning pere ja sõpradega aega veetmist.