Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
À partir des versions 1.17.4 et supérieures, le NVIDIA Container Toolkit ne monte plus automatiquement les bibliothèques de compatibilité CUDA. Ce changement de comportement peut rendre vos points de terminaison d' SageMaker IA incompatibles avec les dernières versions du NVIDIA Container Toolkit.
Nous vous recommandons de mettre à jour vos points de terminaison SageMaker AI existants ou d'en créer de nouveaux qui prennent en charge le dernier comportement par défaut.
Pour vous assurer que votre terminal est compatible avec les dernières versions du NVIDIA Container Toolkit, procédez comme suit :
-
Mettez à jour la façon dont vous configurez les bibliothèques de compatibilité CUDA si vous apportez votre propre conteneur.
-
Spécifiez une inférence Amazon Machine Image (AMI) compatible avec le dernier comportement du NVIDIA Container Toolkit. Vous spécifiez une AMI lorsque vous mettez à jour un point de terminaison existant ou lorsque vous en créez un nouveau.
Mise à jour de la configuration de compatibilité CUDA si vous apportez votre propre conteneur
Les bibliothèques de compatibilité CUDA permettent une compatibilité ascendante. Cette compatibilité s'applique à toutes les versions du kit d'outils CUDA plus récentes que le pilote NVIDIA fourni par l'instance SageMaker AI.
Vous devez activer les bibliothèques de compatibilité CUDA uniquement lorsque le pilote NVIDIA utilisé par l'instance SageMaker AI possède une version plus ancienne que le kit d'outils CUDA contenu dans le conteneur du modèle. Si votre modèle de conteneur ne nécessite pas la compatibilité CUDA, vous pouvez ignorer cette étape. Par exemple, vous pouvez ignorer cette étape si vous ne prévoyez pas d'utiliser une boîte à outils CUDA plus récente que celles fournies par les instances SageMaker AI.
En raison des modifications apportées à la version 1.17.4 du NVIDIA Container Toolkit, vous pouvez activer explicitement les bibliothèques de compatibilité CUDA, si nécessaire, LD_LIBRARY_PATH
en les ajoutant au conteneur.
Nous vous suggérons d'activer la compatibilité CUDA en fonction de la version du pilote NVIDIA détectée. Pour l'activer, ajoutez l'extrait de code ci-dessous au script shell de démarrage du conteneur. Ajoutez ce code dans le ENTRYPOINT
script.
Le script suivant montre comment changer dynamiquement l'utilisation de la compatibilité CUDA en fonction de la version du pilote NVIDIA détectée sur l'hôte déployé pour votre modèle de conteneur.
#!/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
Spécification d'une AMI d'inférence conforme au NVIDIA Container Toolkit
Dans le InferenceAmiVersion
paramètre du type de ProductionVariant
données, vous pouvez sélectionner l'AMI pour un point de terminaison SageMaker AI. Chacune des images prises en charge AMIs est une image préconfigurée. Chaque image est configurée à l' AWS aide d'un ensemble de versions de logiciels et de pilotes.
Par défaut, l' SageMaker IA AMIs suit le comportement existant. Ils montent automatiquement les bibliothèques de compatibilité CUDA dans le conteneur. Pour qu'un point de terminaison utilise le nouveau comportement, vous devez spécifier une version d'AMI d'inférence configurée pour le nouveau comportement.
Les versions d'AMI d'inférence suivantes suivent actuellement le nouveau comportement. Ils ne montent pas automatiquement les bibliothèques de compatibilité CUDA.
- al2- -2-1 ami-sagemaker-inference-gpu
-
-
Version du pilote NVIDIA : 535.54.03
-
Version CUDA : 12.2
-
- al2- -3-1 ami-sagemaker-inference-gpu
-
-
Version du pilote NVIDIA : 550.144.01
-
Version CUDA : 12.4
-
Mettre à jour un point de terminaison existant
Utilisez l'exemple suivant pour mettre à jour un point de terminaison existant. L'exemple utilise une version d'AMI d'inférence qui désactive le montage automatique des bibliothèques de 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
Création d'un nouveau terminal
Utilisez l'exemple suivant pour créer un nouveau point de terminaison. L'exemple utilise une version d'AMI d'inférence qui désactive le montage automatique des bibliothèques de 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>"