Bewährte Methoden zur Minimierung von Unterbrechungen bei GPU-Treiber-Upgrades - Amazon SageMaker KI

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Bewährte Methoden zur Minimierung von Unterbrechungen bei GPU-Treiber-Upgrades

SageMaker AI Model Deployment aktualisiert die GPU-Treiber auf den ML-Instanzen im Laufe der Zeit für Echtzeit-, Batch- und asynchrone Inferenzoptionen, um Kunden Zugriff auf Verbesserungen der Treiberanbieter zu bieten. Weiter unten sehen Sie, welche GPU-Version für jede Inference-Option unterstützt wird. Verschiedene Treiberversionen können die Interaktion Ihres Modells mit dem ändern. GPUs Im Folgenden finden Sie Strategien, mit deren Hilfe Sie verstehen können, wie Ihre Anwendung mit verschiedenen Treiberversionen funktioniert.

Aktuelle Versionen und unterstützte Instance-Familien

Amazon SageMaker AI Inference unterstützt die folgenden Treiber und Instance-Familien:

Service GPU Treiberversion CUDA-Version Instance-Typen
Echtzeit NVIDIA 470 CUDA 11.4 ml.p2.*, ml.p3.*, ml.p4d.*, ml.p4de.*, ml.g4dn.*, ml.g5.*
535 CUDA 12.2 ml.p5.*, ml.g6. *
550 CUDA 12,4 ml.p5e.*, ml.p5en. *
Asynchrone Inference NVIDIA 470 CUDA 11,4 ml.p2.*, ml.p3.*, ml.p4d.*, ml.p4de.*, ml.g4dn.*, ml.g5*
470 CUDA 12.2 ml.p5.*, ml.g6. *
550 CUDA 12,4 ml.p5e.*, ml.p5en. *
Stapel NVIDIA 470 CUDA 11,4 ml.p2.*, ml.p3.*, ml.p4d.*, ml.p4de.*, ml.g4dn.*, ml.g5*

Beheben Sie Fehler in Ihrem Modellcontainer mit GPU-Fähigkeiten

Wenn bei der Ausführung Ihres GPU-Workloads ein Problem auftritt, lesen Sie die folgende Anleitung:

Führen Sie den Befehl nvidia-smi (NVIDIA System Management Interface) im Docker-Container aus. Wenn das NVIDIA System Management Interface einen GPU-Erkennungsfehler oder einen NVIDIA-Initialisierungsfehler erkennt, wird die folgende Fehlermeldung zurückgegeben:

Failed to initialize NVML: Driver/library version mismatch

Verwenden Sie je nach Anwendungsfall diese bewährten Methoden, um das Fehlschlagen oder den Fehler zu beheben:

Weitere Informationen finden Sie auf der Seite NVIDIA System Management Interface auf der Website von NVIDIA.

Wenn Ihre GPU-Instance NVIDIA-Treiberversionen verwendet, die nicht mit der CUDA-Version im Docker-Container kompatibel sind, schlägt die Bereitstellung eines Endpunktes mit der folgenden Fehlermeldung fehl:

Failure reason CannotStartContainerError. Please ensure the model container for variant <variant_name> starts correctly when invoked with 'docker run <image> serve'

Verwenden Sie je nach Anwendungsfall diese bewährten Methoden, um das Fehlschlagen oder den Fehler zu beheben:

Bewährte Methoden für die Arbeit mit nicht passenden Treiberversionen

Im Folgenden finden Sie Informationen dazu, wie Sie Ihren GPU-Treiber aktualisieren:

Es ist keine Aktion erforderlich. NVIDIA bietet Rückwärts-Kompatibilität.

Wenn es sich um einen geringfügigen Versionsunterschied handelt, sind keine Maßnahmen erforderlich. NVIDIA bietet bei kleineren Versionsunterschieden Vorwärtskompatibilität.

Wenn es sich um einen größeren Versionsunterschied handelt, muss das CUDA-Kompatibilitätspaket installiert werden. Weitere Informationen finden Sie im CUDA-Kompatibilitätspaket in der NVIDIA-Dokumentation.

Wichtig

Das CUDA-Kompatibilitätspaket ist nicht rückwärts-kompatibel und muss daher deaktiviert werden, wenn die Treiberversion auf der Instance neuer ist als die Version des CUDA-Kompatibilitätspakets.

Vergewissern Sie sich, dass das Image keine NVIDIA-Treiberpakete enthält, die zu Konflikten mit der NVIDIA-Treiberversion auf dem Host führen könnten.

Informationen dazu, ob die Nvidia-Treiberversion für die jeweilige Plattform die im Modellcontainer installierte Version des CUDA Compatibility Package unterstützt, finden Sie in der CUDA-Dokumentation. Wenn die Nvidia-Treiberversion für die jeweilige Plattform die Version des CUDA-Kompatibilitätspaketes nicht unterstützt, können Sie das CUDA-Kompatibilitätspaket deaktivieren oder aus dem Modellcontainer-Image entfernen. Wenn die Version der CUDA-Kompatibilitätsbibliotheken von der neuesten Nvidia-Treiberversion unterstützt wird, empfehlen wir Ihnen, das CUDA-Kompatibilitätspaket auf Basis der erkannten Nvidia-Treiberversion für die zukünftige Kompatibilität zu aktivieren, indem Sie den folgenden Codeausschnitt zum Start-up-Shell-Skript des Containers (im ENTRYPOINT Skript) hinzufügen.

Das Skript zeigt, wie Sie die Verwendung des CUDA-Kompatibilitätspaketes auf Basis der erkannten Nvidia-Treiberversion auf dem bereitgestellten Host für Ihren Modellcontainer dynamisch umschalten. Wenn eine neuere Nvidia-Treiberversion SageMaker veröffentlicht wird, kann das installierte CUDA-Kompatibilitätspaket automatisch ausgeschaltet werden, wenn die CUDA-Anwendung auf dem neuen Treiber nativ unterstützt wird.

#!/bin/bash verlt() { [ "$1" = "$2" ] && return 1 || [ "$1" = "$(echo -e "$1\n$2" | sort -V | head -n1)" ] } if [ -f /usr/local/cuda/compat/libcuda.so.1 ]; then CUDA_COMPAT_MAX_DRIVER_VERSION=$(readlink /usr/local/cuda/compat/libcuda.so.1 | cut -d'.' -f 3-) echo "CUDA compat package should be installed for NVIDIA driver smaller than ${CUDA_COMPAT_MAX_DRIVER_VERSION}" NVIDIA_DRIVER_VERSION=$(sed -n 's/^NVRM.*Kernel Module *\([0-9.]*\).*$/\1/p' /proc/driver/nvidia/version 2>/dev/null || true) echo "Current installed NVIDIA driver version is ${NVIDIA_DRIVER_VERSION}" if verlt $NVIDIA_DRIVER_VERSION $CUDA_COMPAT_MAX_DRIVER_VERSION; then echo "Adding CUDA compat to LD_LIBRARY_PATH" export LD_LIBRARY_PATH=/usr/local/cuda/compat:$LD_LIBRARY_PATH echo $LD_LIBRARY_PATH else echo "Skipping CUDA compat setup as newer NVIDIA driver is installed" fi else echo "Skipping CUDA compat setup as package not found" fi