Le migliori pratiche per ridurre al minimo le interruzioni durante gli aggiornamenti dei driver 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à.

Le migliori pratiche per ridurre al minimo le interruzioni durante gli aggiornamenti dei driver GPU

SageMaker Model Deployment aggiorna GPU i driver sulle istanze ML per le opzioni Real-time, Batch e Asynchronous Inference nel tempo per fornire ai clienti l'accesso ai miglioramenti offerti dai fornitori di driver. Di seguito puoi vedere la GPU versione supportata per ogni opzione di Inference. Diverse versioni dei driver possono modificare il modo in cui il modello interagisce con. GPUs 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 contenitore modello con funzionalità GPU

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

Esegui il comando nvidia-smi (NVIDIASystem Management Interface) dall'interno del contenitore Docker. Se l'interfaccia di gestione NVIDIA del sistema rileva un errore di GPU rilevamento o un errore di NVIDIA inizializzazione, 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, consultate la pagina dell'interfaccia di gestione del NVIDIA sistema sul NVIDIA sito Web.

Se l'GPUistanza utilizza versioni di NVIDIA driver non compatibili con la CUDA versione nel contenitore 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: GPU

Nessuna operazione richiesta. NVIDIAfornisce la compatibilità con le versioni precedenti.

Se si tratta di una differenza di versione minore, nessuna operazione richiesta. NVIDIAfornisce una compatibilità minore con le versioni successive.

Se si tratta di una differenza di versione importante, sarà necessario installare il CUDA Compatibility Package. Fai riferimento a CUDACompatibility Package nella NVIDIA documentazione.

Importante

Il CUDA Compatibility Package non è retrocompatibile, quindi deve essere disabilitato se la versione del driver sull'istanza è superiore alla versione del CUDA Compatibility Package.

Assicurati che nell'immagine non sia incluso alcun pacchetto di NVIDIA driver, il che potrebbe causare conflitti con la versione del NVIDIA driver host.

Per verificare se la versione del driver Nvidia della piattaforma supporta la versione CUDA Compatibility Package installata nel contenitore del modello, consulta la CUDAdocumentazione. Se la versione del driver Nvidia della piattaforma non supporta la versione del CUDA Compatibility Package, puoi disabilitare o rimuovere il CUDA Compatibility Package dall'immagine del contenitore del modello. Se la versione CUDA compatibility libs è supportata dall'ultima versione del driver Nvidia, ti suggeriamo di abilitare il Compatibility CUDA Package basato sulla versione del driver Nvidia rilevata per la compatibilità futura aggiungendo il frammento di codice riportato di seguito nello script della shell di avvio del contenitore (nello script). ENTRYPOINT

Lo script dimostra come cambiare dinamicamente l'uso del Compatibility CUDA Package in base alla versione del driver Nvidia rilevata sull'host distribuito per il contenitore modello. Quando viene SageMaker rilasciata una versione più recente del driver Nvidia, il Compatibility CUDA Package installato può essere disattivato automaticamente se l'CUDAapplicazione è 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