次の方法で共有


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

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

重要

IoT Edge 1.5 LTS は、サポートされているリリースです。 IoT Edge 1.4 LTS は 2024 年 11 月 12 日に終了しました。 以前のリリースを使用している場合は、「Update IoT Edgeを参照してください。

GPU は並列処理機能を提供し、多くの場合、CPU よりもビジョンベースの推論を高速に実行するため、人工知能の計算に一般的な選択肢です。 人工知能と機械学習アプリケーションをサポートするために、Windows (EFLOW) 上の Linux 用のAzure IoT Edgeは、仮想マシンの Linux モジュールに GPU を公開します。

Windows 上の Linux Azure IoT Edgeでは、次のようないくつかの GPU パススルー テクノロジがサポートされています。

  • デバイスの直接割り当て (DDA) - GPU コアは、Linux 仮想マシンまたはホストのいずれかに割り当てられます。

  • GPU 準仮想化 (GPU-PV) - GPU は、Linux 仮想マシンとホストの間で共有されます。

デプロイ中に適切なパススルー メソッドを選択して、デバイスの GPU ハードウェアのサポートされている機能に一致させる必要があります。

重要

これらの機能には、NVIDIA Corporation またはそのライセンサーによって開発および所有されているコンポーネントが含まれる場合があります。 コンポーネントの使用は、NVIDIA の Web サイトにある NVIDIA のエンドユーザー使用許諾契約書によって管理されています。

GPU アクセラレーション機能を使用すると、NVIDIA End-User 使用許諾契約書の条項に同意したものと見なされます。

前提条件

現在、Windows 上の linux 用Azure IoT Edgeの 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ユーザーは、November 2021 更新プログラム ビルド 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 ワークフローで使用する NVIDIA CUDA 対応ドライバー for Windows Subsystem for Linux (WSL) をダウンロードしてインストールします。 もともと WSL 用に開発された WSL ドライバー用の CUDA は、Windows上の Linux 用のAzure IoT Edgeでも使用されます。

一部のライブラリは 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インストールする必要があります。

Windows デプロイで Azure IoT Edge Linux で 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 名を見つけるには、このコマンドを実行するか、Device Managerでディスプレイ アダプターを探します。

(Get-WmiObject win32_VideoController).caption

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

Windowsデプロイで既存の Azure IoT Edge Linux で 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 を使用してハードウェアとソフトウェアを最大限に活用するためのユーザー ガイドを提供しています。