翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
SageMaker AI Model Deployment は、リアルタイム、バッチ、非同期推論オプション用に ML インスタンスの GPU ドライバーを経時的にアップグレードし、ドライバープロバイダーからの改善点へのアクセスを顧客に提供します。以下に、各推論オプションでサポートされている GPU バージョンを示します。ドライバーのバージョンが異なると、モデルが GPU とやり取りする方法が変わる可能性があります。以下は、アプリケーションがさまざまなドライバーバージョンでどのように動作するかを理解するのに役立つ戦略の一部です。
現在のバージョンとサポートされているインスタンスファミリー
Amazon SageMaker AI Inference は、以下のドライバーとインスタンスファミリーをサポートしています。
サービス | GPU | ドライバーバージョン | CUDA バージョン | インスタンスのタイプ |
---|---|---|---|---|
リアルタイム | 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.* | ||
非同期推論 | 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.* | ||
バッチ | NVIDIA | 470 | CUDA 11.4 | ml.p2.*、ml.p3.*、ml.p4d.*、ml.p4de.*、ml.g4dn.*、ml.g5* |
GPU 機能に関連するモデルコンテナのトラブルシューティング
GPU ワークロードを実行中に問題が発生した場合は、次のガイダンスを参照してください。
Docker コンテナ内から nvidia-smi
(NVIDIA システム管理インターフェイス) コマンドを実行します。NVIDIA システム管理インターフェイスにより GPU 検出エラーまたは NVIDIA 初期化エラーが検出されると、次のエラーメッセージが返されます。
Failed to initialize NVML: Driver/library version mismatch
ユースケースに応じて、以下のベストプラクティスに従って障害またはエラーを解決します。
BYO(Bring Your Own)モデルのコンテナの場合 ドロップダウンに表示されるベストプラクティスの推奨事項に従います。
CUDA 互換性レイヤーを使用する場合 ドロップダウンに表示されるベストプラクティスの推奨事項に従います。
詳細については、NVIDIA Web サイトの NVIDIA システム管理インターフェイスのページ
GPU インスタンスで使用されている NVIDIA ドライバーのバージョンが Docker コンテナの CUDA バージョンと互換性がない場合、エンドポイントのデプロイは失敗し、次のエラーメッセージが表示されます。
Failure reason CannotStartContainerError. Please ensure the model container for variant <variant_name> starts correctly when invoked with 'docker run <image> serve'
ユースケースに応じて、以下のベストプラクティスに従って障害またはエラーを解決します。
コンテナが依存しているドライバーが ML GPU インスタンスのバージョンよりも新しい ドロップダウンに表示されるベストプラクティスの推奨事項に従います。
CUDA 互換性レイヤーを使用する場合 ドロップダウンに表示されるベストプラクティスの推奨事項に従います。
ドライバのバージョンが一致しない場合のベストプラクティス
以下に、GPU ドライバーの更新方法に関する情報を示します。
アクションは必要ありません。NVIDIA には下位互換性があります。
マイナーバージョンアップによる違いであれば、何もする必要はありません。NVIDIA はマイナーバージョンでの上位互換性を備えています。
メジャーバージョンアップによる違いであれば、CUDA Compatibility Package をインストールする必要があります。NVIDIA ドキュメントの 「CUDA Compatibility Package
重要
CUDA Compatibility Package は下位互換性を備えていないため、インスタンスのドライバーバージョンが CUDA Compatibility Package バージョンよりも新しい場合は、無効にする必要があります。
ホスト上の NVIDIA ドライバーバージョンと競合する可能性のある NVIDIA ドライバーパッケージがイメージにバンドルされていないことを確認してください。
プラットフォームの Nvidia ドライバーバージョンが、モデルコンテナにインストールされている CUDA Compatibility Package バージョンをサポートしているかどうかを確認するには、CUDA のドキュメントENTRYPOINT
スクリプト) に追加して、将来の互換性を保障するために、検出された Nvidia ドライバーバージョンに基づいて CUDA Compatibility Package を有効にすることをお勧めします。
このスクリプトは、モデルコンテナのデプロイされたホストで検出された Nvidia ドライバーバージョンに基づいて、CUDA Compatibility Package の使用を動的に切り替える方法を示しています。SageMaker が新しいバージョンの Nvidia ドライバーをリリースする際、CUDA アプリケーションが新しいドライバーでネイティブにサポートされていれば、インストールされている CUDA Compatibility Package が自動的にオフになります。
#!/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