Wat is het verschil tussen CUDA cores en Tensor cores (uitgelegd) - All The Differences

 Wat is het verschil tussen CUDA cores en Tensor cores (uitgelegd) - All The Differences

Mary Davis

CUDA en Tensor cores zijn producten ontwikkeld door een bedrijf genaamd Nvidia. Dus wat zijn CUDA cores en Tensor cores? CUDA staat voor Compute Unified Device Architecture. De CUDA cores zijn aanwezig in uw GPU's, smartphones en zelfs uw auto's, zoals de ontwikkelaars van Nvidia zeggen.

CUDA-kernen zijn een parallel rekenplatform en application programming interface (API) waarmee software gebruik kan maken van specifieke typen grafische verwerkingseenheden (GPU's) voor algemene verwerking.

Terwijl tensor cores, eveneens ontwikkeld door Nvidia, ook worden gebruikt in GPU's. Tensor cores maken mixed-precision computing mogelijk, waarbij berekeningen dynamisch worden aangepast om de verwerkingscapaciteit te verhogen met behoud van nauwkeurigheid.

Eenvoudig gezegd zijn deze kernen een belangrijk onderdeel van de GPU's in uw pc om bepaalde berekeningen uit te voeren. CUDA-kernen worden gebruikt om twee getallen te vermenigvuldigen en op te tellen bij een ander getal.

Terwijl Tensor core hetzelfde is, maar met 4×4 matrices. Deze berekeningen renderen in principe sneller graphics voor u.

Wat is CUDA?

Compute Unified Device Architecture, kortweg CUDA, ontwikkeld door Nvidia, uitgebracht op 23 juni 2007, is een parallel rekenplatform en een application programming interface (API).

Daardoor kan software specifieke typen grafische verwerkingseenheden (GPU's) gebruiken voor algemene verwerking, een methode die bekend staat als general-purpose computing on GPU's (GPU).

CUDA is een softwarelaag die directe toegang biedt tot de virtuele instructieset en parallelle rekenelementen van de GPU voor de uitvoering van rekenkernen. CUDA is ontwikkeld om te werken met verschillende programmeertalen, waaronder C, C++ en Fortran.

De mogelijkheid om met verschillende programmeertalen te werken maakt het voor specialisten in parallelle programmering gemakkelijker om gebruik te maken van GPU-resources, als we het onderscheiden van vroegere API's zoals Direct3D of OpenGL, waarvoor je een meer geavanceerde vaardigheid in grafische programmering moet hebben.

GPU met CUDA ondersteunt ook programmeringskaders, zoals OpenMP, OpenACC, OpenCL, en ook HIP, die dergelijke code kan compileren naar CUDA. De eerste naam die voor CUDA werd gebruikt was een acroniem voor Compute Unified Device Architecture. Nvidia heeft later echter het algemeen gebruikte acroniem laten vallen.

Een krachtige Nvidia grafische kaart GTX 1080 Ti

Meer over CUDA

Als gespecialiseerde computerprocessor voorziet de grafische verwerkingseenheid (GPU) in de behoeften van realtime, rekenintensieve 3D grafische werklasten.

Rond 2012 zijn GPU's geëvolueerd tot zeer parallelle multi-core systemen die effectieve gegevensverwerking voor grote blokken mogelijk maken.

Bij het parallel verwerken van enorme gegevensblokken is dit ontwerp superieur aan algemene centrale verwerkingseenheden (CPU's) voor algoritmen, zoals:

  • cryptografische hashfuncties
  • machinaal leren
  • moleculaire dynamica simulaties
  • fysische motoren
  • sorteeralgoritmen

Gebruik van de CUDA-architectuur nu en in de toekomst

  • Versnelde rendering van 3D graphics
  • Versnelde interconversie van videobestandsformaten
  • Versnelde versleuteling, ontsleuteling en compressie
  • Bio-informatica, bv. NGS DNA-sequencing BarraCUDA
  • Gedistribueerde berekeningen, zoals het voorspellen van de natieve conformatie van eiwitten
  • Medische analysesimulaties, bijvoorbeeld virtual reality op basis van CT- en MRI-scanbeelden.
  • Fysische simulaties, met name in de vloeistofdynamica
  • Neurale netwerktraining bij machinaal leren
  • Gezichtsherkenning
  • Gedistribueerde computerprojecten, zoals [email protected] en andere projecten die gebruik maken van BOINC.
  • Moleculaire dynamica
  • Het delven van cryptocurrencies
  • Structuur uit beweging (SfM) software

Wat is een sensorkern?

Gespecialiseerde cores genaamd Tensor Cores maken mixed-precision training mogelijk. De eerste generatie van deze gespecialiseerde cores doet dit met een fused multiply-add algoritme. Dit maakt het mogelijk om twee 4 x 4 FP16 matrices te vermenigvuldigen en toe te voegen aan een 4 x 4 FP16 of FP32 matrix.

Het uiteindelijke resultaat zal FP32 zijn met slechts een gering verlies aan precisie, gemengde precisie rekenen wordt als zodanig aangeduid, ook al kunnen de input matrices lage precisie FP16 zijn.

In de praktijk versnelt dit de berekeningen aanzienlijk met weinig invloed op de uiteindelijke effectiviteit van het model. Deze capaciteit is door latere microarchitecturen uitgebreid tot nog minder precieze computer getalvoorstellingen.

De eerste generatie werd geïntroduceerd met de Volta-microarchitectuur vanaf V100; met elke nieuwe generatie GPU-microarchitectuur kwamen meer computergestuurde getalprecisieformaten beschikbaar voor berekeningen.

Hoe de capaciteit en functionaliteit van Tensor Cores zijn veranderd en verbeterd met elke generatie microarchitectuur zullen we in het volgende deel bespreken.

Een grafisch weergegeven beeld gemaakt door een Titan V

Hoe werken Tensor Cores?

Eerste generatie:

De Volta GPU-microarchitectuur werd meegeleverd met de eerste generatie Tensor Cores. Deze cores maakten het mogelijk te trainen met gemengde precisie en het FP16-getallenformaat.

Dit kan voor bepaalde GPU's een 12x hogere teraFLOP-doorvoer opleveren. De 640 kernen van de topklasse V100 zorgen voor een 5x hogere prestatiesnelheid dan de Pascal GPU's van de vorige generatie.

Tweede generatie:

Met de introductie van Turing GPU's werd de tweede generatie Tensor Cores geïntroduceerd. Int8, Int4 en Int1 werden toegevoegd aan de lijst van ondersteunde Tensor Core precisies, die voorheen beperkt waren tot FP16.

Zie ook: Verschil tussen OptiFree Replenish ontsmettingsoplossing en OptiFree Pure Moist ontsmettingsoplossing (onderscheiden) - Alle verschillen

Door de gemengde precisie trainingsprocedures werd de prestatiedoorvoer van de GPU tot 32 keer verhoogd in vergelijking met Pascal GPU's.

Derde generatie:

De architectuur in een Ampere GPU breidt de eerdere vooruitgang van de Volta en Turing microarchitecturen uit door ondersteuning toe te voegen voor FP64, TF32 en bfloat16 precisies.

Deep learning-training en inferentieactiviteiten worden veel sneller door deze extra precisieformaten. Het TF32-formaat werkt bijvoorbeeld op dezelfde manier als FP32, maar garandeert ook tot 20x snellere resultaten zonder de code te wijzigen.

Met slechts een paar regels code versnelt de automatische uitvoering van gemengde precisie de training met nog eens 2x.

De derde generatie NVLink om razendsnelle multi-GPU interacties mogelijk te maken, de derde generatie Ray Tracing cores en specialisatie met sparse matrix wiskunde zijn bijkomende aspecten van de Ampere microarchitectuur. .

Vierde generatie:

Een toekomstige release van de op de Hopper-microarchitectuur gebaseerde vierde generatie Tensor Cores is gepland. De vierde generatie Tensor Cores in de volgende H100.

die naar verwachting in maart 2022 wordt uitgebracht, kan FP8-precisieformaten aan en zal volgens NVIDIA enorme taalmodellen versnellen "met een verbazingwekkende 30X ten opzichte van de vorige generatie".

Een RTX grafische kaart wordt gebruikt voor het zeer snel renderen van graphics, omdat het tensor cores bevat.

Het verschil tussen CUDA-cores en Tensor-cores

Tensor cores zijn momenteel beperkt tot Titan V en Tesla V100. De 5120 CUDA cores op beide GPU's hebben een maximale capaciteit van één enkele precisie multiply-accumulate operatie (bijvoorbeeld in fp32: x += y * z) per GPU klok (Tesla V100 PCIe frequentie is bijvoorbeeld 1.38Gz).

Elke tensorkern werkt op 4×4 kleine matrices voor kleine matrices. Per één GPU-klok kan elke tensorkern één matrixvermenigvuldigings-accumuleerbewerking voltooien.

Zie ook: Marvel's Mutants VS Inhumans: Wie is sterker? - Alle verschillen.

Het vermenigvuldigt twee 4×4 FP16-matrices en telt de 4×4 FP32-matrix op die resulteert in de accumulator (die ook een fp32 4×4-matrix is).

Omdat de ingangsmatrices fp16 zijn en de vermenigvuldigingsresultaten en de accumulator fp32, staat het algoritme bekend als gemengde precisie.

De juiste term zou waarschijnlijk gewoon "4×4 matrix cores" zijn, maar het marketingteam van NVIDIA koos ervoor om "tensor cores" te gebruiken.

Tensor cores volledige uitleg in een notendop

GPU-kaart CUDA-kernen 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 en 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 of 2 GB

GPU's die CUDA-kernen bevatten

Conclusie

  • CUDA en Tensor cores zijn producten, beide ontwikkeld door een bedrijf genaamd Nvidia. CUDA staat voor Compute Unified Device Architecture. Deze CUDA cores zijn aanwezig in uw GPU's, smartphones en zelfs in uw auto's.
  • Terwijl tensor cores, die ook door Nvidia zijn ontwikkeld, ook in GPU's worden gebruikt. Gespecialiseerde cores, "Tensor cores" genoemd, maken training met gemengde precisie mogelijk. De eerste generatie Tensor cores maakte het mogelijk te trainen met gemengde precisie en het FP16 getalformaat.
  • Dit kan de teraFLOP-doorvoer voor bepaalde GPU's met 12x verhogen. Int8, Int4 en Int1 werden toegevoegd aan de lijst van ondersteunde Tensor Core-precisies.
  • Als gevolg van gemengde precisie trainingsprocedures werden de prestaties van de GPU tot 32 keer verhoogd. Een toekomstige release van de op de Hopper-microarchitectuur gebaseerde vierde generatie Tensor Cores is gepland.

Andere artikelen

    Mary Davis

    Mary Davis is een schrijver, maker van inhoud en een fervent onderzoeker, gespecialiseerd in vergelijkingsanalyse over verschillende onderwerpen. Met een graad in journalistiek en meer dan vijf jaar ervaring in het veld, heeft Mary een passie voor het leveren van onpartijdige en duidelijke informatie aan haar lezers. Haar liefde voor schrijven begon toen ze jong was en is een drijvende kracht geweest achter haar succesvolle schrijfcarrière. Mary's vermogen om onderzoek te doen en bevindingen te presenteren in een gemakkelijk te begrijpen en boeiende vorm heeft haar geliefd gemaakt bij lezers over de hele wereld. Als ze niet aan het schrijven is, houdt Mary van reizen, lezen en tijd doorbrengen met familie en vrienden.