Mitä eroa on CUDA-ytimien ja Tensor-ytimien välillä? (Selitetty) - Kaikki erot
Sisällysluettelo
CUDA- ja Tensor-ytimet ovat Nvidia-nimisen yrityksen kehittämiä tuotteita. Mitä CUDA-ytimet ja Tensor-ytimet sitten ovat? CUDA on lyhenne sanoista Compute Unified Device Architecture (yhtenäinen laskentalaitearkkitehtuuri). CUDA-ytimiä on näytönohjaimissasi, älypuhelimissasi ja jopa autoissasi, kuten Nvidian kehittäjät sanovat.
CUDA-ytimet ovat rinnakkaislaskenta-alusta ja sovellusohjelmointirajapinta (API), jonka avulla ohjelmistot voivat käyttää tietyn tyyppisiä grafiikkasuorittimia (GPU) yleiskäyttöiseen käsittelyyn.
Nvidian kehittämiä tensorisydämiä käytetään myös näytönohjaimissa. Tensorisydämet mahdollistavat sekatarkkuuslaskennan, jossa laskutoimituksia mukautetaan dynaamisesti läpäisykyvyn lisäämiseksi ja tarkkuuden säilyttämiseksi.
Yksinkertaisesti sanottuna nämä ytimet ovat tärkeä osa tietokoneen näytönohjainta, joka tekee tiettyjä laskutoimituksia. CUDA-ytimiä käytetään kertomaan kaksi lukua ja lisäämään ne toiseen lukuun.
Katso myös: Blue and Black Steaks VS Blue Steaks Yhdysvalloissa - Kaikki erotTensor-ydin on sama, mutta 4×4-matriisien kanssa. Nämä laskutoimitukset periaatteessa renderöivät grafiikkaa nopeammin.
Mikä on CUDA?
Compute Unified Device Architecture, lyhyesti CUDA, jonka Nvidia on kehittänyt ja joka julkaistiin 23. kesäkuuta 2007, on rinnakkaislaskenta-alusta ja sovellusohjelmointirajapinta (API).
Tämä mahdollistaa sen, että ohjelmistot voivat käyttää tietyntyyppisiä grafiikkasuorittimia (GPU) yleiskäyttöiseen tietojenkäsittelyyn, mikä tunnetaan nimellä yleiskäyttöinen tietojenkäsittely GPU:lla (GPU).
CUDA on ohjelmistokerros, joka tarjoaa suoran pääsyn GPU:n virtuaaliseen käskykantaan ja rinnakkaisiin laskentaelementteihin laskentaytimien suorittamista varten. CUDA kehitettiin toimimaan eri ohjelmointikielten, kuten C:n, C++:n ja Fortranin kanssa.
Kyky työskennellä eri ohjelmointikielillä helpottaa rinnakkaisohjelmoinnin asiantuntijoiden GPU-resurssien hyödyntämistä, jos erotamme sen aiemmista API:ista, kuten Direct3D:stä tai OpenGL:stä, jotka vaativat kehittyneempää osaamista graafisessa ohjelmoinnissa.
CUDA:lla varustettu näytönohjain tukee myös ohjelmointikehyksiä, kuten OpenMP:tä, OpenACC:tä, OpenCL:ää ja myös HIP:tä, joka voi kääntää kyseisen koodin CUDA:ksi. CUDA:n ensimmäinen nimi oli lyhenne sanoista Compute Unified Device Architecture. Nvidia luopui kuitenkin myöhemmin yleisesti käytetystä lyhenteestä.
Tehokas Nvidian näytönohjain GTX 1080 Ti
Lisätietoja CUDA:sta
Erikoistunut tietokoneen prosessori, grafiikkasuorittin (GPU) vastaa reaaliaikaisten, laskentaintensiivisten 3D-grafiikkatehtävien tarpeisiin.
Noin vuonna 2012 GPU:t kehittyivät ja niistä oli tullut erittäin rinnakkaisia moniydinjärjestelmiä, jotka mahdollistavat tehokkaan tietojenkäsittelyn suurille lohkoille.
Kun suuria tietolohkoja käsitellään rinnakkain, tämä rakenne on parempi kuin yleiskäyttöiset keskusyksiköt (CPU) esimerkiksi seuraavissa algoritmeissa:
- kryptografiset hash-funktiot
- koneoppiminen
- molekyylidynamiikkasimulaatiot
- fysiikan moottorit
- lajittelualgoritmit
CUDA-arkkitehtuurin käyttö nyt ja tulevaisuudessa
- 3D-grafiikan nopeutettu renderöinti
- Videotiedostomuotojen kiihdytetty muuntaminen keskenään
- Nopeutettu salaus, salauksen purku ja pakkaus
- Bioinformatiikka, esim. NGS DNA-sekvensointi BarraCUDA
- Hajautetut laskutoimitukset, kuten proteiinien natiivikonformaation ennustaminen.
- Lääketieteelliset analyysisimulaatiot, esimerkiksi virtuaalitodellisuus, joka perustuu tietokonetomografia- ja magneettikuvauksiin.
- fysikaaliset simulaatiot, erityisesti nestedynamiikan alalla
- Neuraaliverkon koulutus koneoppimisongelmissa
- Kasvontunnistus
- Hajautetun tietojenkäsittelyn hankkeet, kuten [email protected] ja muut BOINCia käyttävät hankkeet.
- Molekyylidynamiikka
- Kryptovaluuttojen louhinta
- Structure from motion (SfM) -ohjelmisto
Mikä on Tensor Core?
Erikoistuneet ytimet, joita kutsutaan Tensor-ytimiksi, mahdollistavat sekatarkkuusharjoittelun. Näiden erikoistuneiden ytimien alkusukupolvi tekee tämän fuusioidulla kerto- ja yhteenlaskualgoritmilla. Tämä mahdollistaa kahden 4 x 4 FP16-matriisin kertomisen ja yhteenlaskun 4 x 4 FP16- tai FP32-matriisiksi.
Lopputulos on FP32, jossa tarkkuus heikkenee vain hieman, ja sekatarkkuuslaskenta on nimetty sellaiseksi, vaikka syöttömatriisit voivat olla matalan tarkkuuden FP16-matriiseja.
Käytännössä tämä nopeuttaa laskutoimituksia huomattavasti, mutta ei juurikaan vaikuta mallin lopulliseen tehokkuuteen. Myöhemmät mikroarkkitehtuurit ovat laajentaneet tätä kapasiteettia vielä epätarkempiin tietokonelukujen esitystapoihin.
Ensimmäinen sukupolvi esiteltiin Volta-mikroarkkitehtuurilla alkaen V100:sta, ja uusien GPU-mikroarkkitehtuurien avulla laskentaa varten saatiin käyttöön enemmän tietokoneen numerotarkkuusmuotoja jokaisen sukupolven myötä.
Seuraavassa osassa kerrotaan, miten Tensor Coresin kapasiteetti ja toiminnot ovat muuttuneet ja parantuneet jokaisen mikroarkkitehtuurisukupolven myötä.
Graafisesti renderöity kuva, joka on tehty Titan V:llä.
Miten sensoriytimet toimivat?
Ensimmäinen sukupolvi:
Volta GPU-mikroarkkitehtuuri sisältyi ensimmäisen sukupolven Tensor-ytimiin, jotka mahdollistivat harjoittelun sekatarkkuudella ja FP16-lukumuodossa.
Tämä voi lisätä teraFLOP-läpimenoa jopa 12-kertaisesti tietyillä näytönohjaimilla. 640 ytimen V100-huippumallin suorituskyky kasvaa jopa 5-kertaisesti edellisen sukupolven Pascal-näytönohjaimiin verrattuna.
Toinen sukupolvi:
Turing-grafiikkasuorittimien käyttöönoton myötä otettiin käyttöön toisen sukupolven Tensor-ytimet. Int8, Int4 ja Int1 lisättiin tuettujen Tensor-ytimien tarkkuusluetteloon, joka oli aiemmin rajoitettu FP16:een.
Sekatarkkuusharjoittelumenetelmien ansiosta GPU:n suorituskyky kasvoi jopa 32-kertaiseksi Pascal-grafiikkasuorittimiin verrattuna.
Kolmas sukupolvi:
Ampere-grafiikkasuorittimen arkkitehtuuri laajentaa Volta- ja Turing-mikroarkkitehtuurien aiempia edistysaskeleita lisäämällä tuen FP64-, TF32- ja bfloat16-tarkkuudelle.
Syväoppimisen harjoittelu ja päättelytoiminnot nopeutuvat huomattavasti näiden lisätarkkuusformaattien avulla. Esimerkiksi TF32-formaatti toimii samalla tavalla kuin FP32 ja takaa jopa 20-kertaisen nopeutumisen ilman koodin muuttamista.
Tämän jälkeen automaattinen sekatarkkuuden toteutus nopeuttaa harjoittelua vielä 2x muutamalla koodirivillä.
Kolmannen sukupolven NVLink, joka mahdollistaa huikean nopean usean grafiikkayksikön vuorovaikutuksen, kolmannen sukupolven Ray Tracing -ytimet ja erikoistuminen harvaan matriisimatematiikkaan ovat Ampere-mikroarkkitehtuurin lisäominaisuuksia. .
Neljäs sukupolvi:
Hopper-mikroarkkitehtuuriin perustuvien neljännen sukupolven Tensor-ytimien tuleva julkaisu on suunnitteilla. Neljännen sukupolven Tensor-ytimet seuraavassa H100:ssa.
jonka odotetaan ilmestyvän maaliskuussa 2022, pystyy käsittelemään FP8-tarkkuusmuotoja ja NVIDIAn mukaan se nopeuttaa valtavia kielimalleja "hämmästyttävän 30-kertaisesti edelliseen sukupolveen verrattuna".
RTX-näytönohjainta käytetään grafiikan renderöintiin erittäin nopeasti, sillä se sisältää tensorisydämiä.
CUDA-ytimien ja Tensor-ytimien välinen ero
Tensor-ytimet on tällä hetkellä rajoitettu Titan V:hen ja Tesla V100:een. Molempien näytönohjainten 5120 CUDA-ytimen maksimikapasiteetti on yksi yksitarkkuuden kertolasku- ja kasautumisoperaatio (esimerkiksi fp32:ssa: x += y * z) näytönohjaimen kelloa kohden (esim. Tesla V100 PCIe-taajuus on 1,38 Gz).
Katso myös: Mitä eroa on maagin, velhon ja velhon välillä? (Selitetty) - Kaikki erotKukin tensorisydän toimii 4×4 pienillä matriiseilla pieniä matriiseja varten. Yhtä GPU-kelloa kohden kukin tensorisydän voi suorittaa yhden matriisien kerrannais- ja kertolaskuoperaation.
Se kertoo kaksi 4×4 FP16-matriisia ja lisää 4×4 FP32-matriisin, joka on tuloksena akkumulaattorissa (joka on myös fp32 4×4-matriisi).
Koska syöttömatriisit ovat fp16 ja kertolaskun tulokset ja akkumulaattori ovat fp32, algoritmi tunnetaan sekatarkkuusalgoritmina.
Oikea termi olisi todennäköisesti vain "4×4 matriisiydintä", mutta NVIDIAn markkinointitiimi päätti käyttää termiä "tensorisydämet".
Tensorytimien täydellinen selitys pähkinänkuoressa
GPU-kortti | CUDA-ytimet | 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 GT |
GeForce GTX 750 | 512 | 1 Gt tai 2 Gt |
CUDA-ytimiä sisältävät näytönohjaimet
Päätelmä
- CUDA ja Tensor-ytimet ovat Nvidia-nimisen yrityksen kehittämiä tuotteita. CUDA on lyhenne sanoista Compute Unified Device Architecture. CUDA-ytimiä on näytönohjaimissa, älypuhelimissa ja jopa autoissa.
- Nvidian kehittämiä tensorisydämiä käytetään myös näytönohjaimissa. Erikoisytimet, joita kutsutaan nimellä "Tensorisydämet", mahdollistavat sekatarkkuusharjoittelun. Ensimmäisen sukupolven Tensorisydämet mahdollistivat harjoittelun sekatarkkuudella ja FP16-lukumuodossa.
- Tämä voi lisätä teraFLOP-läpimenoa jopa 12-kertaisesti tietyillä näytönohjaimilla. Int8, Int4 ja Int1 lisättiin tuettujen Tensor Core -tarkkuuksien luetteloon.
- Sekatarkkuuden harjoittelumenetelmien ansiosta GPU:n suorituskyky kasvoi jopa 32-kertaiseksi. Hopper-mikroarkkitehtuuriin perustuvan neljännen sukupolven Tensor-ytimien tuleva julkaisu on suunnitteilla.