翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
GPU ドライバーのアップグレード中の中断を最小限に抑えるためのベストプラクティス
SageMaker Model Deployment は、リアルタイム、バッチ、非同期推論オプションの ML インスタンスGPUのドライバーを経時的にアップグレードし、ドライバープロバイダーからの改善点へのアクセスをお客様に提供します。以下に、各推論オプションでサポートされているGPUバージョンを示します。異なるドライバーバージョンにより、モデルと のインタラクション方法が変わる可能性がありますGPUs。以下は、アプリケーションがさまざまなドライバーバージョンでどのように動作するかを理解するのに役立つ戦略の一部です。
現在のバージョンとサポートされているインスタンスファミリー
Amazon SageMaker Inference では、次のドライバーとインスタンスファミリーがサポートされています。
サービス | GPU | ドライバーのバージョン | インスタンスのタイプ |
---|---|---|---|
リアルタイム | NVIDIA | 470.57.02 | ml.p2.*、ml.p3.*、ml.p4d.*、ml.p4de.*、ml.g4dn.*、ml.g5.* |
535.54.03 | ml.p5.*、ml.g6.* | ||
バッチ | NVIDIA | 470.57.02 | ml.p2.*、ml.p3.*、ml.p4d.*、ml.p4de.*、ml.g4dn.*、ml.g5* |
非同期推論 | NVIDIA | 470.57.02 | ml.p2.*、ml.p3.*、ml.p4d.*、ml.p4de.*、ml.g4dn.*、ml.g5* |
535.54.03 | ml.p5.*、ml.g6.* |
GPU 機能を使用してモデルコンテナをトラブルシューティングする
GPU ワークロードの実行中に問題が発生した場合は、次のガイダンスを参照してください。
( nvidia-smi
System Management Interface) コマンドをNVIDIA Docker コンテナ内から実行します。NVIDIA System Management Interface がGPU検出エラーまたはNVIDIA初期化エラーを検出すると、次のエラーメッセージが返されます。
Failed to initialize NVML: Driver/library version mismatch
ユースケースに応じて、以下のベストプラクティスに従って障害またはエラーを解決します。
独自の (BYO) モデルコンテナをお持ちの場合 ドロップダウンに表示されるベストプラクティスの推奨事項に従います。
CUDA 互換性レイヤーを使用する場合 ドロップダウンに表示されるベストプラクティスの推奨事項に従います。
詳細については、NVIDIAウェブサイトのNVIDIAシステム管理インターフェイスページ
GPU インスタンスが Docker コンテナ内のバージョンと互換性のないNVIDIAドライバー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互換性パッケージをインストールする必要があります。NVIDIA ドキュメントのCUDA「互換性パッケージ
重要
CUDA 互換性パッケージは下位互換性がないため、インスタンスのドライバーバージョンがCUDA互換性パッケージバージョンより大きい場合は無効にする必要があります。
ホストNVIDIAドライバーバージョンで と競合する可能性のあるNVIDIAドライバーパッケージがイメージにバンドルされていないことを確認します。
プラットフォームの Nvidia ドライバーバージョンがモデルコンテナにインストールされているCUDA互換性パッケージバージョンをサポートしているかどうかを確認するには、CUDAドキュメント ENTRYPOINT
スクリプトで) に以下のコードスニペットを追加して、検出された Nvidia ドライバーバージョンに基づいて互換性CUDAパッケージを有効にすることをお勧めします。
このスクリプトは、モデルコンテナのデプロイされたホストで検出された Nvidia ドライバーのバージョンに基づいてCUDA、互換性パッケージの使用を動的に切り替える方法を示しています。が新しい Nvidia ドライバーバージョンを SageMaker リリースすると、CUDAアプリケーションが新しいドライバーでネイティブにサポートされている場合、インストールされているCUDA互換性パッケージを自動的にオフにできます。
#!/bin/bash verlte() { [ "$1" = "$2" ] && return 1 || [ "$2" = "`echo -e "$1\n$2" | sort -V | head -n1`" ] } if [ -f /usr/local/cuda/compat/libcuda.so.1 ]; then cat /usr/local/cuda/version.txt CUDA_COMPAT_MAX_DRIVER_VERSION=$(readlink /usr/local/cuda/compat/libcuda.so.1 |cut -d'.' -f 3-) echo "CUDA compat package requires Nvidia driver ⩽${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 [ $(verlte $CUDA_COMPAT_MAX_DRIVER_VERSION $NVIDIA_DRIVER_VERSION) ]; then echo "Setup CUDA compatibility libs path to LD_LIBRARY_PATH" export LD_LIBRARY_PATH=/usr/local/cuda/compat:$LD_LIBRARY_PATH echo $LD_LIBRARY_PATH else echo "Skip CUDA compat libs setup as newer Nvidia driver is installed" fi else echo "Skip CUDA compat libs setup as package not found" fi