Hvad er forskellen mellem CUDA- og Tensor Cores (forklaret) - Alle forskelle

 Hvad er forskellen mellem CUDA- og Tensor Cores (forklaret) - Alle forskelle

Mary Davis

CUDA- og Tensor-kerner er produkter, der er udviklet af et firma ved navn Nvidia. Hvad er CUDA-kerner og Tensor-kerner? CUDA står for Compute Unified Device Architecture. CUDA-kerner findes i dine GPU'er, smartphones og endda i dine biler, som Nvidia-udviklerne siger det.

CUDA-kerner er en parallel computerplatform og en API (Application Programming Interface), der gør det muligt for software at anvende specifikke typer grafikprocessorenheder (GPU'er) til generel behandling.

Tensor cores, som også er udviklet af Nvidia, anvendes også i GPU'er. Tensor cores muliggør beregning med blandet præcision og tilpasser beregninger dynamisk for at øge gennemstrømningen og samtidig bevare nøjagtigheden.

Med enkle ord er disse kerner en vigtig del af GPU'erne i din pc til at udføre visse beregninger. CUDA-kerner bruges til at gange to tal og lægge dem sammen med et andet tal.

Tensor core er det samme, men med 4×4 matricer. Disse beregninger gør i princippet grafik hurtigere for dig.

Hvad er CUDA?

Compute Unified Device Architecture, forkortet CUDA, der er udviklet af Nvidia og blev frigivet den 23. juni 2007, er en platform til parallel databehandling og en API (Application Programming Interface).

Det gør det muligt for software at bruge specifikke typer af grafikprocessorenheder (GPU'er) til generel behandling, en metode, der kaldes generel beregning på GPU'er (GPU).

CUDA er et softwarelag, der giver direkte adgang til GPU'ens virtuelle instruktionssæt og parallelle beregningselementer til udførelse af beregningskerner. CUDA blev udviklet til at fungere med forskellige programmeringssprog, herunder C, C++ og Fortran.

Muligheden for at arbejde med forskellige programmeringssprog gør det lettere for specialister i parallelprogrammering at udnytte GPU-ressourcerne, hvis vi adskiller det fra tidligere API'er som Direct3D eller OpenGL, som kræver mere avancerede færdigheder inden for grafisk programmering.

GPU'er med CUDA understøtter også programmeringsrammer som OpenMP, OpenACC, OpenCL og HIP, som kan kompilere en sådan kode til CUDA. Det første navn, der blev brugt for CUDA, var en forkortelse for Compute Unified Device Architecture. Nvidia har dog senere droppet det almindeligt anvendte akronym.

Et kraftfuldt Nvidia-grafikkort GTX 1080 Ti

Mere om CUDA

Som en specialiseret computerprocessor opfylder grafikprocessorenheden (GPU) behovene i realtids- og beregningskrævende 3D-grafikarbejdsbelastninger.

Omkring 2012 udviklede GPU'er sig og blev til meget parallelle multi-core-systemer, der muliggjorde effektiv databehandling af store blokke.

Når store blokke af data behandles parallelt, er dette design bedre end generelle CPU'er til algoritmer som f.eks:

  • kryptografiske hash-funktioner
  • maskinlæring
  • molekylærdynamiske simuleringer
  • fysikmotorer
  • sorteringsalgoritmer

Anvendelse af CUDA-arkitekturen nu og i fremtiden

  • Accelereret gengivelse af 3D-grafik
  • Accelereret interkonvertering af videofilformater
  • Accelereret kryptering, dekryptering og komprimering
  • Bioinformatik, f.eks. NGS DNA-sekventering BarraCUDA
  • Distribuerede beregninger, f.eks. forudsigelse af proteiners oprindelige konformation
  • Simuleringer af medicinske analyser, f.eks. virtual reality baseret på CT- og MRI-skanningsbilleder
  • Fysiske simuleringer, især inden for væskedynamik
  • Træning af neurale netværk i forbindelse med maskinlæringsproblemer
  • Ansigtsgenkendelse
  • Distributed computing-projekter, som f.eks. [email protected] og andre projekter, der bruger BOINC
  • Molekylær dynamik
  • Udvinding af kryptovalutaer
  • Software til struktur fra bevægelse (SfM)

Hvad er en censorkerne?

Specialiserede kerner kaldet Tensor Cores giver mulighed for træning med blandet præcision. Disse specialiserede kerners første generation gør dette med en fusioneret multiplikations-additionsalgoritme. Dette gør det muligt at multiplicere og tilføje to 4 x 4 FP16-matricer til en 4 x 4 FP16- eller FP32-matrice.

Det endelige resultat vil være FP32 med kun et lille tab af præcision, og beregning med blandet præcision betegnes som sådan, selv om inputmatricerne kan være FP16-matricer med lav præcision.

I praksis fremskynder dette beregningerne betydeligt med ringe indflydelse på modellens endelige effektivitet. Denne kapacitet er blevet udvidet af senere mikroarkitekturer til endnu mindre præcise computertalrepræsentationer.

Den første generation blev introduceret med Volta-mikroarkitekturen fra og med V100, og med hver generation blev der stillet flere talpræcisionsformater til rådighed til beregning med nye GPU-mikroarkitekturer.

Vi vil tale om, hvordan Tensor Cores' kapacitet og funktionalitet har ændret og forbedret sig med hver mikroarkitekturgeneration i det følgende afsnit.

Et grafisk gengivet billede, der er lavet af en Titan V

Hvordan fungerer tensorkerner?

Første generation:

Volta GPU-mikroarkitekturen var inkluderet i den første generation af Tensor Cores. Disse kerner gjorde det muligt at træne med blandet præcision og FP16-tallene.

Dette kan give op til 12 gange større teraFLOP-gennemstrømning for visse GPU'er. 640 kerner i V100-topmodellen giver op til 5 gange større ydeevne i forhold til Pascal GPU'erne i den tidligere generation.

Anden generation:

Med indførelsen af Turing GPU'er blev anden generation af Tensor Cores introduceret. Int8, Int4 og Int1 blev tilføjet til listen over understøttede Tensor Core-præcisioner, som tidligere var begrænset til FP16.

På grund af træningsprocedurer med blandet præcision blev GPU'ens ydeevne øget med op til 32 gange sammenlignet med Pascal GPU'er.

Tredje generation:

Arkitekturen i en Ampere GPU udvider Volta- og Turing-mikroarkitekturernes tidligere fremskridt ved at tilføje understøttelse af FP64-, TF32- og bfloat16-præcisioner.

Uddannelse af dyb læring og inferensaktiviteter accelereres meget mere af disse formater med ekstra præcision. TF32-formatet fungerer f.eks. på samme måde som FP32 og garanterer samtidig op til 20 gange hurtigere hastighed uden at ændre nogen kode.

Med blot et par linjer kode kan den automatiske implementering af blandet præcision fremskynde træningen med yderligere 2x.

Se også: Hvad er forskellen mellem Hz og fps?60fps - 144Hz skærm VS. 44fps - 60Hz skærm - Alle forskelle

Tredje generation af NVLink for at muliggøre lynhurtige multi-GPU-interaktioner, tredje generation af Ray Tracing-kerner og specialisering med sparsom matrixmatematik er yderligere aspekter af Ampere-mikroarkitekturen .

Fjerde generation:

Der er planlagt en fremtidig udgivelse af den Hopper-mikroarkitekturbaserede fjerde generation af Tensor Cores. Den fjerde generation af Tensor Cores i den næste H100.

som forventes at blive frigivet i marts 2022, vil kunne håndtere FP8-præcisionsformater og vil ifølge NVIDIA accelerere store sprogmodeller "med en forbløffende 30 gange hurtigere end den tidligere generation".

Et RTX-grafikkort bruges til at gengive grafik meget hurtigt, da det indeholder tensor-kerner.

Forskellen mellem CUDA-kerner og censorkerner

Tensorkerner er i øjeblikket begrænset til Titan V og Tesla V100. De 5120 CUDA-kerner på begge GPU'er har en maksimal kapacitet på én enkelt præcisionsmultiplikator-akkumulatoroperation (f.eks. i fp32: x += y * z) pr. GPU-ur (f.eks. er Tesla V100 PCIe-frekvensen 1,38 GHz).

Hver tensorkerne opererer med 4×4 små matricer til små matricer. pr. GPU-ur kan hver tensorkerne gennemføre én matrixmultiplikations-akkumuleringsoperation.

Den multiplicerer to 4×4 FP16-matricer og tilføjer den 4×4 FP32-matrice, der resulterer i akkumulatoren (som også er en fp32 4×4-matrice).

Fordi indgangsmatricerne er fp16, mens multiplikationsresultaterne og akkumulatoren er fp32, er algoritmen kendt som en algoritme med blandet præcision.

Se også: Hvad er forskellen mellem Bruce Banner og David Banner (forklaret) - Alle forskelle

Det korrekte udtryk ville sandsynligvis være "4×4 matrixkerner", men NVIDIAs marketingteam valgte at bruge "tensor cores".

Tensor cores - en kort forklaring i en nøddeskal

GPU-kort CUDA-kerner 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 og 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 eller 2 GB

GPU'er, der indeholder CUDA-kerner

Konklusion

  • CUDA- og Tensor-kerner er produkter, der begge er udviklet af et firma ved navn Nvidia. CUDA står for Compute Unified Device Architecture. Disse CUDA-kerner findes i dine GPU'er, smartphones og endda i dine biler.
  • Mens tensor cores, som også blev udviklet af Nvidia, også anvendes i GPU'er. Specialiserede kerner kaldet "Tensor cores" gør det muligt at træne med blandet præcision. Den første generation af Tensor Cores gjorde det muligt at træne med blandet præcision og FP16-talformatet.
  • Dette kan give op til 12 gange større teraFLOP-gennemløb for visse GPU'er. Int8, Int4 og Int1 blev føjet til listen over understøttede Tensor Core-præcisioner.
  • På grund af træningsprocedurer med blandet præcision blev GPU'ens ydeevne forøget med op til 32 gange. Der er planlagt en fremtidig udgivelse af den Hopper-mikroarkitekturbaserede fjerde generation af Tensor Cores.

Andre artikler

    Mary Davis

    Mary Davis er en forfatter, indholdsskaber og ivrig forsker med speciale i sammenligningsanalyse om forskellige emner. Med en grad i journalistik og over fem års erfaring på området, har Mary en passion for at levere upartisk og ligetil information til sine læsere. Hendes kærlighed til at skrive begyndte, da hun var ung og har været en drivkraft bag hendes succesfulde karriere som forfatter. Marys evne til at researche og præsentere resultater i et letforståeligt og engagerende format har gjort hende elsket af læsere over hele verden. Når hun ikke skriver, nyder Mary at rejse, læse og tilbringe tid med familie og venner.