在 Azure Stack Hub 上部署啟用啟用 IoT 模組的圖形處理器 (GPU)
使用啟用 GPU 的 Azure Stack Hub 時,您可以在 IoT Edge 執行的 Linux 裝置,部署處理器密集型模組。 GPU 最佳化的 VM 大小是,可搭配單一或搭配單一或多個 NVIDIA GPU 使用的特殊化虛擬機器。 在本文中,您將了解如何使用 GPU 最佳化的 VM,執行計算密集型、圖形密集型和視覺化工作負載。
開始之前,您需要具有全域 Azure 和 Azure Stack Hub 存取權、Azure Container Registry (ACR) 和 IoT 中樞的Microsoft Entra訂用帳戶。
在本文章中,您將:
- 安裝啟用 GPU 的 Linux VM,並安裝正確的驅動程式。
- 安裝 Docker,並在執行階段啟用 GPU。
- 連線 IoT 裝置與 iOT 中樞,然後安裝 iOT iOT 市集的模型:
Getting started with GPUs
。 - 使用 Azure IoT 總管,從本機電腦安裝並監視您的裝置。
- 此外,您也可以使用 Visual Studio Code 的 Azure IoT 延伸模組,安裝並監視您的裝置。
必要條件
Azure Stack Hub 執行個體、全域 Azure 和區域開發電腦必須具備下列資源。
Azure Stack Hub 和 Azure
在具有 NVIDA GPU 的 Azure Stack Hub 整合式系統中,以使用者身分使用Microsoft Entra識別碼的訂用帳戶。 下列晶片適用於 iOT 中樞:
- NCv3
- NCas_v4
如需 Azure Stack Hub 的 GPU 詳細資訊,請參閱 Azure Stack Hub 的圖形處理器 (GPU) VM。
全域 Azure 訂用帳戶。 開始前,如果您不是全域 Azure 訂用帳戶,請先建立免費帳戶。
Azure Container Registry (ACR)。 請記下 ACR 登入伺服器、使用者名稱和密碼。
全域 Azure 的免費或標準層 IoT 中樞。
開發電腦
您可以使用自己的電腦或虛擬機器 (視您偏好的開發方式而定)。 您的開發電腦必須支援巢狀虛擬。 這是執行 Docker (即本文中使用的容器引擎) 的必要功能。
您的開發電腦需要下列資源:
- Python 3.x
- 用於安裝 Python 套件的 Pip 這是安裝 Python 時一併安裝的資源。 如果您已安裝 Pip,即建議升級至最新版本。 您可以使用 pip 直接升級。 輸入:
pip install --upgrade pip
。 - Azure CLI 2.0
- Git
- Docker
- Visual Studio Code
- 適用於 Visual Studio Code 的 Azure IoT Tools
- 適用於 Visual Studio Code 的 Python 擴充套件
註冊 IoT Edge 裝置
使用不同裝置裝載 IoT Edge 裝置。 使用不同裝置讓開發電腦與 IoT Edge 裝置的區隔,可以更精確反映部署案例。
使用 Linux VM 在 Azure 中建立 IoT Edge 裝置:
在 Azure Stack Hub 上建立 N 系列 Linux 伺服器 VM。 安裝伺服器的元件時,您會透過 SSH 與伺服器互動。 如需詳細資訊,請參閱使用 SSH 金鑰組與 Azure Stack Hub。
準備 GPU 啟用的 VM
請遵循本文「在執行 Linux 的 N 系列 VM 上安裝 NVIDIA GPU 驅動程式」的步驟,在 N 系列 Linux 伺服器,安裝 NVIDA GPU 驅動程式。
注意
您將使用 bash 命令列安裝軟體。 請記下命令列,因為您要使用相同的命列列,在 GPU 啟用的 VM 的 Docker 中,執行的容器上安裝驅動程式
在 Azure Stack Hub 的 N 系列 Linux 伺服器上,安裝最新的 IoT Edge 執行階段。 如需指示,請參閱在以 Debian 為基礎的 Linux 系統上安裝 Azure IoT Edge 執行階段
安裝 Docker
在 GPU 啟用的 VM 上安裝 Docker。 您即將從 VM 上容器中的 IoT Edge 市集執行模組。
您必須安裝 Docker 19.02 或更新版本。 Docker 執行階段目前已支援 NVIDIA GPU。 若要深入了解 Docker 中的 GPU,請參閱 Docker 文件的「記憶體、CPU 和 GPU 的執行階段選項」文章。
安裝 Docker
Docker 容器可以在任何位置執行,例如客戶資料中心的內部部署、外部服務提供者或雲端 (在 Azure 上)。 Docker 映像容器可以原生方式在 Linux 及 Windows 上執行。 不過,Windows 映像只能在 Windows 主機上執行,而 Linux 映像可以在 Linux 主機和 Windows 主機上執行 (目前是使用 Hyper-V Linux VM),其中主機是指伺服器或 VM。 如需詳細資訊,請參閱 Docker 是什麼?。
使用 SSH 用戶端連線 N 系列 Linux 伺服器。
更新 apt 索引和清單。
sudo apt-get update
擷取電腦最新版本的現有套件。
sudo apt-get upgrade
安裝新增 Docker apt 存放庫必要的相依性。
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
新增 Docker 的 GPG 金鑰。
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
新增 Docker 的 apt 存放庫。
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
更新 apt 的索引和清單,並安裝 Docker Community Edition。
sudo apt-get update sudo apt-get install docker-ce
檢查 Docker 版本即可驗證安裝。
docker -v
公開 Docker 可用的 GPU 資源。
docker run -it --rm --gpus all ubuntu nvidia-smi
從市集取得項目
返回 Azure 入口網站,並使用 iOT 市集新增模型至您的邊緣裝置。 在功能表選取 [市集模組]。 然後搜尋 Getting started with GPUs
,並遵循指示新增模組。
如需指示,請參閱選取裝置並新增模組
啟用監視
下載 Azure IoT explorer,然後連線應用程式與 IoT 中樞。
選取 IoT 裝置,並瀏覽至導覽功能表的 [遙測]。
選取 [開始],即可開始監視 IoT Edge 裝置的輸出。
監視模組 (選用)
在 VS Code 命令選擇區中,執行 [Azure IoT 中樞:選取 IoT 中樞]。
選擇您要設定的 IoT Edge 裝置所屬的訂用帳戶和 IoT 中樞。 這時,請選取 Azure Stack Hub 執行個體的訂用帳戶,並選取為 Azure Stack Hub 建立的 IoT Edge 裝置。 如果您在之前的步驟,透過 Azure 入口網站設定計算時,即會發生這種情況。
在 VS Code 總管中,展開 [Azure IoT 中樞] 區段。 在 [裝置] 下,您應該會看到對應 Azure Stack Hub 的 IoT Edge 裝置。
選取裝置,以滑鼠右鍵按一下並選取 [開始監視內建事件端點]。
移至 [裝置和模組]> 後,您應該會看到正在執行的 GPU 模組。
VS Code 終端機也應顯示 IoT 中樞事件,作為 Azure Stack Hub 的監視輸出。
您可以看到 GPU 執行同一組作業 (5000 次圖形轉換的反覆運算) 花費的時間比 CPU 短很多。
後續步驟
深入了解 Azure Stack Hub、Data Box Edge 和智慧邊緣,「運算的未來:智慧雲端和智慧邊緣」
若要深入了解混合式雲端應用程式,請參閱混合式雲端解決方案。