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à.
A partire dalle versioni 1.17.4 e successive, NVIDIA Container Toolkit non monta più automaticamente le librerie di compatibilità CUDA. Questo cambiamento di comportamento potrebbe rendere gli endpoint SageMaker AI incompatibili con le ultime versioni di NVIDIA Container Toolkit.
Ti consigliamo di aggiornare gli endpoint SageMaker AI esistenti o di crearne di nuovi che supportino il comportamento predefinito più recente.
Per garantire che il tuo endpoint sia compatibile con le ultime versioni di NVIDIA Container Toolkit, segui questi passaggi:
-
Aggiorna il modo in cui configuri le librerie di compatibilità CUDA se porti il tuo contenitore.
-
Specificare un'inferenza Amazon Machine Image (AMI) che supporti il comportamento più recente di NVIDIA Container Toolkit. Si specifica un AMI quando si aggiorna un endpoint esistente o si crea uno nuovo.
Aggiornamento della configurazione di compatibilità CUDA se porti il tuo contenitore
Le librerie di compatibilità CUDA consentono la compatibilità futura. Questa compatibilità si applica a tutte le versioni del toolkit CUDA più recenti del driver NVIDIA fornito dall'istanza AI. SageMaker
È necessario abilitare le librerie di compatibilità CUDA solo quando il driver NVIDIA utilizzato dall'istanza SageMaker AI ha una versione precedente al toolkit CUDA nel contenitore del modello. Se il contenitore del modello non richiede la compatibilità con CUDA, puoi saltare questo passaggio. Ad esempio, puoi saltare questo passaggio se non prevedi di utilizzare un toolkit CUDA più recente di quelli forniti dalle istanze AI. SageMaker
Grazie alle modifiche introdotte nella versione 1.17.4 di NVIDIA Container Toolkit, puoi abilitare esplicitamente le librerie di compatibilità CUDA, se necessario, aggiungendole nel contenitore. LD_LIBRARY_PATH
Ti consigliamo di abilitare la compatibilità CUDA in base alla versione del driver NVIDIA rilevata. Per abilitarlo, aggiungi il frammento di codice riportato di seguito allo script della shell di avvio del contenitore. Aggiungi questo codice allo script. ENTRYPOINT
Lo script seguente mostra come cambiare dinamicamente l'uso della compatibilità CUDA in base alla versione del driver NVIDIA rilevata sull'host distribuito per il contenitore modello.
#!/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
Specificare un'AMI di inferenza conforme a NVIDIA Container Toolkit
Nel InferenceAmiVersion
parametro del tipo di ProductionVariant
dati, puoi selezionare l'AMI per un endpoint SageMaker AI. Ciascuna delle immagini supportate AMIs è un'immagine preconfigurata. Ogni immagine è configurata AWS con un set di versioni di software e driver.
Per impostazione predefinita, l' SageMaker IA AMIs segue il comportamento precedente. Montano automaticamente le librerie di compatibilità CUDA nel contenitore. Per fare in modo che un endpoint utilizzi il nuovo comportamento, devi specificare una versione dell'AMI di inferenza configurata per il nuovo comportamento.
Le seguenti versioni dell'AMI di inferenza attualmente seguono il nuovo comportamento. Non montano automaticamente le librerie di compatibilità CUDA.
- al2- -2-1 ami-sagemaker-inference-gpu
-
-
Versione del driver NVIDIA: 535.54.03
-
Versione CUDA: 12.2
-
- al2- -3-1 ami-sagemaker-inference-gpu
-
-
Versione del driver NVIDIA: 550.144.01
-
Versione CUDA: 12.4
-
Aggiornamento di un endpoint esistente
Usa l'esempio seguente per aggiornare un endpoint esistente. L'esempio utilizza una versione AMI di inferenza che disabilita il montaggio automatico delle librerie di compatibilità CUDA.
ENDPOINT_NAME="<endpoint name>"
INFERENCE_AMI_VERSION="al2-ami-sagemaker-inference-gpu-3-1"
# Obtaining current endpoint configuration
CURRENT_ENDPOINT_CFG_NAME=$(aws sagemaker describe-endpoint --endpoint-name "$ENDPOINT_NAME" --query "EndpointConfigName" --output text)
NEW_ENDPOINT_CFG_NAME="${CURRENT_ENDPOINT_CFG_NAME}new"
# Copying Endpoint Configuration with AMI version specified
aws sagemaker describe-endpoint-config \
--endpoint-config-name ${NEW_ENDPOINT_CFG_NAME} \
--output json | \
jq "del(.EndpointConfigArn, .CreationTime) | . + {
EndpointConfigName: \"${NEW_ENDPOINT_CFG_NAME}\",
ProductionVariants: (.ProductionVariants | map(.InferenceAmiVersion = \"${INFERENCE_AMI_VERSION}\"))
}" > /tmp/new_endpoint_config.json
# Confirming generated endpoint config looks as expected
cat /tmp/new_endpoint_config.json
# Creating new endpoint config
aws sagemaker create-endpoint-config \
--cli-input-json file:///tmp/new_endpoint_config.json
# Updating the endpoint
aws sagemaker update-endpoint \
--endpoint-name "$ENDPOINT_NAME" \
--endpoint-config-name "$NEW_ENDPOINT_CFG_NAME" \
--retain-all-variant-properties
Creazione di un nuovo endpoint
Usa l'esempio seguente per creare un nuovo endpoint. L'esempio utilizza una versione AMI di inferenza che disabilita il montaggio automatico delle librerie di compatibilità CUDA.
INFERENCE_AMI_VERSION="al2-ami-sagemaker-inference-gpu-3-1"
aws sagemakercreate-endpoint-config \
--endpoint-config-name "<endpoint_config>" \
--production-variants '[{ \
....
"InferenceAmiVersion": "${INFERENCE_AMI_VERSION}", \
...
"}]'
aws sagemaker create-endpoint \
--endpoint-name "<endpoint_name>" \
--endpoint-config-name "<endpoint_config>"