Azure IoT Edge for Linux on Windows 用の GPU アクセラレーション
適用対象: IoT Edge 1.1
重要
IoT Edge 1.1 のサポート終了日は、2022 年 12 月 13 日でした。 本製品、サービス、テクノロジ、または API のサポート内容については、Microsoft 製品のライフサイクルに関するページをご確認ください。 最新バージョンの IoT Edge への更新の詳細については、「 Update IoT Edge」を参照してください。
GPU では並列処理機能が提供され、多くの場合、CPU よりも高速なビジョンベースの推論を実行できるため、人工知能の計算によく使用されます。 人工知能と機械学習アプリケーションのサポートを強化するために、Azure IoT Edge for Linux on Windows (EFLOW) では、仮想マシンの Linux モジュールに GPU を公開できます。
Azure IoT Edge for Linux on Windows では、次のようないくつかの GPU パススルー テクノロジがサポートされています。
デバイスの直接割り当て (DDA) - GPU コアは、Linux 仮想マシンまたはホストのいずれかに割り当てられます。
GPU 準仮想化 (GPU-PV) - GPU は、Linux 仮想マシンとホストの間で共有されます。
デプロイ中に適切なパススルー メソッドを選択して、デバイスの GPU ハードウェアのサポートされている機能に一致させる必要があります。
重要
これらの機能には、NVIDIA Corporation またはそのライセンサーによって開発および所有されているコンポーネントが含まれる場合があります。 コンポーネントの使用は、NVIDIA の Web サイトにある NVIDIA のエンドユーザー使用許諾契約書によって管理されています。
GPU アクセラレーションの機能を使用することにより、NVIDIA のエンドユーザー使用許諾契約書の条件を受け入れて同意したものとなります。
前提条件
Azure IoT Edge for Linux on Windows の GPU アクセラレーション機能では、現在、GPU ハードウェアの厳選されたセットがサポートされています。 また、この機能の使用には特定のバージョンの Windows が必要である場合があります。
サポートされている GPU と必要な Windows のバージョンを次に示します。
サポートされている GPU | GPU パススルーの種類 | サポートされている Windows のバージョン |
---|---|---|
NVIDIA T4、A2 | DDA | Windows Server 2019 Windows Server 2022 Windows 10/11 (Pro、Enterprise、IoT Enterprise) |
NVIDIA GeForce、Quadro、RTX | GPU-PV | Windows 10/11 (Pro、Enterprise、IoT Enterprise) |
Intel iGPU | GPU-PV | Windows 10/11 (Pro、Enterprise、IoT Enterprise) |
重要
GPU-PV のサポートは、GPU ベンダーによって決定される特定の世代のプロセッサまたは GPU アーキテクチャに制限される場合があります。 詳細については、Intel の iGPU ドライバーのドキュメントまたは WSL ドキュメント用の NVIDIA の CUDA を参照してください。
Windows Server 2019 ユーザーは、現在のすべての累積更新プログラムがインストールされた最小ビルド 17763 を使用する必要があります。
Windows 10 ユーザーは 2021 年 11 月の更新プログラム ビルド 19044.1620 以降を使用する必要があります。 インストール後、コマンド プロンプトで winver
を実行してビルドのバージョンを確認できます。
Windows 仮想マシンで EFLOW を実行するなど、入れ子になった仮想化では GPU パススルーはサポートされていません。
システムのセットアップとインストール
次のセクションには、GPU に応じたセットアップとインストールに関する情報が含まれています。
NVIDIA T4/A2 GPU
T4/A2 GPU の場合、Microsoft では、GPU のベンダーから入手したデバイスのリスク軽減ドライバーをインストールすることをお勧めします。 省略可能ですが、リスク軽減ドライバーをインストールすると、デプロイのセキュリティが向上する場合があります。 詳細については、デバイスの直接割り当てを使用したグラフィックス デバイスのデプロイに関する記事を参照してください。
警告
ハードウェア デバイスのパススルーを有効にすると、セキュリティ リスクが高まる可能性があります。 該当する場合は、GPU ベンダーが提供する、デバイスのリスク軽減ドライバーをお勧めします。 詳細については、「Discrete Device Assignment を使用したグラフィックス デバイスのデプロイ」を参照してください。
NVIDIA GeForce/Quadro/RTX GPU
NVIDIA GeForce/Quadro/RTX GPU の場合は、既存の CUDA ML ワークフローで使用するために、Linux 用 Windows サブシステム (WSL) 用の NVIDIA CUDA 対応ドライバーをダウンロードしてインストールします。 WSL 用の CUDA ドライバーは、もともと WSL 用に開発されたものですが、Azure IoT Edge for Linux on Windows にも使用されます。
WSL と Azure IoT Edge for Linux on Windows の間で一部のライブラリが共有されるため、Windows 10 ユーザーは WSL をインストールする必要もあります。
Intel iGPU
Intel iGPU の場合、WSL GPU をサポートする Intel グラフィックス ドライバーをダウンロードしてインストールします。
WSL と Azure IoT Edge for Linux on Windows の間で一部のライブラリが共有されるため、Windows 10 ユーザーは WSL をインストールする必要もあります。
Azure IoT Edge Linux on Windows デプロイで GPU アクセラレーションを有効にする
システムのセットアップが完了すると、Azure IoT Edge for Linux on Windows のデプロイを作成する準備が整います。 このプロセスでは、EFLOW デプロイの一部として GPU を有効にする必要があります。
たとえば、次のコマンドでは、NVIDIA A2 GPU が割り当てられた仮想マシンを作成します。
Deploy-Eflow -gpuPassthroughType "DirectDeviceAssignment" -gpuCount 1 -gpuName "NVIDIA A2"
インストールが完了すると、Azure IoT Edge for Linux on Windows を使用して、GPU アクセラレーションを使用する Linux モジュールをデプロイして実行する準備が整います。
次のステップ
独自のビジョンベースの機械学習アプリケーションを構築する方法を示すソリューション テンプレートである、Vision on Edge を使用する GPU 対応サンプルをお試しください。
Windows 上の Azure IoT Edge for Linux (EFLOW) と OpenVINO Toolkit および reference の実装を使用した iGPU に関するIntel のガイドに従って、EFLOW で Intel OpenVINO アプリケーションを実行する方法について説明。
GPU パススルー テクノロジの詳細については、DDA のドキュメントと GPU-PV のブログ記事をご覧ください。