在 Azure Stack Edge Pro GPU 裝置上部署已啟用 GPU 的 IoT 模組
適用於: Azure Stack Edge Pro - GPUAzure Stack Edge Pro 2Azure 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 的基準範例程式碼。
必要條件
開始之前,請確定您已有:
- 您已存取已啟用 GPU 的 1 節點 Azure Stack Edge Pro 裝置。 此裝置會使用 Azure 中的資源來啟動。 請參閱啟動裝置。
- 您已在此裝置上設定計算。 請遵循教學課程:在 Azure Stack Edge Pro 裝置上設定計算中的步驟。
- Azure Container Registry (ACR)。 移至 [存取金鑰] 刀鋒視窗,並記下 ACR 登入伺服器、使用者名稱和密碼。 如需詳細資訊,請移至快速入門:使用 Azure 入口網站建立私人容器登錄。
- Windows 用戶端上的下列開發資源:
- Azure CLI 2.0 或更新版本
- Docker CE。 您可能必須建立帳戶,才能下載並安裝軟體。
- Visual Studio Code
- Visual Studio Code 的 Azure IoT Edge 擴充功能。
- 適用於 Visual Studio Code 的 Python 延伸模組
- Python 3 \(英文\)
- Pip 用於安裝 Python 套件 (通常包含在 Python 安裝中)
取得範例程式碼
移至 Azure 樣本中的 Azure 智慧邊緣模式。 複製或下載 zip 檔案以取得程式碼。
從 zip 解壓縮檔案。 您也可以複製樣本。
git clone https://github.com/Azure-Samples/azure-intelligent-edge-patterns.git
建置和部署模組
在 Visual Studio Code 中開啟 GpuReferenceModules 資料夾。
開啟 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" } } } },
建立新檔案。 如下所示,填寫容器登錄參數的值 (使用先前步驟中所找出的值):
CONTAINER_REGISTRY_NAME=<YourContainerRegistryName> CONTAINER_REGISTRY_USERNAME=<YourContainerRegistryUserName> CONTAINER_REGISTRY_PASSWORD=<YourContainerRegistryPassword>
樣本 .env 檔案如下所示:
在 SampleSolution 資料夾中將檔案儲存為 .env 形式。
若要登入 Docker,請在 Visual Studio Code 整合式終端機中輸入下列命令。
docker login -u <CONTAINER_REGISTRY_USERNAME> -p <CONTAINER_REGISTRY_PASSWORD> <CONTAINER_REGISTRY_NAME>
在 Azure 入口網站中,移至容器登錄的 [存取金鑰] 區段。 複製並使用登錄名稱、密碼和登入伺服器。
提供認證之後,登入就會成功。
將映像推送至 Azure Container Registry。 在 VS Code Explorer 中,選取並以滑鼠右鍵按一下 deployment.template.json 檔案,然後選取 [建置並推送 IoT Edge 解決方案]。
如果未安裝 Python 和 Python 延伸模組,當您建置並推送解決方案時,系統將會安裝這些延伸模組。 不過,這會導致建置時間延長。
完成此步驟之後,您會在容器登錄中看到此模組。
若要建立部署資訊清單,請以滑鼠右鍵按一下 deployment.template.json,然後選取 [產生 IoT Edge 部署資訊清單]。
通知會通知您部署資訊清單產生所在的路徑。 資訊清單是在 config 資料夾中產生的
deployment.amd64.json
檔案。在 config 資料夾中選取 deployment.amd64.json 檔案,然後選擇 [建立單一裝置的部署]。 請勿使用 deployment.template.json 檔案。
在 [輸出] 視窗中,您應該會看到部署成功的訊息。
監視模組
在 VS Code 命令選擇區中,執行 [Azure IoT 中樞:選取 IoT 中樞]。
選擇您要設定的 IoT Edge 裝置所屬的訂用帳戶和 IoT 中樞。 在此案例中,請選取用來部署 Azure Stack Edge Pro 裝置的訂閱,然後選取為 Azure Stack Edge Pro 裝置建立的 IoT Edge 裝置。 如果您在之前的步驟,透過 Azure 入口網站設定計算時,即會發生這種情況。
在 VS Code 總管中,展開 [Azure IoT 中樞] 區段。 在 [裝置] 下,您應該會看到與 Azure Stack Edge Pro 裝置對應的 IoT Edge 裝置。
選取裝置,以滑鼠右鍵按一下並選取 [開始監視內建事件端點]。
移至 [裝置和模組]> 後,您應該會看到正在執行的 GPU 模組。
VS Code 終端機也應會顯示 IoT 中樞事件,作為 Azure Stack Edge Pro 裝置的監視輸出。
您可以看到 GPU 執行同一組作業 (5000 次圖形轉換的反覆運算) 花費的時間比 CPU 短很多。
後續步驟
- 深入瞭解如何將 GPU 設定為使用模組。