次の方法で共有


Azure IoT Edge for Linux on Windows 用の GPU アクセラレーション

適用対象:IoT Edge 1.5 のチェックマーク IoT Edge 1.5

重要

IoT Edge 1.5 LTS は、サポートされているリリースです。 IoT Edge 1.4 LTS は、2024 年 11 月 12 日をもってサポートが終了しています。 以前のリリースの場合は、「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 End-User 使用許諾契約書の条項に同意したものと見なされます。

前提条件

Windows 上の Azure IoT Edge for Linux の 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 for WSL ドライバーは、Windows 上の Azure IoT Edge for Linux でも使用されます。

Windows 10 ユーザーも WSL をインストール する必要があります。一部のライブラリは、WINDOWS 上の WSL と Azure IoT Edge for Linux の間で共有されるためです。

Intel iGPU

Intel iGPU の場合、WSL GPU をサポートする Intel グラフィックス ドライバーをダウンロードしてインストールします。

Windows 10 ユーザーも WSL をインストール する必要があります。一部のライブラリは、WINDOWS 上の WSL と Azure IoT Edge for Linux の間で共有されるためです。

Azure IoT Edge Linux on Windows デプロイで GPU アクセラレーションを有効にする

システムのセットアップが完了したら、 Windows 上の Linux 用 Azure IoT Edge のデプロイの作成を開始します。 このプロセス中に、EFLOW デプロイの一部として GPU サポート を有効にします。

たとえば、これらのコマンドでは、NVIDIA A2 GPU または Intel Iris Xe グラフィックス カードを使用して GPU 対応の仮想マシンが作成されます。

#Deploys EFLOW with NVIDIA A2 assigned to the EFLOW VM
Deploy-Eflow -gpuPassthroughType DirectDeviceAssignment -gpuCount 1 -gpuName "NVIDIA A2"

#Deploys EFLOW with Intel(R) Iris(R) Xe Graphics assigned to the EFLOW VM
Deploy-Eflow -gpuPassthroughType ParaVirtualization -gpuCount 1 -gpuName "Intel(R) Iris(R) Xe Graphics"

GPU 名を見つけるには、このコマンドを実行するか、デバイス マネージャーでディスプレイ アダプターを探します。

(Get-WmiObject win32_VideoController).caption

インストールが完了したら、Windows 上の Azure IoT Edge for Linux を使用して GPU アクセラレータ Linux モジュールをデプロイして実行します。

既存の Azure IoT Edge Linux on Windows デプロイで GPU アクセラレーションを構成する

最も簡単なエクスペリエンスを実現するために、デプロイ時に GPU を割り当てます。 デプロイ後に GPU を有効または無効にするには、 set-eflowvm コマンドを使用します。 set-eflowvmを使用すると、指定しない引数に既定のパラメーターが使用されます。 たとえば、 にします。

# Deploys EFLOW without a GPU assigned to the EFLOW VM
Deploy-Eflow -cpuCount 4 -memoryInMB 16384

# Assigns NVIDIA A2 GPU to the existing deployment (cpu and memory must still be specified, or they're set to the default values)
Set-EflowVM -cpuCount 4 -memoryInMB 16384 -gpuName "NVIDIA A2" -gpuPassthroughType DirectDeviceAssignment -gpuCount 1

# Reduces the cpuCount and memory (GPU must still be specified, or the GPU is removed)
Set-EflowVM -cpuCount 2 -memoryInMB 4096 -gpuName "NVIDIA A2" -gpuPassthroughType DirectDeviceAssignment -gpuCount 1

# Removes NVIDIA A2 GPU from the existing deployment
Set-EflowVM -cpuCount 2 -memoryInMB 4096

次のステップ

  • EFLOW サンプルの GPU サンプルをお試しください。 これらのサンプルは、欠陥検出、作業者の安全性、在庫管理などの一般的な製造および小売シナリオを示しています。 これらのオープンソースサンプルは、独自のビジョンベースの機械学習アプリケーションを構築するためのソリューション テンプレートにすることができます。

  • GPU パススルー テクノロジの詳細については、 DDA のドキュメント ブログ記事GPU-PV 参照してください

いくつかの GPU ベンダーは、EFLOW を使用してハードウェアとソフトウェアを最大限に活用するためのユーザー ガイドを提供しています。