共用方式為


在 Azure Stack Edge Pro GPU 裝置上部署已啟用 GPU 的 IoT 模組

適用於: [是] 表示 Pro - GPU SKUAzure Stack Edge Pro - GPU是,適用於 Pro 2 SKUAzure Stack Edge Pro 2是,適用於 Pro R SKUAzure Stack Edge Pro R

注意

強烈建議您在 Linux VM 中部署最新的 IoT Edge 版本。 Azure Stack Edge 上的受控 IoT Edge 所使用的 IoT Edge 執行階段版本較舊,不含最新功能和修補檔。 如需指示,請參閱如何部署 Ubuntu VM (機器翻譯)。 如需其他可執行 IoT Edge 的 Linux 發行版本的詳細資訊,請參閱 Azure IoT Edge 支援系統 – 容器引擎

本文說明如何在 Azure Stack Edge Pro GPU 裝置上部署已啟用 GPU 的 IoT Edge 模組。

在本文中,您將學會如何:

  • 準備 Azure Stack Edge Pro 以執行 GPU 模組。
  • 從 Git 存放庫下載並安裝範例程式碼。
  • 建置解決方案並產生部署資訊清單。
  • 將解決方案部署至 Azure Stack Edge Pro 裝置。
  • 監視模組輸出。

關於範例模組

本文中的 GPU 範例模組包含 PyTorch 和 TensorFlow 的 CPU 對 GPU 的基準範例程式碼。

必要條件

開始之前,請確定您已有:

取得範例程式碼

  1. 移至 Azure 樣本中的 Azure 智慧邊緣模式。 複製或下載 zip 檔案以取得程式碼。

    下載 zip 檔

    從 zip 解壓縮檔案。 您也可以複製樣本。

    git clone https://github.com/Azure-Samples/azure-intelligent-edge-patterns.git
    

建置和部署模組

  1. 在 Visual Studio Code 中開啟 GpuReferenceModules 資料夾。

    在 VS Code 中開啟 GPUReferenceModules

  2. 開啟 deployment.template.json,並找出其為容器登錄參考的參數。 在下列檔案中,會使用 CONTAINER_REGISTRY_USERNAME、CONTAINER_REGISTRY_PASSWORD 和 CONTAINER_REGISTRY_NAME。

        {
      "$schema-template": "2.0.0",
      "modulesContent": {
        "$edgeAgent": {
          "properties.desired": {
            "schemaVersion": "1.0",
            "runtime": {
              "type": "docker",
              "settings": {
                "minDockerVersion": "v1.25",
                "loggingOptions": "",
                "registryCredentials": {
                  "${CONTAINER_REGISTRY_NAME}":{
                  "username": "$CONTAINER_REGISTRY_USERNAME",
                  "password": "$CONTAINER_REGISTRY_PASSWORD",
                  "address": "${CONTAINER_REGISTRY_NAME}.azurecr.io"
                  }
                }
              }
            },
    
  3. 建立新檔案。 如下所示,填寫容器登錄參數的值 (使用先前步驟中所找出的值):

    CONTAINER_REGISTRY_NAME=<YourContainerRegistryName>
    CONTAINER_REGISTRY_USERNAME=<YourContainerRegistryUserName>
    CONTAINER_REGISTRY_PASSWORD=<YourContainerRegistryPassword>
    

    樣本 .env 檔案如下所示:

    建立並儲存 .env 檔案

  4. SampleSolution 資料夾中將檔案儲存為 .env 形式。

  5. 若要登入 Docker,請在 Visual Studio Code 整合式終端機中輸入下列命令。

    docker login -u <CONTAINER_REGISTRY_USERNAME> -p <CONTAINER_REGISTRY_PASSWORD> <CONTAINER_REGISTRY_NAME>
    

    在 Azure 入口網站中,移至容器登錄的 [存取金鑰] 區段。 複製並使用登錄名稱、密碼和登入伺服器。

    存取容器登錄中的金鑰

    提供認證之後,登入就會成功。

    成功登入

  6. 將映像推送至 Azure Container Registry。 在 VS Code Explorer 中,選取並以滑鼠右鍵按一下 deployment.template.json 檔案,然後選取 [建置並推送 IoT Edge 解決方案]

    建置並推送 IoT Edge 解決方案

    如果未安裝 Python 和 Python 延伸模組,當您建置並推送解決方案時,系統將會安裝這些延伸模組。 不過,這會導致建置時間延長。

    完成此步驟之後,您會在容器登錄中看到此模組。

    容器登錄中的模組

  7. 若要建立部署資訊清單,請以滑鼠右鍵按一下 deployment.template.json,然後選取 [產生 IoT Edge 部署資訊清單]

    產生 IoT Edge 部署資訊清單

    通知會通知您部署資訊清單產生所在的路徑。 資訊清單是在 config 資料夾中產生的 deployment.amd64.json 檔案。

  8. config 資料夾中選取 deployment.amd64.json 檔案,然後選擇 [建立單一裝置的部署]。 請勿使用 deployment.template.json 檔案。

    建立單一裝置的部署

    在 [輸出] 視窗中,您應該會看到部署成功的訊息。

    輸出中的部署成功

監視模組

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

  2. 選擇您要設定的 IoT Edge 裝置所屬的訂用帳戶和 IoT 中樞。 在此案例中,請選取用來部署 Azure Stack Edge Pro 裝置的訂閱,然後選取為 Azure Stack Edge Pro 裝置建立的 IoT Edge 裝置。 如果您在之前的步驟,透過 Azure 入口網站設定計算時,即會發生這種情況。

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

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

      開始監視

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

      IoT 中樞中的模組

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

      監視輸出

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

後續步驟