Wie konfiguriere ich NVLink auf einem VPS mit Multi-GPU-Setup?

NVLink ist NVIDIAs energieeffizienter Interconnect mit hoher Bandbreite für die Verbindung mehrerer GPUs und bietet eine deutlich höhere Kommunikationsbandbreite im Vergleich zu traditionellem PCIe. Für Datenwissenschaftler, ML-Ingenieure und High-Performance-Computing (HPC)-Benutzer bietet NVLink eine nahtlose GPU-Speicherfreigabe, die Engpässe reduziert und schnelleres Training und schnellere Schlussfolgerungen ermöglicht.

Aber kann man NVLink in einem VPS verwenden? Die Antwort ist ja, aber mit wichtigen Einschränkungen. Im Folgenden erfahren Sie, was NVLink ist, wie man es konfiguriert und was erforderlich ist, damit es in einer virtualisierten Serverumgebung funktioniert.

Beschränkungen und Vorbehalte

  • Nicht alle VPS-Anbieter unterstützen NVLink-Konfigurationen.

  • Nur Bare-Metal-basierte VPS oder dedizierte virtuelle GPU-Maschinen mit direktem Passthrough ermöglichen den Einsatz von NVLink.

  • Keine NVLink-Unterstützung in containerisierten Umgebungen wie Docker, es sei denn, sie werden direkt auf dem Host ausgeführt.

Was ist NVLink?

NVLink ermöglicht es zwei oder mehr kompatiblen NVIDIA-GPUs,:

  • Gemeinsame Nutzung des Speichers über GPUs hinweg für große Datensätze

  • Daten mit einer Gesamtbandbreite von bis zu 600 GB/s austauschen

  • Schnelleres Multi-GPU-Training ohne CPU-Beteiligung durchführen

Unterstützt auf GPUs wie:

  • NVIDIA A100, V100, RTX 3090, 4090, A6000, etc.

  • Erfordert normalerweise eine physische NVLink-Brücke

NVLink in VPS: Voraussetzungen

Bevor Sie versuchen, NVLink auf einem VPS zu konfigurieren, müssen Sie Folgendes sicherstellen:

Host-Hardware

  • Der physische Server muss über Folgendes verfügen

    • Mindestens zwei NVLink-kompatible GPUs

    • NVLink-Brücke(n) installiert

    • BIOS und Firmware, die NVLink unterstützen

  • Zu den üblichen kompatiblen Konfigurationen gehören Dual A100 oder RTX 3090 mit NVLink-Brücke.

VPS-Konfiguration

  • Der VPS muss auf einem GPU-Passthrough-fähigen Hypervisor bereitgestellt werden, z. B.:

    • KVM/QEMU mit VFIO (PCI-Passthrough)

    • VMware ESXi mit DirectPath-E/A

    • Proxmox VE mit GPU-Passthrough

⚠️ Hinweis: NVLink funktioniert nicht über virtualisierte Geräte, es sei denn, beide GPUs werden als vollständige PCIe-Geräte an dieselbe VM weitergeleitet.

Schritt für Schritt: So konfigurieren Sie NVLink auf einem VPS

Schritt 1: Sicherstellen des Passthrough von GPUs

Der Host muss beide physischen GPUs direkt an Ihren VPS weiterleiten.

Für KVM/QEMU mit VFIO:

# Beispiel für die Zuweisung von zwei GPUs über vfio-pci
echo "vendor_id device_id" > /sys/bus/pci/devices/0000:65:00.0/driver/unbind
echo "vendor_id device_id" > /sys/bus/pci/devices/0000:66:00.0/driver/unbind
echo "vendor_id device_id" > /sys/bus/pci/drivers/vfio-pci/new_id

Aktualisieren Sie libvirt oder qemu XML, um beide GPUs durchzulassen.

Schritt 2: NVIDIA-Treiber installieren

Installieren Sie innerhalb des VPS (Gastbetriebssystem) den neuesten NVIDIA-Treiber:

sudo apt update
sudo apt install -y nvidia-Treiber-535

Starten Sie nach der Installation neu.

Schritt 3: Überprüfen der NVLink-Topologie

Sobald Sie im Gastbetriebssystem sind:

nvidia-smi topo -m

Sie sollten sehen:

GPU0GPU1CPU-Affinität
GPU0XNV10-15
GPU1NV1X0-15

Wobei NV1 bedeutet, dass NVLink zwischen GPU0 und GPU1 aktiv ist.

Schritt 4: Aktivieren Sie den Peer-to-Peer-Zugriff (optional, aber empfohlen)

nvidia-smi p2p

Stellen Sie sicher, dass sowohl Peer-to-Peer als auch Access als Enabled markiert sind .

Sicherheitsüberlegungen

  • Isolierter Zugang: Stellen Sie sicher, dass Ihr VPS nicht überbelegt ist oder gemeinsam mit anderen gehostet wird, wenn Sie vollen GPU-Passthrough verwenden.

  • Keine gemeinsamen Speicherverluste: NVLink erstellt eine gemeinsame Speicherplatzbeschränkung für den Zugriff auf vertrauenswürdige Umgebungen.

  • Überprüfen Sie den Zugriff auf /dev/nvidia-Geräte*.

Fehlersuche bei NVLink-Problemen

SymptomMögliche UrsacheBehebung
NVLink wird nicht in nvidia-smi angezeigtGPUs nicht richtig gebrücktSchalten Sie den Host aus und installieren Sie die physische NVLink-Brücke neu
Nur eine GPU sichtbarPassthrough falsch konfiguriertVM XML/Geräte-Passthrough-Einstellungen überprüfen
Peer-to-Peer deaktiviertTreiber oder BIOS-Einstellungen stimmen nicht übereinTreiber aktualisieren, BIOS auf NVLink-Unterstützung prüfen
Niedrige BandbreiteNVLink-Lanes nicht ausgelastetVerwenden Sie nvidia-smi nvlink –status, um die Lanes zu überprüfen

NVLink ist ein entscheidender Faktor für GPU-intensive Workloads und bietet bei richtiger Konfiguration immense Leistungsvorteile – sogar in virtuellen Umgebungen. Mit direktem GPU-Passthrough und einer sorgfältigen Einrichtung können Sie die Leistung von Multi-GPU-Verbindungen auf einem VPS nutzen und ihn in einen Hochleistungs-Rechenknoten für anspruchsvolle Anwendungen verwandeln.