適用於 Azure IoT Edge for Linux on Windows 的 GPU 加速
適用於: IoT Edge 1.5 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 充分利用其硬體和軟體的使用者指南。
- 了解如何在 EFLOW 上執行 Intel OpenVINO™ 應用程式,方法是遵循 Intel 對使用 iGPU 搭配 Azure IoT Edge for Linux on Windows (EFLOW) 與 OpenVINO™ 工具組的相關指南和參考實作。
- 遵循NVIDIA 對於 GeForce/Quadro/RTX GPU 的 EFLOW 使用者指南,開始在 EFLOW 上部署 CUDA 加速應用程式。
注意
本指南未涵蓋以 DDA 為基礎的 GPU,例如 NVIDIA T4 或 A2。
深入了解技術
瀏覽 DDA 文件和 GPU-PV 部落格文章,以深入了解 GPU 傳遞技術。