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 AI Model Deployment aggiorna nel tempo i driver GPU sulle istanze ML per le opzioni di inferenza in tempo reale, Batch e Asynchronous Inference 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. 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 AI Inference supporta i seguenti driver e famiglie di istanze:
Servizio | GPU | Versione driver | versione CUDA | Tipi di istanza |
---|---|---|---|---|
Real-time | 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. * | ||
Inferenza asincrona | 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. * | ||
Archiviazione | NVIDIA | 470 | CUDA 11.4 | ml.p2.*, ml.p3.*, ml.p4d.*, ml.p4de.*, ml.g4dn.*, ml.g5* |
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:
Segui le raccomandazioni sulle best practice descritte nel menu a discesa Se porti i tuoi container di modello (BYO).
Segui le raccomandazioni sulle best practice descritte nel menu a discesa Se utilizzi un livello di compatibilità CUDA.
Per ulteriori informazioni, consulta la pagina Interfaccia di gestione del sistema 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:
Segui le raccomandazioni sulle best practice descritte nel menu a discesa Il driver da cui dipende il mio container è superiore alla versione presente sulle istanze della GPU di ML.
Segui le raccomandazioni sulle best practice descritte nel menu a discesa Se utilizzi un livello di compatibilità CUDA.
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
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 CUDAENTRYPOINT
).
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 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