BLOG

Hvad er en CUDA-kerne, og hvordan fungerer den?

Sidst opdateret:

  Denne side blev automatisk oversat af DeepL. Switch to English

En CUDA-kerne er en af de små matematiske enheder i en NVIDIA GPU, der udfører det tunge arbejde for grafik og parallel beregning. Hver kerne findes i en større blok kaldet en Streaming Multiprocessor (SM), og på moderne GeForce "Blackwell" GPU'er indeholder hver SM 128 CUDA-kerner. Derfor ser du det samlede antal på 21.760 CUDA-kerner på en RTX 5090. Chippen har simpelthen mange SM'er, som hver er fyldt med disse kerner.

CUDA (NVIDIAs parallelle computerplatform) er softwaresiden af historien: Den gør det muligt for apps og rammer at sende massivt parallelle rendering-, AI- og simuleringsopgaver til disse kerner på en effektiv måde.

NVIDIA-Tesla-Module

Hvordan fungerer CUDA-kerner?

Tænk på en GPU som en fabrik designet til store opgaver. CUDA-kerner håndterer arbejde i warps-grupper32 tråde, der udfører den samme instruktion på forskellige data (en model, som NVIDIA kalder SIMT). Sådan kan GPU'er udføre tusindvis af operationer på én gang. Hver SM har schedulere, der holder mange warps i gang for at skjule hukommelsesforsinkelser og holde kernerne beskæftigede.

Et nyttigt mentalt billede:

  • CUDA-kerne = en individuel arbejdstager (udfører aritmetiske operationer som addition og multiplikation).
  • SM = et produktionsgulv med egne planlæggere, caches, specialfunktionsenheder, Tensor Core(s) osv.
  • GPU = hele fabrikken, hvor mange SM'er arbejder parallelt.

CUDA-kerner kontra CPU-kerner (og andre GPU-kerner)

  • Ikke CPU-kerner: En CUDA-kerne er en enklere aritmetisk bane, der er optimeret til gennemstrømning, ikke en stor, latenstilpasset CPU-kerne til generelle formål. GPU'er skaleres ved at have mange af disse små baner, der arbejder sammen. (CUDA's programmeringsvejledning forklarer dette gennemstrømningsorienterede design.)
  • Forskellig fra specialiserede GPU-kerner:
    • Tensor Cores er matrix-matematikmotorer, der supercharger AI/ML og funktioner som DLSS.
    • RT-kerner accelererer raytracing (BVH-gennemgang, stråle-/trekanttest).

Disse aflaster specifikke opgaver, så CUDA-kerner kan fokusere på skygge/beregning.

nvidia-workstation-rtx-pro-5000-og-1200x630

Billedkredit: NVIDIA

Betyder flere CUDA-kerner altid bedre ydeevne?

Normalt, men ikke alene. Arkitekturen har stor betydning. For eksempel fordoblede NVIDIAs Ampere-generation FP32-throughput pr. SM i forhold til Turing, så "pr. kerne"-effekten ændrede sig mellem generationerne. Ada udvidede også caches (især L2) betydeligt, hvilket øger mange arbejdsbelastninger uden at ændre antallet af kerner. Kort sagt: Det er ikke ens at sammenligne antallet af CUDA-kerner på tværs af forskellige generationer.

Andre vigtige faktorer:

  • Clockhastigheder og strømreserve (hvor hurtigt kernerne kører).
  • Hukommelsesbåndbredde og cache-størrelser (forsyning af kernerne).
  • Brug af Tensor/RT-kerner (AI og raytracing flytter arbejdet fra CUDA-kerner).
  • Drivere og software (hvor godt en app bruger GPU'en via CUDA).

Hvad gør CUDA-kerner egentlig i praksis?

  • Gaming/grafik: De kører shader-programmer (vertex, pixel, compute) under overfladen. RT-kerner håndterer de tunge ray tracing-trin, mens CUDA-kerner stadig udfører en masse shading og beregninger omkring dem.
  • Indholdsskabelse og simulering: Fysikløsere, støjfjernere, renderkerner, videoeffekter – mange er skrevet for at udnytte CUDA's parallelle model.
  • AI/ML: Tensoroperationer går til Tensor Cores, men en stor del af forbehandlingen, efterbehandlingen og ikke-matrixarbejdet kører stadig på CUDA-kerner.

Hvor mange CUDA-kerner har jeg brug for?

En venlig tommelfingerregel:

  • Gaming med høj FPS i 1080p–1440p: Se på hele GPU'en (arkitektur, klokfrekvenser, hukommelse, RT/Tensor-funktioner), ikke kun antallet af kerner. Benchmarks er vigtigere end det rene tal.
  • 4K eller tung ray tracing: Du får fordel af flere SM'er/CUDA-kerner og stærke RT/Tensor-blokke samt båndbredde og cache.
  • AI/computing: Antallet af kerner hjælper, men Tensor Core-kapacitet, VRAM-størrelse og hukommelsesbåndbredde er ofte afgørende for gennemløbshastigheden.

Hvis du vil have en hurtig kontrol af skalaen, har RTX 5090 21.760 CUDA-kerner, hvilket viser, hvordan NVIDIA tæller kerner pr. SM på tværs af mange SM'er. Men igen kommer ydelsesgevinsterne fra det samlede design, ikke kun antallet.

NVIDIA-Blackwell-Ultra-GB300

Billedkredit: NVIDIA

Har jeg brug for speciel software eller kabler? (CUDA's "HDMI til 4K")

Du behøver ikke et specielt kabel, men du skal have den rigtige softwarepakke. CUDA er NVIDIAs platform; apps bruger den via drivere, værktøjskasser og biblioteker. Mange populære applikationer og rammer er allerede bygget til at udnytte CUDA-acceleration, når dine NVIDIA-drivere og (når det er nødvendigt) CUDA Toolkit er installeret. Understøttede apps bruger det bare...

Hvilke GPU'er understøtter CUDA?

CUDA kører på CUDA-kompatible NVIDIA GPU'er på tværs af produktlinjer (GeForce/RTX til gaming og kreativitet, professionelle RTX og GPU'er til datacentre). Programmeringsvejledningen bemærker, at modellen kan skaleres på tværs af mange GPU-generationer og SKU'er. NVIDIA fører en liste over CUDA-kompatible GPU'er og deres beregningskapacitet.

Er en CUDA-kerne det samme som en "shader-kerne"?


I dagligdags GPU-sprog refererer "CUDA-kerner" på NVIDIA GPU'er til de programmerbare FP32/INT32 ALU'er, der bruges til skygge og generel beregning inden for hver SM.



Hvorfor er CUDA-kerneantal så forskellige på tværs af generationer?


Fordi arkitekturer udvikler sig. Ampere ændrede FP32-datapaths (mere arbejde pr. clock), og Ada reviderede caches, så ydeevnen ikke skaleres lineært med antallet af kerner.



Hvad er en warp egentlig?


En gruppe på 32 tråde, der udføres i takt på SM. Apps starter tusindvis af tråde; GPU'en planlægger dem som warps for at holde hardwaren beskæftiget.



Hjælper CUDA-kerner med AI?


Ja, men de store acceleratorer for moderne AI er Tensor Cores. CUDA-kerner håndterer stadig en masse af det omgivende arbejde i disse pipelines.