共用方式為


適用於 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 是 支援的版本。 自 2024 年 11 月 12 日起,IoT Edge 1.4 LTS 已結束生命週期。 如果您是舊版,請參閱更新 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 網站上的 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 (專業版、企業版、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 的 CUDA for WSL 文件

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,請下載並安裝適用於 Windows 子系統 Linux 版 (WSL) 的已啟用 NVIDIA CUDA 的驅動程式,以便搭配現有的 CUDA ML 工作流程使用。 原本針對 WSL 開發的 CUDA for WSL 驅動程式,也會用於 Azure IoT Edge for Linux on Windows。

Windows 10 使用者也必須安裝 WSL,因為某些程式庫會在 WSL 與 Azure IoT Edge for Linux on Windows 之間共用。

Intel iGPU

針對 Intel iGPU,請下載並安裝具有 WSL GPU 支援的 Intel 圖形卡驅動程式

Windows 10 使用者也必須安裝 WSL,因為某些程式庫會在 WSL 與 Azure IoT Edge for Linux on Windows 之間共用。

在 Azure IoT Edge for Linux on Windows 部署上啟用 GPU 加速

系統設定完成後,您就可以建立您的 Azure IoT Edge for Linux on Windows 部署。 在此程序中,您必須在 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

安裝完成後,您就可以透過 Azure IoT Edge for Linux on Windows 來部署和執行 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, 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 傳遞技術。