Zum Hauptinhalt springen
NVIDIA GPUs für KI: Von CUDA zu Tensor Cores
#NVIDIA #GPU #CUDA #Tensor Cores #KI

NVIDIA GPUs für KI: Von CUDA zu Tensor Cores


Warum NVIDIA den KI-Markt dominiert und wie Tensor Cores das Training revolutioniert haben

8 Minuten Lesezeit

In den vorherigen Teilen haben wir TPUs und Apple Silicon kennengelernt – spezialisierte Lösungen für spezifische Einsätze. NVIDIA verfolgt einen anderen Weg: maximale Flexibilität bei hoher Leistung. Das Ergebnis ist eine marktbeherrschende Stellung, die weit über technische Überlegenheit hinausgeht.

Warum GPUs für KI?

Grafikkarten wurden für ein Problem entwickelt, das überraschend ähnlich zu KI ist: Millionen von Pixeln parallel berechnen.

Die Parallele zur Grafikberechnung

Bei der 3D-Grafik:

  • Jedes Pixel wird unabhängig berechnet
  • Dieselbe Operation auf verschiedene Daten (SIMD)
  • Hohe Bandbreite wichtiger als niedrige Latenz

Bei neuronalen Netzen:

  • Jedes Neuron wird unabhängig berechnet
  • Matrix-Multiplikationen sind massiv parallel
  • Hohe Bandbreite wichtiger als niedrige Latenz

Die Architektur, die für Spiele optimiert wurde, eignet sich zufällig perfekt für KI.

Der CUDA-Moment

2006 veröffentlichte NVIDIA CUDA (Compute Unified Device Architecture) – eine Programmiersprache, die GPUs für allgemeine Berechnungen öffnete.

Vor CUDA musste man GPU-Programme als “Shader” tarnen – so tun, als würde man Grafik berechnen. Mit CUDA konnte man direkt:

__global__ void matrixMul(float* A, float* B, float* C, int N) {
    int row = blockIdx.y * blockDim.y + threadIdx.y;
    int col = blockIdx.x * blockDim.x + threadIdx.x;
    
    float sum = 0.0f;
    for (int k = 0; k < N; k++) {
        sum += A[row * N + k] * B[k * N + col];
    }
    C[row * N + col] = sum;
}

Das war der Startschuss für GPU-Computing – und NVIDIA hatte einen Vorsprung von Jahren.

Die GPU-Architektur

Streaming Multiprocessors (SMs)

Eine NVIDIA GPU besteht aus vielen Streaming Multiprocessors:

GPU
├── SM 0
│   ├── CUDA Cores (für FP32/INT32)
│   ├── Tensor Cores (für Matrix-Ops)
│   ├── Register File
│   ├── Shared Memory
│   └── L1 Cache
├── SM 1
│   └── ...
├── ...
├── L2 Cache (gemeinsam)
└── HBM (High Bandwidth Memory)

Die H100 hat 132 SMs mit jeweils:

  • 128 CUDA Cores
  • 4 Tensor Cores (4. Generation)
  • 256 KB Register
  • 256 KB Shared Memory / L1 Cache

CUDA Cores vs. CPU Cores

Ein CPU-Kern ist ein Schweizer Taschenmesser:

  • Out-of-Order Execution
  • Branch Prediction
  • Große Caches
  • Optimiert für komplexe, sequentielle Aufgaben

Ein CUDA Core ist ein Skalpell:

  • In-Order Execution
  • Kein Branch Prediction
  • Minimale Caches
  • Optimiert für einfache, parallele Aufgaben

Eine H100 hat 16.896 CUDA Cores. Jeder einzelne ist viel schwächer als ein CPU-Kern – aber zusammen sind sie unschlagbar bei parallelen Workloads.

SIMT: Single Instruction, Multiple Threads

NVIDIA nennt sein Programmiermodell SIMT. Threads werden in Gruppen von 32 (einem “Warp”) ausgeführt:

  • Alle 32 Threads führen dieselbe Instruktion aus
  • Jeder Thread hat eigene Register und Daten
  • Bei Verzweigungen (if/else) werden beide Pfade nacheinander ausgeführt

Das bedeutet: Verzweigungen sind teuer. Code wie dieser ist problematisch:

if (threadIdx.x % 2 == 0) {
    // Pfad A
} else {
    // Pfad B
}

Halb der Warp wartet, während die andere Hälfte arbeitet. Für Matrix-Multiplikationen (keine Verzweigungen) ist das perfekt.

Tensor Cores: Der Game Changer

2017 führte NVIDIA mit der Volta-Architektur Tensor Cores ein – spezialisierte Einheiten für Matrix-Operationen.

Was Tensor Cores machen

Ein Tensor Core führt eine Matrix Multiply-Accumulate (MMA) Operation aus:

D = A × B + C

Wobei A, B, C, D kleine Matrizen sind (z.B. 4×4 oder 8×8).

Der Geschwindigkeitsvorteil

OperationCUDA CoresTensor CoresSpeedup
FP32 Matrix-Mul60 TFLOPS-Baseline
FP16 Matrix-Mul120 TFLOPS990 TFLOPS
INT8 Matrix-Mul-1.980 TOPS16×
FP8 Matrix-Mul-3.960 TFLOPS33×

(Werte für H100 SXM)

Wie funktionieren sie?

Tensor Cores sind im Prinzip kleine Systolic Arrays (wie in TPUs), aber:

  • Kleiner (4×4 statt 256×256)
  • Flexibler programmierbar
  • Integriert in die GPU-Architektur

Sie sind nicht “aufgepfropft”, sondern tief in die SM-Architektur integriert.

Transformer Engine

Mit der Hopper-Architektur (H100) kam die Transformer Engine:

  • Automatischer Wechsel zwischen FP8 und FP16
  • Optimiert für Attention-Berechnungen
  • Dynamische Skalierung der Präzision

Das ermöglicht FP8-Training ohne manuelles Tuning – ein großer Schritt für die Benutzerfreundlichkeit.

Speicherhierarchie

Die Speicherarchitektur ist entscheidend für KI-Performance.

HBM: High Bandwidth Memory

Moderne KI-GPUs nutzen HBM – gestapelte Speicherchips direkt auf dem Package:

GPUHBM-GenerationKapazitätBandbreite
A100HBM2e80 GB2,0 TB/s
H100 SXMHBM380 GB3,35 TB/s
H200HBM3e141 GB4,8 TB/s
B100HBM3e192 GB8 TB/s*

*Angekündigt

Zum Vergleich: DDR5 RAM erreicht ~50 GB/s. HBM ist 60-160× schneller.

Cache-Hierarchie

Register (pro Thread)     : ~256 KB pro SM, schnellst

Shared Memory / L1        : 256 KB pro SM, ~19 TB/s

L2 Cache                  : 50 MB (H100), ~12 TB/s

HBM                       : 80 GB, ~3,35 TB/s

Gute KI-Kernels maximieren die Nutzung von Registern und Shared Memory, um HBM-Zugriffe zu minimieren.

Das Roofline-Modell

Die Performance eines Kernels ist entweder:

Compute-bound: Mehr FLOPS würden helfen Memory-bound: Mehr Bandbreite würde helfen

Die meisten KI-Workloads sind memory-bound. Die Kunst ist, genug Berechnungen pro geladenem Byte zu machen.

Arithmetic Intensity = FLOPS / Bytes geladen

Matrix-Multiplikation hat hohe Arithmetic Intensity → gut für GPUs. Attention hat niedrige Arithmetic Intensity → oft memory-bound.

Ein Modell wie GPT-4 passt nicht auf eine GPU. Multi-GPU-Systeme sind Standard.

NVLink ist NVIDIAs proprietäre GPU-zu-GPU-Verbindung:

GenerationBandbreite (bidirektional)
NVLink 3.0 (A100)600 GB/s
NVLink 4.0 (H100)900 GB/s
NVLink 5.0 (B100)1.800 GB/s

Zum Vergleich: PCIe 5.0 x16 erreicht ~64 GB/s – NVLink ist 14-28× schneller.

NVSwitch

Für mehr als 2 GPUs verbindet NVSwitch alle GPUs in einem voll verbundenen Netzwerk:

    GPU 0 ←─→ GPU 1
      ↕   ╲ ╱   ↕
    GPU 2 ←─→ GPU 3
      ↕   ╱ ╲   ↕
    GPU 4 ←─→ GPU 5
      ↕   ╲ ╱   ↕
    GPU 6 ←─→ GPU 7

Ein DGX H100 System mit 8 GPUs erreicht so 900 GB/s zwischen beliebigen GPU-Paaren.

Skalierung über Server

Für Training über mehrere Server nutzt NVIDIA:

  • InfiniBand: Bis zu 400 Gbit/s pro Port
  • NVLink Network: NVLink über Kabel zwischen Servern

GPT-4 wurde vermutlich auf ~10.000+ GPUs trainiert, verbunden über mehrere Racks.

Das CUDA-Ökosystem

NVIDIAs wahrer Burggraben ist nicht die Hardware, sondern das Software-Ökosystem.

Bibliotheken

NVIDIA stellt optimierte Bibliotheken für alles:

  • cuBLAS: Lineare Algebra
  • cuDNN: Deep Learning Primitives
  • cuFFT: Fourier-Transformation
  • NCCL: Multi-GPU Kommunikation
  • TensorRT: Inferenz-Optimierung

Diese Bibliotheken nutzen Hardware-Features, die Dritte nicht kennen.

Framework-Integration

Alle großen Frameworks sind für NVIDIA optimiert:

  • PyTorch: CUDA-Backend, automatische Tensor Core Nutzung
  • TensorFlow: XLA-Compiler für NVIDIA GPUs
  • JAX: GPU-Beschleunigung out-of-the-box

Die Integration ist so tief, dass “GPU” und “NVIDIA” oft synonym verwendet werden.

Tooling

  • Nsight: Profiling und Debugging
  • CUDA-GDB: GPU-Debugging
  • Compute Sanitizer: Memory-Error-Erkennung

Kein anderer Hersteller bietet vergleichbare Entwicklertools.

H100 vs. A100: Die Evolution

Die H100 (Hopper) vs. A100 (Ampere) zeigt die Entwicklungsrichtung:

AspektA100H100Verbesserung
CUDA Cores6.91216.8962,4×
Tensor Cores4325281,2×
FP16 TFLOPS3129903,2×
FP8 TFLOPS-3.960Neu
HBM Bandbreite2,0 TB/s3,35 TB/s1,7×
NVLink600 GB/s900 GB/s1,5×
TDP400W700W1,75×

Die größten Sprünge: FP8-Support und deutlich mehr Tensor Core Performance.

Kosten und Verfügbarkeit

Hardware-Kosten

GPUListenpreisCloud-Preis/Stunde
RTX 4090~1.600€~0,50€
A100 80GB~15.000€~2-3€
H100 SXM~30.000€+~3-5€

Die Cloud-Preise variieren stark je nach Anbieter und Verfügbarkeit.

Das Verfügbarkeitsproblem

H100-GPUs sind chronisch ausverkauft. Wartezeiten von 6-12 Monaten sind normal. Das hat zu einem Markt geführt, in dem:

  • Cloud-Kapazitäten sofort ausgebucht sind
  • GPU-Reservierungen Jahre im Voraus gebucht werden
  • Startups nach GPU-Zugang statt Funding suchen

Alternativen zu NVIDIA

AMD MI300X

AMDs Antwort auf die H100:

  • 192 GB HBM3 (mehr als H100)
  • Konkurrenzfähige TFLOPS
  • ROCm statt CUDA (weniger ausgereift)

Das Hardware-Problem ist gelöst, das Software-Problem nicht.

Intel Gaudi

Intels KI-Beschleuniger:

  • Gute Preis-Leistung
  • Fokus auf Inferenz
  • Kleineres Ökosystem

Google TPU

Wie in Teil 3 beschrieben:

  • Nur über Google Cloud
  • Andere Programmiermodelle (JAX/XLA)
  • Sehr effizient für bestimmte Workloads

Der Ökosystem-Vorteil

All diese Alternativen kämpfen gegen CUDAs 18-jährigen Vorsprung:

  • Millionen Zeilen optimierter Code
  • Tausende trainierte Entwickler
  • Tiefe Framework-Integration
  • Umfangreiches Tooling

Hardware wechseln heißt oft: Code neu schreiben, Teams umschulen, Workflows ändern.

Für Entwickler und Unternehmen

Wann welche GPU?

RTX 4090 (Consumer)

  • Entwicklung und Prototyping
  • Finetuning kleiner Modelle
  • Inferenz bis ~13B Parameter

A100 (Datacenter, vorherige Gen)

  • Gute Verfügbarkeit
  • Ausreichend für viele Workloads
  • Geringere Kosten als H100

H100 (Datacenter, aktuell)

  • Großes Modelltraining
  • Höchste Inferenz-Durchsatz
  • Wenn Geld keine Rolle spielt

Cloud vs. On-Premise

Cloud-Vorteile:

  • Keine Vorabkosten
  • Skaliert nach Bedarf
  • Neueste Hardware verfügbar

On-Premise-Vorteile:

  • Bei hoher Auslastung günstiger
  • Volle Kontrolle
  • Keine Abhängigkeit

Faustregel: Ab ~50% Auslastung lohnt sich On-Premise.

Ausblick: Blackwell und darüber hinaus

Die B100 (Blackwell) bringt:

  • 2× mehr Transistoren
  • Deutlich mehr HBM
  • NVLink 5.0 mit 1,8 TB/s
  • Neue Tensor Core Generation

Der Trend: Mehr Speicher, mehr Bandbreite, mehr Tensor-Performance. Die Grenzen des Moore’schen Gesetzes werden durch Spezialisierung und Packaging-Innovationen (Chiplets, 3D-Stacking) umgangen.

NVIDIA bleibt der Standard – nicht weil die Hardware unschlagbar ist, sondern weil das Ökosystem alternativlos ist. Für die absehbare Zukunft bedeutet “KI entwickeln” in den meisten Fällen “auf NVIDIA entwickeln”.

Quellen