Vad är skillnaden mellan CUDA-kärnor och sensorkärnor (förklarat) - Alla skillnader

 Vad är skillnaden mellan CUDA-kärnor och sensorkärnor (förklarat) - Alla skillnader

Mary Davis

CUDA och Tensor cores är produkter som utvecklats av ett företag som heter Nvidia. Vad är CUDA-kärnor och Tensor cores? CUDA står för Compute Unified Device Architecture. CUDA-kärnorna finns i dina GPU:er, smartphones och till och med i dina bilar, som Nvidias utvecklare säger.

CUDA-kärnor är en parallell beräkningsplattform och ett gränssnitt för tillämpningsprogrammering (API) som gör det möjligt för programvara att använda specifika typer av grafikprocessorer (GPU:er) för allmän bearbetning.

Tensor Cores, som också har utvecklats av Nvidia, används också i GPU:er. Tensor Cores möjliggör beräkning med blandad precision och anpassar beräkningar dynamiskt för att öka genomströmningen med bibehållen noggrannhet.

Enkelt uttryckt är dessa kärnor en viktig del av GPU:erna i datorn för att utföra vissa beräkningar. CUDA-kärnor används för att multiplicera två tal och addera dem till ett annat tal.

Tensor core är samma sak, men med 4×4 matriser. Dessa beräkningar gör i princip grafik snabbare för dig.

Vad är CUDA?

Compute Unified Device Architecture, förkortat CUDA, som utvecklats av Nvidia och släpptes den 23 juni 2007, är en parallell beräkningsplattform och ett gränssnitt för tillämpningsprogrammering (API).

Det gör det möjligt för programvara att använda specifika typer av grafikprocessorer (GPU) för allmän bearbetning, en metod som kallas allmän beräkning på GPU:er (GPU).

CUDA är ett programvarulager som ger direkt tillgång till GPU:ns virtuella instruktionsuppsättning och parallella beräkningselement för att utföra beräkningskärnor. CUDA utvecklades för att fungera med olika programmeringsspråk, bland annat C, C++ och Fortran.

Möjligheten att arbeta med olika programmeringsspråk gör det lättare för specialister på parallellprogrammering att utnyttja GPU-resurser om vi skiljer det från tidigare API:er som Direct3D eller OpenGL, som kräver mer avancerade kunskaper i grafisk programmering.

GPU med CUDA stöder också programmeringsramar som OpenMP, OpenACC, OpenCL och HIP som kan kompilera sådan kod till CUDA. Det första namnet som användes för CUDA var en akronym för Compute Unified Device Architecture. Nvidia har dock senare släppt den vanligaste akronymen.

Ett kraftfullt Nvidia grafikkort GTX 1080 Ti

Mer om CUDA

Som en specialiserad datorprocessor uppfyller grafikbehandlingsenheten (GPU) behoven för beräkningsintensiva 3D-grafikarbetsbelastningar i realtid.

Omkring 2012 utvecklades GPU:erna till mycket parallella flerkärniga system som möjliggör effektiv databehandling av stora block.

Vid parallell behandling av stora block av data är denna konstruktion överlägsen de allmänna centrala bearbetningsenheterna (CPU:er) för algoritmer, t.ex:

  • kryptografiska hash-funktioner.
  • maskininlärning
  • molekyldynamiska simuleringar
  • fysikmotorer
  • sorteringsalgoritmer

Användning av CUDA-arkitekturen nu och i framtiden

  • Snabbare rendering av 3D-grafik
  • Snabbare interkonvertering av videofilformat
  • Snabbare kryptering, dekryptering och komprimering
  • Bioinformatik, t.ex. NGS DNA-sekvensering BarraCUDA
  • Distribuerade beräkningar, t.ex. för att förutsäga proteiners ursprungliga konformation.
  • Simuleringar av medicinska analyser, t.ex. virtuell verklighet baserad på CT- och MRI-bilder.
  • Fysiska simuleringar, särskilt inom strömningsdynamik.
  • Träning av neurala nätverk i problem med maskininlärning
  • Ansiktsigenkänning
  • Projekt för distribuerade datorer, t.ex. [email protected] och andra projekt som använder BOINC.
  • Molekylär dynamik
  • Utvinning av kryptovalutor
  • Programvara för struktur från rörelse (SfM)

Vad är en sensorkärna?

Specialiserade kärnor som kallas Tensor Cores gör det möjligt att träna med blandad precision. Den första generationen av dessa specialiserade kärnor gör detta med en algoritm för multiplikation och addering som gör det möjligt att multiplicera och addera två 4 x 4 FP16-matriser till en 4 x 4 FP16- eller FP32-matris.

Det slutliga resultatet blir FP32 med endast en liten förlust av precision, och blandad precisionsberäkning betecknas som sådan även om matriserna som matriser kan vara FP16 med låg precision.

I praktiken påskyndar detta beräkningarna avsevärt utan att det påverkar modellens slutliga effektivitet. Denna kapacitet har utökats med senare mikroarkitekturer till ännu mindre exakta datortalsrepresentationer.

Den första generationen introducerades med Volta-mikroarkitekturen från och med V100, och med varje ny generation blev fler format med numerisk precision tillgängliga för beräkningar med nya GPU-mikroarkitekturer.

Vi kommer att tala om hur Tensor Cores kapacitet och funktionalitet har förändrats och förbättrats med varje mikroarkitekturgeneration i avsnittet som följer.

En grafiskt återgiven bild som gjorts av en Titan V.

Hur fungerar sensorkärnor?

Första generationen:

Volta GPU-mikroarkitekturen ingick i den första generationen av Tensor Cores. Dessa kärnor gjorde det möjligt att träna med blandad precision och FP16-talsformatet.

Detta kan ge en upp till 12 gånger större teraFLOP-kapacitet för vissa GPU:er. 640 kärnor i toppmodellen V100 ger upp till 5 gånger högre prestanda jämfört med Pascal GPU:erna i den föregående generationen.

Andra generationen:

I och med Turing GPU:erna introducerades den andra generationen av Tensor Cores. Int8, Int4 och Int1 lades till i listan över stödda Tensor Core-precisioner, som tidigare var begränsade till FP16.

På grund av träningsprocedurer med blandad precision ökade GPU:ns prestanda med upp till 32 gånger jämfört med Pascal GPU:er.

Tredje generationen:

Arkitekturen i en Ampere GPU utökar Volta- och Turing-mikroarkitekturernas tidigare framsteg genom att lägga till stöd för FP64-, TF32- och bfloat16-precisioner.

Utbildning och inferenser för djupinlärning påskyndas mycket mer av dessa format med extra precision. TF32-formatet fungerar till exempel på samma sätt som FP32, men garanterar också upp till 20 gånger snabbare hastighet utan att ändra någon kod.

Med bara några få rader kod kan du med hjälp av automatisk tillämpning av blandad precision påskynda träningen med ytterligare 2 gånger.

Tredje generationens NVLink för att möjliggöra extremt snabba interaktioner mellan flera GPU:er, tredje generationens Ray Tracing-kärnor och specialisering på sparsam matrismatematik är ytterligare aspekter av Ampere-mikroarkitekturen. .

Fjärde generationen:

En framtida version av den Hopper-mikroarkitekturbaserade fjärde generationen av Tensor Cores planeras. Den fjärde generationen Tensor Cores i nästa H100.

som förväntas släppas i mars 2022, kommer att kunna hantera FP8-precisionsformat och enligt NVIDIA kommer den att påskynda enorma språkmodeller "med en häpnadsväckande 30x jämfört med den föregående generationen".

Ett RTX-grafikkort används för att rendera grafik mycket snabbt eftersom det innehåller tensor-kärnor.

Se även: Vad är skillnaden mellan internationella och multinationella företag? - Alla skillnader

Skillnaden mellan CUDA-kärnor och sensorkärnor

Tensorkärnor är för närvarande begränsade till Titan V och Tesla V100. De 5120 CUDA-kärnorna på båda GPU:erna har en maximal kapacitet på en multiplikations- och ackumuleringsoperation med enkel precision (t.ex. i fp32: x += y * z) per GPU-klocka (t.ex. Tesla V100 PCIe-frekvens är 1,38 GHz).

Varje tensor core arbetar med 4×4 små matriser för små matriser. Per en GPU-klocka kan varje tensor core utföra en matrismultiplikations- och ackumuleringsoperation.

Den multiplicerar två 4×4 FP16-matriser och adderar 4×4 FP32-matrisen som resulterar i ackumulatorn (som också är en fp32 4×4-matris).

Eftersom inmatningsmatriserna är fp16 medan multiplikationsresultaten och ackumulatorn är fp32, kallas algoritmen för blandad precision.

Den korrekta termen skulle troligen vara "4×4 matriskärnor", men NVIDIAs marknadsföringsteam valde att använda "tensor-kärnor".

Se även: Icke-platonisk vs platonisk kärlek: en snabb jämförelse - alla skillnader

Tensor cores fullständig förklaring i ett nötskal

GPU-kort CUDA-kärnor 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 och 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 som innehåller CUDA-kärnor

Slutsats

  • CUDA och Tensor cores är produkter som båda har utvecklats av företaget Nvidia. CUDA står för Compute Unified Device Architecture. Dessa CUDA-kärnor finns i dina GPU:er, smartphones och till och med i dina bilar.
  • Tensor cores, som också utvecklats av Nvidia, används också i GPU:er. Specialiserade kärnor som kallas "Tensor cores" gör det möjligt att träna med blandad precision. Den första generationen av Tensor Cores gjorde det möjligt att träna med blandad precision och FP16-talsformatet.
  • Detta kan leda till en ökning av teraFLOP-genomströmningen med upp till 12 gånger för vissa GPU:er. Int8, Int4 och Int1 har lagts till i listan över Tensor Core-precisioner som stöds.
  • På grund av träningsprocedurer med blandad precision ökade GPU:ns prestanda med upp till 32 gånger. En framtida lansering av den Hopper-mikroarkitekturbaserade fjärde generationen av Tensor Cores planeras.

Andra artiklar

    Mary Davis

    Mary Davis är en författare, innehållsskapare och ivrig forskare som specialiserat sig på jämförelseanalyser i olika ämnen. Med en examen i journalistik och över fem års erfarenhet inom området har Mary en passion för att leverera opartisk och okomplicerad information till sina läsare. Hennes kärlek till att skriva började när hon var ung och har varit en drivande kraft bakom hennes framgångsrika karriär inom skrivandet. Marys förmåga att undersöka och presentera rön i ett lättförståeligt och engagerande format har gjort henne kär hos läsare över hela världen. När hon inte skriver tycker Mary om att resa, läsa och umgås med familj och vänner.