在 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 (即本文中使用的容器引擎) 的必要功能。

  • 您的開發電腦需要下列資源:

註冊 IoT Edge 裝置

使用不同裝置裝載 IoT Edge 裝置。 使用不同裝置讓開發電腦與 IoT Edge 裝置的區隔,可以更精確反映部署案例。

使用 Linux VM 在 Azure 中建立 IoT Edge 裝置:

  1. 在 Azure Stack Hub 上建立 N 系列 Linux 伺服器 VM。 安裝伺服器的元件時,您會透過 SSH 與伺服器互動。 如需詳細資訊,請參閱使用 SSH 金鑰組與 Azure Stack Hub

  2. 建立並註冊 IoT Edge 裝置

準備 GPU 啟用的 VM

  1. 請遵循本文「在執行 Linux 的 N 系列 VM 上安裝 NVIDIA GPU 驅動程式」的步驟,在 N 系列 Linux 伺服器,安裝 NVIDA GPU 驅動程式。

    注意

    您將使用 bash 命令列安裝軟體。 請記下命令列,因為您要使用相同的命列列,在 GPU 啟用的 VM 的 Docker 中,執行的容器上安裝驅動程式

  2. 在 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 是什麼?

  1. 使用 SSH 用戶端連線 N 系列 Linux 伺服器。

  2. 更新 apt 索引和清單。

    sudo apt-get update
    
  3. 擷取電腦最新版本的現有套件。

    sudo apt-get upgrade
    
  4. 安裝新增 Docker apt 存放庫必要的相依性。

    sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
    
  5. 新增 Docker 的 GPG 金鑰。

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    
  6. 新增 Docker 的 apt 存放庫。

    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
    
  7. 更新 apt 的索引和清單,並安裝 Docker Community Edition。

    sudo apt-get update 
    sudo apt-get install docker-ce
    
  8. 檢查 Docker 版本即可驗證安裝。

    docker -v
    
  9. 公開 Docker 可用的 GPU 資源。

    docker run -it --rm --gpus all ubuntu nvidia-smi
    

從市集取得項目

返回 Azure 入口網站,並使用 iOT 市集新增模型至您的邊緣裝置。 在功能表選取 [市集模組]。 然後搜尋 Getting started with GPUs,並遵循指示新增模組。

如需指示,請參閱選取裝置並新增模組

啟用監視

  1. 下載 Azure IoT explorer,然後連線應用程式與 IoT 中樞。

  2. 選取 IoT 裝置,並瀏覽至導覽功能表的 [遙測]。

  3. 選取 [開始],即可開始監視 IoT Edge 裝置的輸出。

有效的安裝

監視模組 (選用)

  1. 在 VS Code 命令選擇區中,執行 [Azure IoT 中樞:選取 IoT 中樞]

  2. 選擇您要設定的 IoT Edge 裝置所屬的訂用帳戶和 IoT 中樞。 這時,請選取 Azure Stack Hub 執行個體的訂用帳戶,並選取為 Azure Stack Hub 建立的 IoT Edge 裝置。 如果您在之前的步驟,透過 Azure 入口網站設定計算時,即會發生這種情況。

  3. 在 VS Code 總管中,展開 [Azure IoT 中樞] 區段。 在 [裝置] 下,您應該會看到對應 Azure Stack Hub 的 IoT Edge 裝置。

    1. 選取裝置,以滑鼠右鍵按一下並選取 [開始監視內建事件端點]。

    2. 移至 [裝置和模組]> 後,您應該會看到正在執行的 GPU 模組

    3. VS Code 終端機也應顯示 IoT 中樞事件,作為 Azure Stack Hub 的監視輸出。

    有效的安裝為

    您可以看到 GPU 執行同一組作業 (5000 次圖形轉換的反覆運算) 花費的時間比 CPU 短很多。

後續步驟