Skip to content
BotServBotServ
DockerGPUNVIDIAROCmAMD

GPU in Docker nutzen

NVIDIA und AMD GPUs in Docker-Container einbinden. Container Toolkit, runtime, Compose und Fehlerbehebung.

S

schutzgeist

2 min read
GPU in Docker nutzen

GPU in Docker nutzen

Was dieser Artikel über GPU in Docker behandelt

  • Warum GPUs in Docker wichtig sind.
  • NVIDIA Container Toolkit installieren.
  • ROCm und AMD-GPUs.
  • Docker-Run und Compose-Konfiguration.
  • Fehlerbehebung bei GPU-Erkennung.

Einleitung: GPU in Docker nutzen

Viele KI- und Rechenanwendungen brauchen eine GPU. Docker isoliert Anwendungen, aber dank moderner Container-Technologien kann man GPUs trotzdem in Container durchreichen. NVIDIA bietet dafür das NVIDIA Container Toolkit, AMD setzt auf ROCm. Wer GPU in Docker richtig einbindet, kann Container-Anwendungen mit voller Grafikbeschleunigung betreiben.

Dieser Artikel erklärt, wie NVIDIA- und AMD-GPUs in Docker verfügbar gemacht werden.

Wichtige Begriffe

  • NVIDIA Container Toolkit: Treiber und Runtime für Docker.
  • ROCm: AMDs Open-Source-Plattform für GPU-Computing.
  • runtime: Container-Runtime, die GPU freigibt.
  • driver: Treiber auf dem Host.
  • CUDA: NVIDIAs Compute-Plattform.
  • HIP: AMDs Gegenstück zu CUDA.
  • /dev/nvidia0: NVIDIA-Gerätedatei.
  • /dev/dri: AMD/Intel-Gerätedateien.
  • capabilities: Fähigkeiten des GPU-Devices.

NVIDIA vorbereiten

  1. NVIDIA-Treiber installieren.
  2. NVIDIA Container Toolkit installieren:
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \
  sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

NVIDIA testen

docker run --rm --gpus all nvidia/cuda:12-base nvidia-smi

Docker Run mit GPU

docker run --rm --gpus all \
  -v ollama:/root/.ollama \
  -p 11434:11434 \
  ollama/ollama

Docker Compose für NVIDIA

services:
  ollama:
    image: ollama/ollama
    ports:
      - "11434:11434"
    volumes:
      - ollama:/root/.ollama
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: 1
              capabilities: [gpu]

volumes:
  ollama:

AMD/ROCm vorbereiten

  1. AMDGPU-Treiber installieren.
  2. ROCm-Pakete installieren.
  3. Container mit /dev/dri und /dev/kfd starten.

AMD testen

docker run --rm --device /dev/kfd --device /dev/dri \
  ollama/ollama:rocm ollama --version

Docker Compose für AMD

services:
  ollama:
    image: ollama/ollama:rocm
    devices:
      - /dev/kfd
      - /dev/dri
    volumes:
      - ollama:/root/.ollama
    ports:
      - "11434:11434"

volumes:
  ollama:

Welche GPUs unterstützt werden

NVIDIA

  • Maxwell und neuer.
  • Volta, Turing, Ampere, Ada Lovelace.
  • Volle CUDA-Unterstützung.

AMD

  • RDNA und RDNA2 mit ROCm.
  • Einige ältere Radeon-Modelle.
  • Nicht alle Consumer-Karten offiziell.

Intel

  • Arc und einige integrierte GPUs.
  • Unterstützung wächst, aber noch weniger verbreitet.

GPU prüfen im Container

docker exec ollama nvidia-smi

Oder bei AMD:

docker exec ollama rocminfo

Fehlerbehebung

  • nvidia-smi nicht gefunden: Toolkit nicht installiert.
  • Docker erkennt keine GPU: Runtime nicht konfiguriert.
  • Treiber zu alt: NVIDIA-Treiber aktualisieren.
  • ROCm Fehler: Passende ROCm-Version prüfen.
  • Kein /dev/dri: Treiber oder Berechtigungen prüfen.
  • OOM: Container VRAM-Limit beachten.

Tipps

  • Treiber und Toolkit auf neuestem Stand halten.
  • Base-Images mit passender CUDA/ROCm-Version nutzen.
  • nvidia-smi vorher auf Host prüfen.
  • Für Intel spezielle Images suchen.
  • Compose-Syntax je nach Docker-Version anpassen.

FAQ: GPU in Docker

Brauche ich spezielle Treiber im Container? Nein, der Host-Treiber wird genutzt. Das Toolkit sorgt für die Weitergabe.

Funktioniert GPU in Docker bei Windows? Nur mit WSL2 und NVIDIA-GPUs, nicht nativ.

Wie prüfe ich GPU im Container? Mit nvidia-smi oder rocminfo.

Warum erkennt Docker die GPU nicht? Meist fehlt das NVIDIA Container Toolkit oder die Docker-Runtime.

Kann ich mehrere GPUs zuweisen? Ja, mit --gpus '"device=0,1"' oder count: all.

Quellen und weiterführende Literatur

Zusammenfassung: GPU in Docker nutzen

GPUs lassen sich mit dem NVIDIA Container Toolkit oder ROCm komfortabel in Docker-Container durchreichen. NVIDIA bietet dabei den reifsten Support, AMD mit ROCm funktioniert bei passenden Karten ebenfalls. Wichtig sind aktuelle Host-Treiber, korrekte Runtime-Konfiguration und die richtigen Compose-Einstellungen. Wer nvidia-smi oder rocminfo im Container zum Laufen bringt, kann GPU-beschleunigte Anwendungen wie Ollama in Docker nutzen.

Zurück zum KI Blog
Share:

Ähnliche Beiträge