Kio Estas la Diferenco Inter CUDA Kernoj kaj Tensor Kernoj? (Klarigite) - Ĉiuj Diferencoj

 Kio Estas la Diferenco Inter CUDA Kernoj kaj Tensor Kernoj? (Klarigite) - Ĉiuj Diferencoj

Mary Davis

CUDA kaj Tensor-kernoj estas produktoj evoluigitaj de kompanio nomata Nvidia. Do kio estas CUDA-kernoj kaj Tensor-kernoj? CUDA signifas Compute Unified Device Architecture. La CUDA-kernoj ĉeestas en viaj GPUoj, saĝtelefonoj, kaj eĉ viaj aŭtoj, kiel diras la programistoj de Nvidia.

CUDA-kernoj estas paralela komputika platformo kaj aplikaĵa programado-interfaco (API) kiu ebligas al programaro uzi specifajn specojn de grafikaj pretigaj unuoj (GPUoj) por ĝeneraluzebla pretigo.

Dum tensorkernoj kiuj ankaŭ estis evoluigitaj fare de Nvidia, ankaŭ estas uzitaj en GPUoj. Tensor Cores ebligas miksan precizecan komputadon, adaptante kalkulojn dinamike por pliigi trafluon konservante precizecon.

En simplaj vortoj, ĉi tiuj kernoj estas grava parto de la GPU-oj en via komputilo por fari iujn kalkulojn. CUDA-kernoj estas uzataj por multobligi du nombrojn kaj aldoni ilin al alia nombro.

Dum Tensorkerno estas la sama sed kun 4×4 matricoj. Ĉi tiuj kalkuloj esence faras grafikaĵojn pli rapide por vi.

Kio Estas CUDA?

Compute Unified Device Architecture mallonge CUDA evoluigita de Nvidia, publikigita la 23-an de junio 2007, estas paralela komputika platformo kaj aplikaĵa programada interfaco (API).

Tio ebligas programaron uzi specifajn specojn de grafikaj pretigaj unuoj (GPUoj) por ĝeneraluzebla pretigo, metodo konata kiel ĝeneraluzebla komputado surGPUoj (GPU).

CUDA estas softvartavolo kiu disponigas rektan aliron al la virtuala instrukcio de la GPU kaj paralelajn komputilajn elementojn por la ekzekuto de komputikaj kernoj. CUDA estis evoluigita por labori kun malsamaj programlingvoj inkluzive de C, C++, kaj Fortran.

La kapablo labori kun malsamaj programlingvoj faciligas al specialistoj en paralela programado uzi GPU-resursojn se ni diferencigas ĝin de antaŭaj API-oj kiel Direct3D aŭ OpenGL, kiuj postulus, ke vi havu pli altnivelan programon. lerteco bazo en grafika programado.

GPU kun CUDA ankaŭ subtenas programajn kadrojn, kiel OpenMP, OpenACC, OpenCL, kaj ankaŭ HIP kiuj povas kompili tian kodon al CUDA. La antaŭnomo uzita por CUDA estis akronimo por Compute Unified Device Architecture. Tamen, Nvidia poste faligis la ofte uzatan akronimon.

Potenca Nvidia Grafika karto GTX 1080 Ti

Pli pri CUDA

Kiel speciala komputila procesoro, la grafika prilaboranta unuo (GPU) plenumas la bezonojn de reala -tempaj, komputilaj intensaj 3D-grafikaj laborkvantoj.

Ĉirkaŭ 2012 GPUoj evoluis kaj fariĝis tre paralelaj plurkernaj sistemoj ebligante efikan datumtraktadon por grandaj blokoj.

Dum prilaborado de grandegaj blokoj da datumoj paralele, ĉi tiu dezajno estas pli bona ol ĝeneraluzeblaj centraj pretigaj unuoj (CPUoj) por algoritmoj, kiel ekzemple:

  • kriptografa haŝo.funkcioj
  • maŝinlernado
  • simuladoj de molekula dinamiko
  • fizikaj motoroj
  • ordigi algoritmojn

Uzoj de la CUDA Arkitekturo Nun kaj en la Estonteco

  • Akcelita bildigo de 3D grafikaĵoj
  • Akcelita interkonvertiĝo de videodosierformatoj
  • Akcelita ĉifrado, malĉifrado kaj kunpremado
  • Bioinformadiko, ekz., NGS DNA-sekvencado BarraCUDA
  • Distribuitaj kalkuloj, kiel ekzemple antaŭdiro de la indiĝena formo de proteinoj
  • Medicinanalizaj simulaĵoj, ekzemple, virtuala realeco bazita sur CT kaj MRI-skanaj bildoj
  • Fizikaj simulaĵoj, precipe en fluida dinamiko
  • Trejnado de neŭrala reto en maŝinlernado-problemoj
  • Vizaĝa rekono
  • Disvastigitaj komputikprojektoj, kiel [retpoŝto protektita] kaj aliaj projektoj uzante BOINC
  • Molekula dinamiko
  • Minado de kriptaj moneroj
  • Strukturo de moviĝo (SfM) programaro

Kio Estas Tensora Kerno?

Speciigitaj kernoj nomitaj Tensor Cores permesas miksitan precizecan trejnadon. La komenca generacio de ĉi tiuj specialiĝintaj kernoj faras tion kun kunfandita multobligi-aldoritmo. Ĉi tio ebligas multobligi kaj aldoni du 4 x 4 FP16-matricojn al 4 x 4 FP16 aŭ FP32-matrico.

La finfina rezulto estos FP32 kun nur eta perdo de precizeco, miksita precizeca komputado estas indikita kiel tia kvankamla enirmatricoj povas esti malalt-precizecaj FP16.

En praktiko, tio signife plirapidigas la kalkulojn kun malmulte da influo sur la fina efikeco de la modelo. Tiu kapacito estis vastigita per pli postaj mikroarkitekturoj al eĉ malpli precizaj komputilnumeroreprezentantaroj.

La unua generacio estis lanĉita kun Volta mikroarkitekturo komencanta ĉe V100, pli da komputilaj nombroprecizecaj formatoj estis disponigitaj por komputado kun novaj GPU-mikroarkitekturoj kun ĉiu preterpasanta generacio.

Ni parolos pri kiel la kapablo kaj funkcieco de Tensor Cores ŝanĝiĝis kaj pliboniĝis kun ĉiu mikroarkitekturo-generacio en la sekva sekcio.

Grafike bildigita bildo farita de Titan V

Kiel Funkcias Tensoraj Kernoj?

Unua Generacio:

La Volta GPU-mikroarkitekturo estis inkluzivita kun la unua generacio de Tensor Cores. Tiuj kernoj ebligis trejni kun miksita precizeco kaj la FP16-nombroformato.

Vidu ankaŭ: Sela Basmati Rizo kontraŭ Rizo Sen Sela Etikedo/Regula Rizo (Detala Diferenco) - Ĉiuj Diferencoj

Ĉi tio povus havi ĝis 12 fojojn pligrandigon en teraFLOP-trafluo por certaj GPUoj. La 640 kernoj de la plej alta nivelo V100 donas ĝis 5x pliigon de rendimento rapido super la Pascal GPU-oj de la antaŭa generacio.

Dua Generacio:

Kun la enkonduko de Turing-GPUoj, la dua generacio de Tensor Cores estis prezentita. Int8, Int4, kaj Int1 estis aldonitaj al la listo de subtenataj Tensor Core-precizecoj, kiuj estisantaŭe limigita al FP16.

Pro miksitaj precizecaj trejnadproceduroj, la rendimento de la GPU pliiĝis ĝis 32 fojojn kompare kun Pascal GPU-oj.

Tria Generacio:

La arkitekturo en Ampere GPU pligrandigas la pli fruajn progresojn de la mikroarkitekturoj Volta kaj Turing aldonante subtenon por FP64, TF32, kaj bfloat16 precizecoj.

Trejnado de profunda lernado kaj inferencaj agadoj estas multe pli akcelitaj per ĉi tiuj ekstra precizecaj formatoj. Ekzemple, la TF32-formato funkcias simile al FP32 kaj ankaŭ garantias ĝis 20x-rapidecojn sen ŝanĝi ajnan kodon.

Tiam, kun nur kelkaj linioj de kodo, aŭtomata miksa precizeca efektivigo plirapidigos trejnadon je pliaj 2x.

Triageneracia NVLink por ebligi ege rapidajn multi-GPU-interagojn, triageneraciajn Ray Tracing-kernojn kaj specialiĝon kun maldensa matrica matematiko estas pliaj aspektoj de la Ampere-mikroarkitekturo .

Kvara Generacio:

Estonta eldono de la Hopper-mikroarkitekturo-bazita kvara generacio de Tensor Cores estas planita. La kvara generacio Tensor Cores en la venonta H100.

kiu estas atendita esti liberigita en marto 2022, povos trakti FP8-precizecaj formatoj kaj, laŭ NVIDIA, akcelos grandegajn lingvomodelojn "per miriga 30X". super la antaŭa generacio.”

RTX-grafika karto estasuzata por bildi grafikaĵojn tre rapide ĉar ĝi enhavas tensorkernojn.

La Diferenco Inter CUDA-kernoj kaj tensora kernoj

Tensorkernoj estas nuntempe limigitaj al Titan V kaj Tesla V100. La 5120 CUDA-kernoj sur ambaŭ GPU-oj havas maksimuman kapaciton de unu ununura precizeca multobliga operacio (ekzemple, en fp32: x += y * z) per GPU-horloĝo (ekz. Tesla V100 PCIe-frekvenco estas 1.38Gz).

Ĉiu tensorkerno funkcias sur 4×4 malgrandaj matricoj por malgrandaj matricoj. Per unu GPU-horloĝo, ĉiu tensora kerno povas kompletigi unu matrican multobligan akumulan operacion.

Ĝi multobligas du 4×4 FP16-matricojn kaj aldonas la 4×4 FP32-matricon kiu rezultigas la akumulilon (tio ankaŭ estas fp32 4×4-matrico).

Vidu ankaŭ: Kio estas la Diferenco Inter Ŝati Iun kaj Ŝati la Ideon de Iu? (Kiel Identigi) - Ĉiuj Diferencoj

Ĉar la eniga matricoj estas fp16 dum la multiplikaj rezultoj kaj akumulilo estas fp32, la algoritmo estas konata kiel miksita precizeco.

La ĝusta termino verŝajne estus nur "4×4 matricaj kernoj," sed la merkata teamo de NVIDIA elektis uzi "tensorkernojn".

Tensorkernoj plena klarigo mallonge

GPU-karto CUDA-kernoj 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 kaj896 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 1GB aŭ 2 GB

GPUoj kiuj enhavas CUDA-kernojn

Konkludo

  • CUDA kaj Tensor-kernoj estas produktoj, ambaŭ evoluigitaj de kompanio nomata Nvidia. CUDA signifas Compute Unified Device Architecture. Ĉi tiuj CUDA-kernoj ĉeestas en viaj GPUoj, saĝtelefonoj, kaj eĉ viaj aŭtoj.
  • Dum tensorkernoj, kiuj ankaŭ estis evoluigitaj de Nvidia, ankaŭ estas uzataj en GPUoj. Specialigitaj kernoj nomitaj "Tensor-kernoj" permesas miksitan precizecan trejnadon. La unua generacio de Tensor Cores ebligis trejni kun miksita precizeco kaj la numero-formato FP16.
  • Ĉi tio povus havi ĝis 12 fojojn pligrandigon de teraFLOP-trafluo por certaj GPU-oj. Int8, Int4, kaj Int1 estis aldonitaj al la listo de subtenataj Tensor Core-precizecoj.
  • Pro miksitaprecizaj trejnadproceduroj, la agado de la GPU estis pliigita ĝis 32 fojojn. Estonta eldono de la Hopper mikroarkitekturo-bazita kvara generacio de Tensor Cores estas planita.

Aliaj Artikoloj

    Mary Davis

    Mary Davis estas verkistino, enhavkreinto kaj fervora esploristo specialiĝanta pri kompara analizo pri diversaj temoj. Kun akademia grado en ĵurnalismo kaj pli ol kvin jaroj da sperto en la kampo, Mary havas pasion por liveri nepartian kaj rektajn informojn al siaj legantoj. Ŝia amo por skribo komenciĝis kiam ŝi estis juna kaj estis mova forto malantaŭ ŝia sukcesa kariero en skribo. La kapablo de Mary esplori kaj prezenti trovaĵojn en facile komprenebla kaj alloga formato ŝatis ŝin al legantoj ĉie en la mondo. Kiam ŝi ne skribas, Mary ĝuas vojaĝi, legi kaj pasigi tempon kun familio kaj amikoj.