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

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 Model Deployment aktualisiert die GPU Treiber auf den ML-Instances im Laufe der Zeit für Echtzeit-, Batch- und asynchrone Inferenzoptionen, um Kunden Zugriff auf Verbesserungen der Treiberanbieter zu bieten. Unten sehen Sie, welche GPU Version für die einzelnen Inferenzoptionen 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 Inference unterstützt die folgenden Treiber und Instance-Familien:

Service GPU Treiberversion Instance-Typen
Echtzeit NVIDIA 470.57.02 ml.p2.*, ml.p3.*, ml.p4d.*, ml.p4de.*, ml.g4dn.*, ml.g5.*
535,54,03 ml.p5.*, ml.g6. *
Stapel NVIDIA 47057,02 ml.p2.*, ml.p3.*, ml.p4d.*, ml.p4de.*, ml.g4dn.*, ml.g5*
Asynchrone Inference NVIDIA 47057,02 ml.p2.*, ml.p3.*, ml.p4d.*, ml.p4de.*, ml.g4dn.*, ml.g5*
535,54,03 ml.p5.*, ml.g6. *

Beheben Sie Fehler bei Ihrem Modellcontainer mit GPU Funktionen

Wenn Sie bei der Ausführung Ihres GPU Workloads auf ein Problem stoßen, lesen Sie die folgenden Anleitungen:

Führen Sie den Befehl nvidia-smi (NVIDIASystem Management Interface) im Docker-Container aus. Wenn die NVIDIA Systemverwaltungsschnittstelle einen GPU Erkennungs- oder NVIDIA Initialisierungsfehler feststellt, 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 NVIDIA Website.

Wenn Ihre GPU Instanz NVIDIA Treiberversionen verwendet, die nicht mit der CUDA Version im Docker-Container kompatibel sind, schlägt die Bereitstellung eines Endpunkts 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 können:

Es ist keine Aktion erforderlich. NVIDIAbietet Abwärtskompatibilität.

Wenn es sich um einen geringfügigen Versionsunterschied handelt, sind keine Maßnahmen erforderlich. NVIDIAbietet Vorwärtskompatibilität für Nebenversionen.

Wenn es sich um einen größeren Versionsunterschied handelt, muss das CUDA Kompatibilitätspaket installiert werden. Bitte beachten Sie das CUDAKompatibilitätspaket in der NVIDIA Dokumentation.

Wichtig

Das CUDA Kompatibilitätspaket ist nicht abwärtskompatibel und muss daher deaktiviert werden, wenn die Treiberversion auf der Instanz höher als die Version des CUDA Kompatibilitätspakets ist.

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

Informationen dazu, ob die Plattform-Nvidia-Treiberversion die im Modellcontainer installierte Version des CUDA Kompatibilitätspakets unterstützt, finden Sie in der CUDADokumentation. Wenn die Plattform-Nvidia-Treiberversion die Version des CUDA Kompatibilitätspakets 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 der Grundlage der erkannten Nvidia-Treiberversion für future Kompatibilität zu aktivieren, indem Sie den folgenden Codeausschnitt zum Container-Start-Shell-Skript (im ENTRYPOINT Skript) hinzufügen.

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

#!/bin/bash verlte() { [ "$1" = "$2" ] && return 1 || [ "$2" = "`echo -e "$1\n$2" | sort -V | head -n1`" ] } if [ -f /usr/local/cuda/compat/libcuda.so.1 ]; then cat /usr/local/cuda/version.txt CUDA_COMPAT_MAX_DRIVER_VERSION=$(readlink /usr/local/cuda/compat/libcuda.so.1 |cut -d'.' -f 3-) echo "CUDA compat package requires Nvidia driver ⩽${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 [ $(verlte $CUDA_COMPAT_MAX_DRIVER_VERSION $NVIDIA_DRIVER_VERSION) ]; then echo "Setup CUDA compatibility libs path to LD_LIBRARY_PATH" export LD_LIBRARY_PATH=/usr/local/cuda/compat:$LD_LIBRARY_PATH echo $LD_LIBRARY_PATH else echo "Skip CUDA compat libs setup as newer Nvidia driver is installed" fi else echo "Skip CUDA compat libs setup as package not found" fi