Best practice per ridurre al minimo le interruzioni durante gli aggiornamenti dei driver della GPU - Amazon SageMaker

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Best practice per ridurre al minimo le interruzioni durante gli aggiornamenti dei driver della GPU

SageMaker Model Deployment aggiorna i driver GPU sulle istanze ML per le opzioni Real-time, Batch e Asynchronous Inference nel tempo per fornire ai clienti l'accesso ai miglioramenti dei fornitori di driver. Di seguito puoi vedere la versione della GPU supportata per ciascuna opzione di Inferenza. Versioni diverse dei driver possono cambiare il modo in cui il modello interagisce con le GPU. Di seguito sono riportate alcune strategie per aiutarti a capire come funziona l'applicazione con le diverse versioni dei driver.

Versioni correnti e famiglie di istanze supportate

Amazon SageMaker Inference supporta i seguenti driver e famiglie di istanze:

Servizio GPU Versione driver Tipi di istanza
Real-time NVIDIA 470,57,02 ml.p2.*, ml.p3.*, ml.p4d.*, ml.p4de.*, ml.g4dn.*, ml.g5.*
535,54,03 ml.p5.*, ml.g6. *
Archiviazione NVIDIA 470,57,02 ml.p2.*, ml.p3.*, ml.p4d.*, ml.p4de.*, ml.g4dn.*, ml.g5*
Inferenza asincrona NVIDIA 470,57,02 ml.p2.*, ml.p3.*, ml.p4d.*, ml.p4de.*, ml.g4dn.*, ml.g5*
535,54,03 ml.p5.*, ml.g6. *

Risolvi i problemi del container del modello con funzionalità GPU

Se riscontri un problema durante l'esecuzione del carico di lavoro della GPU, consulta le seguenti indicazioni:

Esegui il comando nvidia-smi (NVIDIA System Management Interface) dall'interno del container Docker. Se l'interfaccia di gestione del sistema NVIDIA rileva un errore di rilevamento della GPU o un errore di inizializzazione NVIDIA, restituirà il seguente messaggio di errore:

Failed to initialize NVML: Driver/library version mismatch

In base al vostro caso d'uso, seguite le seguenti best practice per risolvere l'errore:

Per ulteriori informazioni, consulta la pagina Interfaccia di gestione del sistema NVIDIA sul sito Web di NVIDIA.

Se l'istanza GPU utilizza versioni di driver NVIDIA non compatibili con la versione CUDA nel container Docker, la distribuzione di un endpoint avrà esito negativo e verrà visualizzato il seguente messaggio di errore:

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

In base al vostro caso d'uso, seguite le seguenti best practice per risolvere l'errore:

Best practice per lavorare con versioni non corrispondenti dei driver

Di seguito vengono fornite informazioni su come aggiornare il driver della GPU:

Nessuna operazione richiesta. NVIDIA offre la compatibilità con le versioni precedenti.

Se si tratta di una differenza di versione minore, nessuna operazione richiesta. NVIDIA offre la compatibilità con le versioni minori.

Se si tratta di una differenza di versione importante, sarà necessario installare il pacchetto di compatibilità CUDA. Fai riferimento al pacchetto di compatibilità CUDA nella documentazione NVIDIA.

Importante

Il pacchetto di compatibilità CUDA non è compatibilità con le versioni precedenti, quindi deve essere disabilitato se la versione del driver sull'istanza è superiore alla versione del pacchetto di compatibilità CUDA

Assicurati che nell'immagine non siano inclusi pacchetti di driver NVIDIA, il che potrebbe causare conflitti con la versione del driver NVIDIA sull'host.

Per verificare se la versione del driver Nvidia della piattaforma supporta la versione del pacchetto di compatibilità CUDA installata nel container del modello, consulta la Documentazione CUDA. Se la versione del driver Nvidia della piattaforma non supporta la versione del pacchetto di compatibilità CUDA, puoi disabilitare o rimuovere il pacchetto di compatibilità CUDA dall'immagine del container del modello. Se la versione delle libs di compatibilità CUDA è supportata dall'ultima versione del driver Nvidia, ti suggeriamo di abilitare il pacchetto di compatibilità CUDA in base alla versione del driver Nvidia rilevata per la compatibilità futura, aggiungendo lo snippet di codice sottostante nello script di shell di avvio del container (nello script ENTRYPOINT).

Lo script dimostra come cambiare dinamicamente l'uso del pacchetto di compatibilità CUDA in base alla versione del driver Nvidia rilevata sull'host distribuito per il container del modello. Quando viene SageMaker rilasciata una versione più recente del driver Nvidia, il CUDA Compatibility Package installato può essere disattivato automaticamente se l'applicazione CUDA è supportata nativamente sul nuovo driver.

#!/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