適用於 Azure IoT Edge for Linux on Windows 的 GPU 加速

適用於:IoT Edge 1.5 複選標記 IoT Edge 1.5 IoT Edge 1.4 複選標記 IoT Edge 1.4

重要

支援 IoT Edge 1.5 LTS 和 IoT Edge 1.4 LTS 版本。 IoT Edge 1.4 LTS 於 2024 年 11 月 12 日結束生命週期。 如果您是舊版,請參閱更新 IoT Edge

GPU 是人工智慧計算的熱門選擇,因為它們提供平行處理功能,而且通常會比 CPU 更快執行以視覺為基礎的推斷。 為了更進一步支援人工智慧和機器學習應用程式,Windows 上的 Azure IoT Edge for Linux(EFLOW) 可以將 GPU 公開至虛擬機的 Linux 模組。

Windows 上的 Azure IoT Edge for Linux 支持數種 GPU 傳遞技術,包括:

  • 直接裝置指派 (DDA) - GPU 核心會配置給 Linux 虛擬機或主機。

  • GPU-Paravirtualization (GPU-PV) - GPU 會在 Linux 虛擬機與主機之間共用。

您必須在部署期間選取適當的傳遞方法,以符合您裝置 GPU 硬體支援的功能。

重要

這些功能可能包括 NVIDIA Corporation 或其授權者所開發及擁有的元件。 元件的使用受 NVIDIA 使用者許可協定控管,該合約位於 NVIDIA 的網站

藉由使用 GPU 加速功能,您接受並同意 NVIDIA 終端使用者許可協定的條款。

必要條件

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 (專業版、企業版、IoT 企業版)
NVIDIA GeForce、Quadro、RTX GPU-PV Windows 10/11 (專業版、企業版、IoT 企業版)
Intel iGPU GPU-PV Windows 10/11 (專業版、企業版、IoT 企業版)

重要

GPU-PV 支援可能受限於 GPU 廠商所決定的特定處理器或 GPU 架構。 如需詳細資訊,請參閱 Intel 的 iGPU 驅動程式檔NVIDIA 的適用於 WSL 檔的 CUDA。

Windows Server 2019 用戶必須使用最低組建 17763,並安裝所有目前的累積更新。

Windows 10 用戶必須使用 2021 年 11 月更新 組建 19044.1620 或更高版本。 安裝之後,您可以在命令提示字元中執行 winver ,以確認組建版本。

巢狀虛擬化不支援 GPU 傳遞,例如在 Windows 虛擬機中執行 EFLOW。

系統設定和安裝

下列各節包含根據您的 GPU 設定和安裝資訊。

NVIDIA T4/A2 GPU

針對 T4/A2 GPU,Microsoft 建議從 GPU 廠商安裝裝置風險降低驅動程式。 雖然是選擇性的,但安裝風險降低驅動程式可能會改善部署的安全性。 如需詳細資訊,請參閱 使用直接裝置指派部署圖形裝置。

警告

啟用硬體裝置傳遞可能會增加安全性風險。 如果適用,Microsoft 建議來自 GPU 廠商的裝置風險降低驅動程式。 如需詳細資訊,請參閱 使用離散裝置指派部署圖形裝置。

NVIDIA GeForce/Quadro/RTX GPU

針對 NVIDIA GeForce/Quadro/RTX GPU,請下載並安裝已啟用 NVIDIA CUDA 的驅動程式,以搭配您現有的 CUDA ML 工作流程使用 Windows 子系統 Linux 版 (WSL)。 最初針對 WSL 開發,適用於 WSL 驅動程式的 CUDA 也用於 Windows 上的適用於 Linux 的 Azure IoT Edge。

Windows 10 使用者也必須 安裝 WSL ,因為某些連結庫會在 Windows 上的 WSL 與適用於 Linux 的 Azure IoT Edge 之間共用。

Intel iGPU

針對 Intel iGPU,下載並安裝 具有 WSL GPU 支援的 Intel Graphics Driver。

Windows 10 使用者也必須 安裝 WSL ,因為某些連結庫會在 Windows 上的 WSL 與適用於 Linux 的 Azure IoT Edge 之間共用。

在 Windows 部署上啟用 Azure IoT Edge Linux 中的 GPU 加速

系統設定完成後,您就可以在 Windows 上建立適用於 Linux 的 Azure IoT Edge 部署。 在此程式中,您必須 啟用 GPU 作為 EFLOW 部署的一部分。

例如,下列命令會使用 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 上的適用於 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, otherwise they will be 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, otherwise the GPU will be 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 廠商已提供使用者指南,以使用 EFLOW 充分利用其硬體和軟體。

注意

本指南未涵蓋以 DDA 為基礎的 GPU,例如 NVIDIA T4 或 A2。

深入了解技術

請流覽 DDA 檔和GPU-PV 部落格文章,以深入瞭解 GPU 傳遞技術。