分享方式:


適用於 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 更快速地執行視覺型推斷。 為了更妥善地支援人工智慧和機器學習應用程式,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 傳遞技術。