CUDA-Umgebung korrekt aufsetzen: Treiber, Toolkit, cuDNN und PyTorch auf Ubuntu
Treiber zuerst, Toolkit danach, PyTorch zuletzt – wer die Reihenfolge ignoriert, kämpft mit rätselhaften Fehlern. Diese Anleitung führt dich Schritt für Schritt vom frischen Ubuntu-Server zur funktionsfähigen CUDA-Umgebung für PyTorch 2.7.0 und erklärt die häufigsten Fehlerquellen.

Wer auf einem Ubuntu-Server GPU-beschleunigtes Deep Learning betreiben will, kommt an CUDA nicht vorbei. Das Problem: Die Komponenten bauen streng aufeinander auf, und schon eine falsche Installationsreihenfolge oder eine inkompatible Versionskombination sorgt für Fehlermeldungen, die auf den ersten Blick wenig aussagekräftig wirken. Diese Anleitung zeigt dir den einzig verlässlichen Weg – vom frischen Server zur voll funktionsfähigen CUDA-Umgebung mit PyTorch 2.7.0 –, erklärt die Hintergründe und nennt die häufigsten Fallstricke beim Namen.
Voraussetzungen
- Ubuntu 22.04 LTS, 24.04 LTS oder 26.04 LTS (amd64) – frische Serverinstallation empfohlen
- NVIDIA-GPU mit CUDA Compute Capability 3.5 oder höher (für PyTorch 2.7.0)
- NVIDIA-Treiber >= 570.26 (für CUDA 12.8) bzw. >= 560.35.05 (für CUDA 12.6)
- Python 3.10 oder höher, pip3 oder Conda als Paketmanager
- Internetzugang für Paketdownloads
- sudo-Rechte auf dem Server
- GCC / Build-Essential (wird in Schritt 1 geprüft)
- NVIDIA Developer Account (optional, nur für cuDNN als .deb-Paket benötigt)
Versionstabelle: CUDA und Mindest-Treiber im Überblick
Bevor du loslegst, wähle die passende CUDA-Version. Für PyTorch-Produktionsumgebungen sind CUDA 12.8 und 12.6 die aktuell empfohlenen Versionen, da PyTorch 2.7.0 diese explizit unterstützt.
| CUDA-Version | Mindest-Treiber (Linux) | PyTorch 2.7-Support | Empfehlung |
|---|---|---|---|
| CUDA 13.3 (Mai 2026) | >= 610.43.02 | Noch nicht (Prerelease) | Abwarten |
| CUDA 12.9 | >= 575.51.03 | Nein | Nicht verwenden |
| CUDA 12.8 | >= 570.26 | Ja (cu128) | Empfohlen |
| CUDA 12.6 | >= 560.35.05 | Ja (cu126) | Alternative |
| CUDA 12.4 | >= 550.54.14 | Ja (cu124) | Älterer Stack |
| CUDA 11.8 | >= 520.61.05 | Ja (cu118) | Legacy |
Schritt 0: Alte Installationen bereinigen
Wenn du auf einem System arbeitest, auf dem bereits NVIDIA-Pakete installiert wurden, solltest du diese zuerst vollständig entfernen. Überbleibsel aus früheren Installationen sind eine häufige Ursache für Versionskonflikte und schwer zu debuggende Bibliothekspfad-Probleme.
sudo apt purge "*nvidia*" "*cuda*" "*cudnn*" -y
sudo apt autoremove -y
sudo rebootAuf einem frischen Ubuntu-Server kannst du diesen Schritt überspringen und direkt mit Schritt 1 beginnen.
Schritt 1: Voraussetzungen prüfen
Bevor du einen Treiber installierst, stelle sicher, dass das System die GPU erkennt und die notwendigen Build-Tools vorhanden sind.
# CUDA-fähige GPU erkennen
lspci | grep -i nvidia
# Ubuntu-Version prüfen
hostnamectl
# GCC prüfen (wird für das CUDA Toolkit benötigt)
gcc --version
# GCC installieren, falls nicht vorhanden
sudo apt update && sudo apt install build-essential -yZeigt lspci keine NVIDIA-GPU an, prüfe zunächst, ob die Karte physisch korrekt eingebaut ist. Bei virtuellen Maschinen muss GPU-Passthrough eingerichtet sein – das beschreibt die Anleitung GPU-Passthrough in Proxmox einrichten.
Schritt 2: NVIDIA-Treiber installieren
Der Treiber ist das Fundament des gesamten Stacks. Er muss als erstes installiert werden und erfordert danach zwingend einen Neustart. Wichtig: Installiere den Treiber immer über apt oder ubuntu-drivers – nicht über den CUDA-Runfile-Installer, der zwar anbietet, den Treiber mitzuinstallieren, dabei aber häufig zu Konflikten führt.
# ubuntu-drivers-common installieren
sudo apt install ubuntu-drivers-common -y
# Verfügbare Treiber anzeigen lassen
ubuntu-drivers devices
# Empfohlenen Treiber für CUDA 12.8 installieren
sudo apt install nvidia-driver-570 -y
# Neustart – ZWINGEND erforderlich
sudo rebootVerifizieren: Nach dem Neustart zeigt nvidia-smi den GPU-Namen, die Treiberversion und die maximal unterstützte CUDA-Version an:
nvidia-smi
# Beispielausgabe:
# +-----------------------------------------------------------------------+
# | NVIDIA-SMI 570.86.15 Driver Version: 570.86.15 CUDA Version: 12.8 |
# +-----------------------------------------------------------------------+Achtung: Die Spalte „CUDA Version" in nvidia-smi zeigt die maximal vom Treiber unterstützte CUDA-Version an – nicht die installierte Toolkit-Version. Das CUDA Toolkit ist zu diesem Zeitpunkt noch nicht installiert.
Schritt 3: CUDA Toolkit installieren
Das CUDA Toolkit enthält den Compiler nvcc, die Entwicklungsbibliotheken und die CUDA-Runtime. Für reine PyTorch-Workloads ist dieser Schritt optional – PyTorch-Binaries bringen die CUDA-Runtime bereits eingebettet mit. Du benötigst das Toolkit nur, wenn du eigene CUDA-Extensions kompilierst, nvcc direkt nutzt oder andere Frameworks ohne eigene CUDA-Runtime einsetzt.
Wichtig: Verwende niemals sudo apt install cuda ohne explizite Versionsnummer – das installiert immer die neueste verfügbare Version, die möglicherweise nicht von PyTorch unterstützt wird.
# Für Ubuntu 22.04 – NVIDIA CUDA Keyring hinzufügen
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
# Paketliste aktualisieren
sudo apt update
# CUDA Toolkit 12.8 installieren (explizite Version angeben!)
sudo apt install cuda-toolkit-12-8 -y
# Neustart empfohlen
sudo rebootFür Ubuntu 24.04 ändert sich nur die Keyring-URL:
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt update
sudo apt install cuda-toolkit-12-8 -yNach der Installation musst du die Umgebungsvariablen in der ~/.bashrc setzen, sonst ist nvcc nicht im Pfad auffindbar:
echo 'export PATH=/usr/local/cuda-12.8/bin${PATH:+:${PATH}}' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.8/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}' >> ~/.bashrc
source ~/.bashrcVerifizieren:
nvcc --version
# Erwartete Ausgabe: Cuda compilation tools, release 12.8, ...Schritt 4: cuDNN installieren (optional)
cuDNN ist eine GPU-beschleunigte Bibliothek für neuronale Netze, die Operationen wie Faltungen und Pooling optimiert. Für PyTorch-Nutzer gilt: PyTorch-Binaries betten cuDNN direkt ein, weshalb eine separate Installation oft unnötig ist. Wenn du cuDNN dennoch systemweit benötigst, hast du drei Installationswege zur Auswahl.
| Methode | Befehl | Account nötig | Empfehlung |
|---|---|---|---|
| pip | pip install nvidia-cudnn | Nein | Einfachste Methode |
| Conda | conda install nvidia::cudnn cuda-version=12 | Nein | Für Conda-Umgebungen |
| .deb-Paket | sudo dpkg -i cudnn-local-repo-*.deb | Ja (NVIDIA Dev) | Produktionsserver |
| Docker | Image nvidia/cuda:12.8.1-cudnn-devel-ubuntu22.04 | Nein | Container-Setups |
# Methode A: pip (kein Developer-Account nötig)
pip install nvidia-cudnn
# Methode B: Conda
conda install nvidia::cudnn cuda-version=12Achte darauf, dass die cuDNN-Version zur installierten CUDA-Hauptversion passt. Eine cuDNN-Version für CUDA 11.x funktioniert nicht mit CUDA 12.x.
Schritt 5: PyTorch 2.7.0 mit CUDA-Unterstützung installieren
Das ist der Schritt, bei dem der häufigste Fehler passiert: Ohne den Parameter --index-url lädt pip automatisch die CPU-only-Version von PyTorch herunter. Das Ergebnis ist ein System, bei dem nvidia-smi einwandfrei läuft, aber torch.cuda.is_available() trotzdem False zurückgibt.
# Für CUDA 12.8 (empfohlen)
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128
# Für CUDA 12.6 (Alternative)
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu126Wenn du in einer virtuellen Umgebung arbeitest – was für Python-Projekte generell empfehlenswert ist –, aktiviere diese zuerst:
python3 -m venv venv
source venv/bin/activate
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128Schritt 6: Vollständige Verifikation des Stacks
Teste nach der Installation alle Komponenten systematisch von unten nach oben durch. So weißt du genau, auf welcher Ebene ein eventuelles Problem liegt.
# 1. Treiber und GPU
nvidia-smi
# 2. CUDA Toolkit (nur wenn in Schritt 3 installiert)
nvcc --version
# 3. PyTorch CUDA-Verfügbarkeit
python3 -c "import torch; print('CUDA verfügbar:', torch.cuda.is_available()); print('CUDA-Version:', torch.version.cuda); print('cuDNN-Version:', torch.backends.cudnn.version())"
# 4. Einfacher GPU-Tensor-Test
python3 -c "import torch; x = torch.rand(3,3).cuda(); print('GPU-Tensor:', x)"Verifizieren: Die erwarteten Ausgaben für einen korrekt eingerichteten Stack mit CUDA 12.8:
CUDA verfügbar: TrueCUDA-Version: 12.8cuDNN-Version: 9xxxx(z. B. 90100)- GPU-Tensor wird ohne Fehler erstellt und ausgegeben
Sonderfall: WSL2 unter Windows
Wenn du CUDA in Windows Subsystem for Linux 2 (WSL2) einrichten möchtest, gilt eine wichtige Ausnahme: Installiere in WSL2 keinen NVIDIA-Treiber. Der Windows-Host-Treiber wird automatisch in die WSL2-Umgebung durchgereicht. Der Versuch, einen Treiber in WSL2 zu installieren, endet mit der Fehlermeldung „ERROR: This NVIDIA driver is incompatible with this version of Windows".
# In WSL2: Schritt 2 (Treiber) ÜBERSPRINGEN, direkt mit Schritt 3 (Toolkit) beginnen
# GPU-Sichtbarkeit prüfen – sollte sofort funktionieren:
nvidia-smiTroubleshooting / Typische Fehler
„nvcc: command not found" nach Toolkit-Installation
Die Umgebungsvariablen wurden nicht gesetzt oder die Shell wurde nach dem Setzen nicht neu gestartet. Prüfe, ob die Einträge in ~/.bashrc vorhanden sind, und führe source ~/.bashrc aus. Alternativ kannst du den Bibliothekspfad systemweit eintragen:
echo '/usr/local/cuda/lib64' | sudo tee /etc/ld.so.conf.d/cuda.conf
sudo ldconfigtorch.cuda.is_available() gibt False zurück
Der häufigste Grund: Die CPU-only-Version von PyTorch wurde installiert. Prüfe mit pip show torch die Version. Wenn der Versionsname kein +cu128 oder ähnliches enthält, fehlte der --index-url-Parameter. Lösung:
pip uninstall torch torchvision torchaudio -y
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128nvidia-smi schlägt fehl nach Treiber-Installation
Der Neustart nach der Treiberinstallation fehlt. Der NVIDIA-Treiber wird erst nach einem vollständigen Neustart aktiv geladen. Führe sudo reboot aus und teste danach erneut.
„no kernel image is available for execution on the device"
Die installierte PyTorch-Version wurde für eine ältere GPU-Architektur (Compute Capability) kompiliert, als deine GPU besitzt. Prüfe die Compute Capability deiner GPU auf der NVIDIA-Entwicklerseite und stelle sicher, dass die PyTorch-Version diese unterstützt. Ältere GPUs (z. B. Kepler-Architektur, Compute Capability < 3.7) werden von aktuellen PyTorch-Versionen nicht mehr unterstützt.
Versionskonflikte nach Update
Wenn du über eine bestehende CUDA-Installation eine neue Version installierst, können Bibliothekspfade durcheinander geraten. Die sicherste Lösung ist die vollständige Bereinigung aus Schritt 0, gefolgt von einer sauberen Neuinstallation.
nvidia-smi zeigt andere CUDA-Version als nvcc
Das ist kein Fehler, sondern normales Verhalten. nvidia-smi zeigt die maximal vom Treiber unterstützte CUDA-Version. nvcc --version zeigt die tatsächlich installierte Toolkit-Version. Beide Werte dürfen voneinander abweichen – solange die Toolkit-Version nicht höher ist als die vom Treiber maximal unterstützte Version.
Häufige Fragen
Brauche ich das CUDA Toolkit, wenn ich nur PyTorch nutze?
Nein. PyTorch-Binaries (installiert via pip oder conda) bringen die CUDA-Runtime bereits eingebettet mit. Für Training und Inferenz reicht der NVIDIA-Treiber auf dem System vollständig aus. Das Toolkit – und damit nvcc, Header-Dateien und weitere Entwicklungswerkzeuge – benötigst du nur, wenn du eigene CUDA-Extensions kompilierst oder andere Frameworks einsetzt, die keine eigene CUDA-Runtime mitbringen.
Welche CUDA-Version soll ich für PyTorch 2.7.0 wählen?
PyTorch 2.7.0 unterstützt offiziell CUDA 11.8, 12.6 und 12.8. Empfehlung für neue Setups: CUDA 12.8 verwenden, da diese Version aktiv weiterentwickelt wird. Für bestehende Infrastruktur mit älteren Treibern ist CUDA 12.6 eine solide Alternative.
Kann ich mehrere CUDA-Versionen parallel installiert haben?
Ja. Das CUDA Toolkit installiert sich in separate Verzeichnisse (/usr/local/cuda-12.8, /usr/local/cuda-12.6 usw.). Die aktive Version wird über den PATH-Eintrag in ~/.bashrc und den Symlink /usr/local/cuda gesteuert. Du kannst zwischen Versionen wechseln, indem du den PATH-Eintrag und den Symlink anpasst.
Was tue ich bei einem frischen Server ohne Wissen über die verbaute GPU?
Führe lspci | grep -i nvidia aus. Das Modell findest du anschließend auf developer.nvidia.com/drivers. Alternativ zeigt ubuntu-drivers devices nach der Installation von ubuntu-drivers-common den empfohlenen Treiber automatisch an.
nvidia-smi zeigt „CUDA Version: 12.8" – ist CUDA damit installiert?
Nein. Die Anzeige in nvidia-smi gibt nur die maximal unterstützte CUDA-Version des Treibers an. Das CUDA Toolkit mit nvcc ist ein separates Paket und muss explizit installiert werden. Prüfe mit nvcc --version, ob das Toolkit tatsächlich vorhanden ist.
Fazit
Die CUDA-Einrichtung ist konzeptionell einfach, sobald man die Abhängigkeiten versteht: Der Treiber schafft die Grundlage, das Toolkit stellt Compiler und Bibliotheken bereit, cuDNN optimiert Netzwerkoperationen, und PyTorch setzt obendrauf. Der häufigste Fehler ist nicht Unwissenheit, sondern Zeitdruck: sudo apt install cuda statt der expliziten Versionsangabe, oder pip install torch ohne --index-url. Diese beiden Fehler kosten regelmäßig Stunden beim Debugging. Mit dem hier beschriebenen Ablauf ist der Stack in unter 45 Minuten aufgesetzt und verifiziert.
Wenn du planst, lokale LLMs auf dieser CUDA-Umgebung zu betreiben, findest du die passenden Modellempfehlungen in Ollama-Modelle 2026 richtig auswählen: VRAM, Quantisierung und Modellvergleich für KMU. Die Hardware-Grundlage beleuchtet GPU für lokale KI auswählen: VRAM-Bedarf, RTX-Generationen und Budget-Empfehlungen 2026. Für GPU-Passthrough in virtuellen Maschinen empfiehlt sich GPU-Passthrough in Proxmox einrichten: NVIDIA/AMD von IOMMU bis zur VM.
Weiterführende Anleitungen und Quellen
- GPU-Passthrough in Proxmox einrichten: NVIDIA/AMD von IOMMU bis zur VM
- Ollama-Modelle 2026 richtig auswählen: VRAM, Quantisierung und Modellvergleich für KMU
- GPU für lokale KI auswählen: VRAM-Bedarf, RTX-Generationen und Budget-Empfehlungen 2026
- QLoRA Fine-Tuning mit Unsloth: Eigenes LLM auf 8 GB VRAM anpassen
- NVIDIA CUDA Installation Guide for Linux: docs.nvidia.com/cuda/cuda-installation-guide-linux
- PyTorch Get Started – offizielle Installationsbefehle: pytorch.org/get-started/locally
- NVIDIA CUDA Toolkit Release Notes: docs.nvidia.com/cuda/cuda-toolkit-release-notes