選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

更新 SageMaker AI 端點以符合 NVIDIA Container Toolkit

焦點模式
更新 SageMaker AI 端點以符合 NVIDIA Container Toolkit - Amazon SageMaker AI

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

從 1.17.4 版及更新版本開始,NVIDIA Container Toolkit 不再自動掛載 CUDA 相容性程式庫。此行為變更可能會導致 SageMaker AI 端點與最新版本的 NVIDIA Container Toolkit 不相容。

我們建議您更新現有的 SageMaker AI 端點,或建立新的支援最新預設行為的端點。

若要確保您的端點與最新版本的 NVIDIA Container Toolkit 相容,請遵循下列步驟:

  1. 如果您攜帶自己的容器,請更新如何設定 CUDA 相容性程式庫。

  2. 指定支援最新 NVIDIA Container Toolkit 行為的推論 Amazon Machine Image (AMI)。您在更新現有端點或建立新的端點時指定 AMI。

如果您攜帶自己的容器,請更新 CUDA 相容性設定

CUDA 相容性程式庫可實現向前相容性。此相容性適用於比 SageMaker AI 執行個體提供的 NVIDIA 驅動程式更新的 CUDA 工具組版本。

只有當 SageMaker AI 執行個體使用的 NVIDIA 驅動程式具有比模型容器中 CUDA 工具組更舊的版本時,您才必須啟用 CUDA 相容性程式庫。如果您的模型容器不需要 CUDA 相容性,您可以略過此步驟。例如,如果您不打算使用比 SageMaker AI 執行個體更新的 CUDA 工具組,則可以略過此步驟。

由於 NVIDIA Container Toolkit 1.17.4 版中引入的變更,您可以視需要LD_LIBRARY_PATH將 CUDA 相容性程式庫新增至容器中,以明確啟用 CUDA 相容性程式庫。

建議您根據偵測到的 NVIDIA 驅動程式版本啟用 CUDA 相容性。若要啟用它,請將下面的程式碼片段新增至容器啟動 shell 指令碼。在ENTRYPOINT指令碼中新增此程式碼。

下列指令碼示範如何根據模型容器部署主機上偵測到的 NVIDIA 驅動程式版本,動態切換 CUDA 相容性的使用。

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

指定符合 NVIDIA Container Toolkit 的推論 AMI

ProductionVariant 資料類型的 InferenceAmiVersion 參數中,您可以選取 SageMaker AI 端點的 AMI。每個支援的 AMIs都是預先設定的映像。每個映像都是 AWS 使用一組軟體和驅動程式版本來設定。

根據預設,SageMaker AI AMIs遵循舊版行為。它們會自動在容器中掛載 CUDA 相容性程式庫。若要讓端點使用新行為,您必須指定針對新行為設定的推論 AMI 版本。

下列推論 AMI 版本目前遵循新的行為。它們不會自動掛載 CUDA 相容性程式庫。

al2-ami-sagemaker-inference-gpu-2-1
  • NVIDIA 驅動程式版本:535.54.03

  • CUDA 版本:12.2

al2-ami-sagemaker-inference-gpu-3-1
  • NVIDIA 驅動程式版本:550.144.01

  • CUDA 版本:12.4

更新現有端點

使用下列範例來更新現有的端點。此範例使用推論 AMI 版本,可停用 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

建立新端點

使用下列範例來建立新的端點。此範例使用推論 AMI 版本,可停用 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>"
隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。