CUDA Cloud Installation: CUDA auf Ubuntu 24.04 installieren und Treiberkonflikte beheben
Bei einer CUDA-Cloud-Installation müssen drei Ebenen zusammenpassen: Das NVIDIA-Kernel-Modul verbindet die GPU mit dem Linux-Kernel, User-Mode-Treiber und Bibliotheken stellen Rechenfunktionen bereit, und der Compiler nvcc übersetzt CUDA-Code. Erst dieses Zusammenspiel abstrahiert die Cloud-Hardware zuverlässig und verhindert Versionsfehler bei Installation, Neustart und Betrieb.
- Exklusive NVIDIA H200 GPUs für höchste Rechenleistung
- Garantierte Performance durch vollständig dedizierte CPU-Kerne
- 100 % Hosting in Deutschland für maximale Datensicherheit und DSGVO-Konformität
- Einfaches, kalkulierbares Preismodell mit festem Preis pro Stunde
Wie der CUDA-Stack in einer Cloud-Instanz funktioniert
CUDA ist nicht nur ein einzelnes Programm. Der sogenannte CUDA-Stack besteht aus mehreren Komponenten, die unterschiedliche Aufgaben übernehmen:
| Komponente | Aufgabe | Prüfbefehl |
|---|---|---|
| Linux-Kernel | Verwaltet Hardware, Speicher und Prozesse der Instanz | uname -r
|
| NVIDIA-Kernel-Modul | Verbindet den Linux-Kernel mit der GPU | `lsmod |
| NVIDIA-User-Mode-Treiber | Stellt Anwendungen den Zugriff auf die GPU bereit | nvidia-smi
|
| CUDA Runtime und Bibliotheken | Enthalten Funktionen für GPU-Berechnungen | Paketprüfung mit dpkg
|
| CUDA Toolkit | Enthält Entwicklungswerkzeuge und Bibliotheken | nvcc --version
|
nvcc
|
Übersetzt CUDA-Quellcode für die GPU | nvcc --version
|
Besonderheit virtualisierter Cloud-GPUs
Bei einer Cloud-Instanz befindet sich die physische GPU im Rechenzentrum des Cloud-Anbieters. Je nach Angebot wird sie vollständig an Ihre virtuelle Maschine durchgereicht oder über eine Virtualisierungsschicht bereitgestellt. Für Sie ist vor allem entscheidend, ob die GPU innerhalb der Instanz sichtbar ist:
lspci | grep -i nvidiabashErscheint keine NVIDIA-GPU, lässt sich das Problem nicht durch eine CUDA-Neuinstallation beheben. In diesem Fall wurde wahrscheinlich keine GPU an die Instanz angebunden, der falsche Instanztyp gewählt oder die GPU-Virtualisierung des Anbieters nicht korrekt eingerichtet.
Bei verwalteten vGPU-Angeboten sollten Sie außerdem keine beliebige Treiberversion installieren. Der Gasttreiber innerhalb der virtuellen Maschine muss gegebenenfalls zur vGPU-Infrastruktur des Cloud-Anbieters passen. Verwenden Sie dann bevorzugt das GPU-Image oder die Treiberanleitung des jeweiligen Anbieters.
Welche CUDA-Version passt zu Hopper und Blackwell?
Für neue Hopper- oder Blackwell-Instanzen ist CUDA Toolkit 13.3 Update eine sinnvolle Standardwahl, sofern verwendete Frameworks und Anwendungen CUDA 13.3 bereits unterstützen.
Hopper-GPUs werden seit CUDA 11.8 nativ unterstützt. Die native Unterstützung für Blackwell beginnt mit CUDA 12.8. Ältere Anwendungen können auf neueren GPUs teilweise über mitgelieferten PTX-Code gestartet werden. Das ist jedoch nicht mit nativer Unterstützung gleichzusetzen und kann zusätzliche Startzeit oder Funktionseinschränkungen verursachen.
Kompatibilitätsmatrix für CUDA, Treiber und GPU-Architektur
| CUDA Toolkit | Minimaler Linux-Treiber | Hopper | Blackwell | Einordnung |
|---|---|---|---|---|
| CUDA 11.8 GA | 520.61.05 | Nativ unterstützt | Nur über geeigneten PTX-Code | Für ältere Hopper-Anwendungen |
| CUDA 12.8 GA | 570.26 | Nativ unterstützt | Nativ unterstützt | Erste native Blackwell-Unterstützung |
| CUDA 12.9 GA | 575.51.03 | Nativ unterstützt | Nativ unterstützt | Geeignet für bestehende CUDA-12-Umgebungen |
| CUDA 13.0 GA | 580.65.06 | Nativ unterstützt | Nativ unterstützt | Erste CUDA-13-Hauptversion |
| CUDA 13.1 GA | 590.44.01 | Nativ unterstützt | Nativ unterstützt | Neuere CUDA-13-Umgebung |
| CUDA 13.2 Update 1 | 595.58.03 | Nativ unterstützt | Nativ unterstützt | Vorgängerversion von CUDA 13.3 |
| CUDA 13.3 Update 1 | 610.43.02 | Nativ unterstützt | Nativ unterstützt | Aktuelle Empfehlung |
NVIDIA ermöglicht zusätzlich eine sogenannte Minor Version Compatibility. Dadurch können Anwendungen aus der CUDA-13-Familie unter bestimmten Voraussetzungen bereits mit einem Treiber ab Version 580 laufen. Für eine neue, möglichst leicht zu wartende Installation sollte jedoch die zur konkreten Toolkit-Version ausgewiesene Treiberversion verwendet werden.
CUDA Install
Schritt 1: Cloud-Instanz absichern
Erstellen Sie zunächst einen Snapshot oder ein Image der Instanz. Ein fehlerhaftes Kernel-Modul kann dazu führen, dass die GPU nach dem Neustart nicht mehr verfügbar ist. Bei einer reinen SSH-Instanz bleibt das Betriebssystem normalerweise erreichbar, dennoch vereinfacht ein Snapshot die Wiederherstellung erheblich.
Prüfen Sie außerdem, ob Ihr Cloud-Anbieter bereits ein GPU-Image mit vorinstalliertem NVIDIA-Treiber bereitstellt. Funktioniert nvidia-smi bereits, sollten Sie den Treiber nicht ohne konkreten Grund ersetzen. Häufig genügt es, lediglich das passende CUDA Toolkit zu ergänzen.
Die Anleitung setzt Folgendes voraus:
- Ubuntu 24.04 LTS oder 26.04 LTS
- angebundene NVIDIA-GPU
- User mit
sudo-Rechten - Internetverbindung
- x86_64-Cloud-Instanz
Ubuntu 24.04 wird in diesem Guide als Grundlage verwendet, weil es bereits länger in produktiven Cloud-Umgebungen eingesetzt wird und viele vorhandene GPU-Images, Automatisierungen und Serverkonfigurationen darauf aufbauen. Der CUDA-Install unter Ubuntu 26.04 funktioniert grundsätzlich ähnlich, in Schritt 6 müssen Sie allerdings ein anderes Repository verwenden.
Schritt 2: Betriebssystem, Kernel und GPU prüfen
Zeigen Sie zunächst die Ubuntu-Version, den laufenden Kernel und die Prozessorarchitektur an:
hostnamectl
uname -r
uname -mbashFür die folgende Anleitung sollte uname -m diese Ausgabe liefern:
x86_64Prüfen Sie anschließend, ob die NVIDIA-GPU von der virtuellen Maschine erkannt wird:
lspci | grep -i nvidiabashPrüfen Sie danach, ob bereits ein Treiber installiert ist:
nvidia-smibashZeigt nvidia-smi die GPU und eine Treiberversion ab 610.43.02, funktioniert der Treiber und Sie können direkt mit Schritt 8 fortfahren. Fehlermeldungen oder eine nicht erkannte GPU weisen dagegen auf fehlende Treiberwerkzeuge, ein defektes Kernel-Modul oder eine fehlerhafte GPU-Zuordnung hin.
Schritt 3: Ubuntu aktualisieren und neu starten
Aktualisieren Sie zunächst das Betriebssystem:
sudo apt update
sudo apt full-upgrade -ybashStarten Sie die Instanz anschließend neu:
sudo rebootbashMelden Sie sich nach dem Neustart per SSH an und prüfen Sie den aktiven Kernel:
uname -rbashSchritt 4: Passende Kernel-Header installieren
Installieren Sie die Entwicklungswerkzeuge, DKMS und die Header des gegenwärtig laufenden Kernels:
sudo apt install -y \
build-essential \
dkms \
wget \
linux-headers-$(uname -r)bashDer Ausdruck $(uname -r) wird automatisch durch die aktuelle Kernel-Version ersetzt.
Prüfen Sie anschließend, ob das Header-Verzeichnis vorhanden ist:
ls -ld /usr/src/linux-headers-$(uname -r)bashWird ein Verzeichnis angezeigt, passen Kernel und Header zusammen. Erscheint dagegen „No such file or directory“, sollte der NVIDIA-Treiber noch nicht installiert werden.
Schritt 5: Vorhandene CUDA- und Treiberpakete untersuchen
Ermitteln Sie, welche NVIDIA- und CUDA-Pakete bereits installiert sind:
dpkg -l | grep -E 'nvidia|cuda'bashPrüfen Sie außerdem die geladenen Kernel-Module:
lsmod | grep -E 'nvidia|nouveau'bashDabei sollten nicht gleichzeitig nvidia und nouveau für dieselbe GPU aktiv sein.
Kontrollieren Sie auch, ob eine frühere Runfile-Installation vorhanden ist:
ls -ld /usr/local/cuda*bashEin Verzeichnis wie /usr/local/cuda-12.8 zeigt, dass bereits ein CUDA Toolkit installiert sein könnte, aber nicht, ob ein Konflikt besteht. Prüfen Sie deshalb, ob die Installation über APT oder eine .run-Datei erfolgte, und entfernen Sie eine bestehende Runfile-Installation, bevor Sie CUDA per APT installieren.
Schritt 6: Offizielles NVIDIA-Repository einrichten
Wechseln Sie zunächst in ein temporäres Verzeichnis:
cd /tmpbashLaden Sie das CUDA-Keyring-Paket für Ubuntu 24.04 herunter:
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.debbashInstallieren Sie den Repository-Schlüssel:
sudo dpkg -i cuda-keyring_1.1-1_all.debbashAktualisieren Sie anschließend die Paketinformationen:
sudo apt updatebashDas Keyring-Paket trägt den Signaturschlüssel und die Repository-Konfiguration in das System ein.
Schritt 7: NVIDIA-Treiber installieren
Für Hopper- und Blackwell-GPUs verwenden Sie die NVIDIA-Kernel-Module, um passende Treiber zu installieren:
sudo apt install -y nvidia-openbashStarten Sie die Instanz anschließend neu:
sudo rebootbashPrüfen Sie nach dem Neustart den Treiber:
nvidia-smibashZusätzlich können Sie kontrollieren, ob das Kernel-Modul geladen wurde:
lsmod | grep nvidiabashDie genaue Version des geladenen Moduls lässt sich folgendermaßen anzeigen:
cat /proc/driver/nvidia/versionbashZeigt nvidia-smi eine GPU und mindestens Treiberversion 610.43.02, ist die Instanz für CUDA 13.3 Update 1 vorbereitet.
Verwenden Sie bei einem vom Anbieter verwalteten vGPU-System den vom Anbieter freigegebenen Treiber. Ersetzen Sie diesen nicht allein deshalb, weil im NVIDIA-Repository eine neuere Version verfügbar ist.
Schritt 8: CUDA Toolkit Install
Nun erfolgt der eigentliche CUDA Install:
sudo apt install -y cuda-toolkit-13-3bashDie explizite Versionsnummer verhindert, dass die Installation später automatisch auf eine andere CUDA-Haupt- oder Nebenversion wechselt.
Schritt 9: nvcc dauerhaft in den Suchpfad aufnehmen
Das Toolkit wird üblicherweise unter folgendem Pfad installiert:
/usr/local/cuda-13.3Erstellen Sie eine systemweite PATH-Konfiguration:
sudo tee /etc/profile.d/cuda.sh >/dev/null <<'EOF'
export PATH=/usr/local/cuda-13.3/bin${PATH:+:${PATH}}
EOFbashLaden Sie die Einstellung für die aktuelle Sitzung:
source /etc/profile.d/cuda.shbashPrüfen Sie anschließend den CUDA-Compiler:
nvcc --versionbashDie Ausgabe sollte unter anderem CUDA 13.3 nennen. Bei einer APT-Installation müssen Sie die Umgebungsvariable LD_LIBRARY_PATH normalerweise nicht anpassen. Das ist nur bei Runfile-Installationen oder eigenen Installationspfaden nötig.
Schritt 10: CUDA-Installation praktisch testen
Erstellen Sie ein kleines Testprogramm:
cat > cuda-check.cu <<'EOF'
#include <cuda_runtime.h>
#include <iostream>
int main() {
int deviceCount = 0;
cudaError_t result = cudaGetDeviceCount(&deviceCount);
if (result != cudaSuccess) {
std::cerr << "CUDA-Fehler: "
<< cudaGetErrorString(result)
<< std::endl;
return 1;
}
std::cout << "Gefundene CUDA-GPUs: "
<< deviceCount
<< std::endl;
for (int i = 0; i < deviceCount; i++) {
cudaDeviceProp properties{};
cudaGetDeviceProperties(&properties, i);
std::cout << "GPU " << i << ": "
<< properties.name
<< std::endl;
}
return 0;
}
EOFbashÜbersetzen Sie das Programm mit nvcc:
nvcc cuda-check.cu -o cuda-checkbashStarten Sie den Test:
./cuda-checkbashEine erfolgreiche Ausgabe sieht beispielsweise so aus:
Gefundene CUDA-GPUs: 1
GPU 0: NVIDIA H100 80GB HBM3Damit wurden alle wichtigen Ebenen geprüft:
nvcckonnte den Quellcode übersetzen.- Die CUDA Runtime wurde geladen.
- Der User-Mode-Treiber konnte den Kernel-Treiber ansprechen.
- Die GPU wurde innerhalb der Cloud-Instanz erkannt.
Typische Probleme bei der CUDA-Installation beheben
Funktionieren nvidia-smi oder nvcc nach der Installation nicht, liegt die Ursache meistens bei den Kernel-Headern, einem konkurrierenden Treiber oder vermischten Installationsmethoden. Prüfen Sie die folgenden Punkte deshalb nacheinander.
1. Kernel und Kernel-Header vergleichen
Der NVIDIA-Treiber benötigt Header, die genau zum aktuell laufenden Linux-Kernel passen. Zeigen Sie zunächst die Kernel-Version an:
uname -rbashPrüfen Sie anschließend, ob die passenden Header vorhanden sind:
ls -ld /usr/src/linux-headers-$(uname -r)bashFehlen sie, installieren Sie die benötigten Pakete:
sudo apt update
sudo apt install -y linux-headers-$(uname -r) dkmsbashWurde kurz zuvor ein neuer Kernel installiert, starten Sie die Instanz neu. Andernfalls kann noch der alte Kernel laufen, während bereits die Header der neuen Version installiert sind:
sudo rebootbashBesteht das Problem danach weiter, liefern diese Befehle zusätzliche Hinweise:
dkms status
sudo journalctl -k -b | grep -iE 'nvidia|nouveau|NVRM'bash2. Konflikte mit dem Nouveau-Treiber beheben
Nouveau ist ein freier NVIDIA-Treiber, der in einigen Linux-Systemen automatisch geladen wird. Belegt er die GPU bereits, kann das offizielle NVIDIA-Modul nicht richtig starten.
Prüfen Sie, ob Nouveau aktiv ist:
lsmod | grep nouveaubashErscheint keine Ausgabe, ist Nouveau nicht geladen. Andernfalls können Sie sein automatisches Laden mit einer Sperrdatei verhindern:
sudo tee /etc/modprobe.d/blacklist-nouveau.conf >/dev/null <<'EOF'
blacklist nouveau
options nouveau modeset=0
EOFbashAktualisieren Sie danach das Startabbild des Kernels und starten Sie die Instanz neu:
sudo update-initramfs -u
sudo rebootbashPrüfen Sie anschließend erneut:
lsmod | grep nouveaubashDer Befehl sollte jetzt keine Ausgabe mehr liefern. Entfernen Sie dafür keine Linux-Kernelpakete: Nouveau muss normalerweise nur deaktiviert und nicht vollständig deinstalliert werden.
3. Runfile- und APT-Installationen nicht vermischen
CUDA kann entweder über die Ubuntu-Paketverwaltung oder über eine von NVIDIA heruntergeladene .run-Datei installiert werden. Werden beide Methoden vermischt, können unterschiedliche Treiber- und Bibliotheksversionen auf dem System verbleiben.
Prüfen Sie zunächst die installierten Pakete und CUDA-Verzeichnisse:
dpkg -l | grep -E 'nvidia|cuda'
ls -ld /usr/local/cuda*bashWurde CUDA mit einer Runfile installiert, verwenden Sie den dazugehörigen Uninstaller:
sudo /usr/local/cuda-13.3/bin/cuda-uninstallerbashPassen Sie 13.3 an die tatsächlich installierte Version an. Einen ebenfalls per Runfile installierten NVIDIA-Treiber entfernen Sie mit:
sudo /usr/bin/nvidia-uninstallbashAPT-Pakete sollten dagegen auch über APT entfernt werden:
sudo apt --purge remove cuda-toolkit-13-3
sudo apt autoremove --purgebashLöschen Sie Verzeichnisse wie /usr/local/cuda-13.3 nicht einfach manuell. Andernfalls können Dateien verschwinden, obwohl die Paketverwaltung sie weiterhin als installiert führt.
Installieren und aktualisieren Sie Treiber und CUDA Toolkit dauerhaft mit derselben Methode. Mischen Sie APT und Runfile nicht.
4. GPU-Persistenz aktivieren
Bei längeren Pausen ohne GPU-Auftrag kann der Treiber Teile des GPU-Zustands wieder freigeben. Beim nächsten CUDA-Aufruf muss die GPU dann erneut initialisiert werden, was kurze Verzögerungen verursachen kann.
Auf dauerhaft betriebenen Cloud-Instanzen lässt sich dafür der NVIDIA Persistence Daemon aktivieren:
sudo systemctl enable --now nvidia-persistenced.servicebashPrüfen Sie den Dienst:
systemctl is-active nvidia-persistenced.servicebashBei erfolgreicher Aktivierung erscheint:
activebashAktivieren Sie anschließend den Persistence Mode:
sudo nvidia-smi -pm 1bashDie Einstellung lässt sich so kontrollieren:
nvidia-smi -q | grep -i "Persistence Mode"bashBei kurzlebigen Instanzen sollte diese Konfiguration in einem Startskript oder im verwendeten Server-Image hinterlegt werden. Nach dem Löschen und vollständigen Neuerstellen einer Cloud-Instanz bleibt sie nicht automatisch erhalten.
Häufige Fehlermeldungen im Überblick
| Fehlermeldung | Wahrscheinliche Ursache | Lösung |
|---|---|---|
nvidia-smi: command not found
|
NVIDIA-Treiberwerkzeuge fehlen | Treiberpaket installieren |
NVIDIA-SMI has failed
|
Kernel-Modul wurde nicht geladen | Header, DKMS und Kernel-Protokoll prüfen |
Driver/library version mismatch
|
Alte und neue Treiberbestandteile sind gleichzeitig aktiv | Instanz neu starten und Paketversionen prüfen |
nvcc: command not found
|
Toolkit fehlt oder ist nicht im Suchpfad | Toolkit und PATH prüfen
|
Keine NVIDIA-GPU in lspci
|
GPU wurde der Instanz nicht zugewiesen | Instanztyp und Cloud-Konfiguration prüfen |
no kernel image is available
|
Anwendung unterstützt die GPU-Architektur nicht | Anwendung für Hopper oder Blackwell neu kompilieren |
Erscheint ein Driver/library version mismatch, starten Sie die Instanz zunächst neu. Häufig wurde bereits ein neuer Treiber installiert, während noch das alte Kernel-Modul geladen ist. Bleibt der Fehler bestehen, vergleichen Sie die installierten Komponenten:
cat /proc/driver/nvidia/version
modinfo nvidia | grep '^version'
dpkg -l | grep -E 'nvidia|cuda'bashWurden unterschiedliche Installationsmethoden oder Treiberserien verwendet, entfernen Sie die alte Installation und richten Sie den Treiber anschließend einheitlich über APT ein.
Fazit
Ein stabiler CUDA-Cloud-Install hängt weniger von einem einzelnen Installationsbefehl als von der Abstimmung der beteiligten Komponenten ab. Der laufende Linux-Kernel benötigt passende Header, das NVIDIA-Kernel-Modul muss erfolgreich geladen werden und der User-Mode-Treiber muss zur installierten Treiberserie gehören. Die Installation über das offizielle NVIDIA-APT-Repository ist dabei die nachvollziehbarste Lösung. So entsteht ein wartbarer CUDA-Stack für Hopper- und Blackwell-Instanzen.


