Bereitstellen eines GPU-fähigen IoT-Moduls auf einem Azure Stack Edge Pro-GPU-Gerät
GILT FÜR: Azure Stack Edge Pro – GPUAzure Stack Edge Pro 2Azure Stack Edge Pro R
Hinweis
Es wird dringend empfohlen, die neueste IoT Edge-Version auf einem virtuellen Linux-Computer bereitzustellen. Der verwaltete IoT Edge in Azure Stack Edge verwendet eine ältere Version der IoT Edge-Runtime, die nicht über die neuesten Features und Patches verfügt. Anweisungen finden Sie unter Bereitstellen einer Ubuntu-VM. Weitere Informationen zu anderen unterstützten Linux-Distributionen, die IoT Edge ausführen können, finden Sie unter Von Azure IoT Edge unterstützte Systeme – Containermodule.
In diesem Artikel wird beschrieben, wie Sie ein GPU-fähiges IoT Edge-Modul auf Ihrem Azure Stack Edge Pro-GPU-Gerät bereitstellen.
In diesem Artikel werden folgende Vorgehensweisen behandelt:
- Bereiten Sie Azure Stack Edge Pro auf das Ausführen eines GPU-Moduls vor.
- Laden Sie Beispielcode aus einem Git-Repository herunter, und installieren Sie ihn.
- Erstellen Sie die Lösung, und generieren Sie ein Bereitstellungsmanifest.
- Stellen Sie die Lösung auf dem Azure Stack Edge Pro-Gerät bereit.
- Überwachen Sie die Modulausgabe.
Informationen zum Beispielmodul
Das GPU-Beispielmodul in diesem Artikel enthält PyTorch und TensorFlow zum Vergleichen von Beispielcode für CPU und GPU.
Voraussetzungen
Bevor Sie beginnen, stellen Sie sicher, dass Sie über:
- Sie haben Zugriff auf ein GPU-fähiges Azure Stack Edge Pro-Gerät mit einem Knoten. Dieses Gerät wird mit einer Ressource in Azure aktiviert. Weitere Informationen finden Sie unter Aktivieren des Geräts.
- Sie haben Compute auf diesem Gerät konfiguriert. Führen Sie die Schritte unter Tutorial: Konfigurieren von Compute auf einem Azure Stack Edge Pro-Gerät aus.
- Eine Azure Container Registry-Instanz (ACR). Wechseln Sie zum Blatt Zugriffsschlüssel, und notieren Sie sich ACR-Anmeldeserver, -Benutzername und -Kennwort. Weitere Informationen finden Sie unter Schnellstart: Erstellen einer privaten Containerregistrierung im Azure-Portal.
- Die folgenden Entwicklungsressourcen auf einem Windows-Client:
- Azure CLI 2.0 oder höher
- Docker CE. Möglicherweise müssen Sie ein Konto erstellen, um die Software herunterzuladen und zu installieren.
- Visual Studio Code
- Azure IoT Edge-Erweiterung für Visual Studio Code
- Python-Erweiterung für Visual Studio Code
- Python 3
- Pip zum Installieren von Python-Paketen (normalerweise in der Python-Installation enthalten)
Beispielcode herunterladen
Wechseln Sie auf GitHub zu Azure-Samples/azure-intelligent-edge-patterns. Klonen Sie unter „Code“ die ZIP-Datei, oder laden Sie sie herunter.
Extrahieren Sie die Dateien aus der ZIP-Datei. Sie können auch die Beispiele klonen.
git clone https://github.com/Azure-Samples/azure-intelligent-edge-patterns.git
Erstellen und Bereitstellen des Moduls
Öffnen Sie in Visual Studio Code den Ordner GpuReferenceModules.
Öffnen Sie die Datei deployment.template.json, und bestimmen Sie die Parameter, auf die sie für die Containerregistrierung verweist. In der folgenden Datei werden CONTAINER_REGISTRY_USERNAME, CONTAINER_REGISTRY_PASSWORD und CONTAINER_REGISTRY_NAME verwendet.
{ "$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" } } } },
Erstellen Sie eine neue Datei. Füllen Sie die Werte der (im vorherigen Schritt bestimmten) Parameter Ihrer Containerregistrierung wie folgt aus:
CONTAINER_REGISTRY_NAME=<YourContainerRegistryName> CONTAINER_REGISTRY_USERNAME=<YourContainerRegistryUserName> CONTAINER_REGISTRY_PASSWORD=<YourContainerRegistryPassword>
Es folgt ein Beispiel einer ENV-Datei:
Speichern Sie die Datei mit der Erweiterung .env im Ordner SampleSolution.
Geben Sie zum Anmelden bei Docker im integrierten Terminal von Visual Studio Code den folgenden Befehl ein.
docker login -u <CONTAINER_REGISTRY_USERNAME> -p <CONTAINER_REGISTRY_PASSWORD> <CONTAINER_REGISTRY_NAME>
Wechseln Sie im Azure-Portal zum Abschnitt Zugriffsschlüssel Ihrer Containerregistrierung. Kopieren und verwenden Sie den Namen der Registrierung, das Kennwort und den Anmeldeserver.
Nach Eingabe der Anmeldeinformationen ist die Anmeldung erfolgreich.
Pushen Sie Ihr Image in Ihre Azure Container Registry-Instanz. Klicken Sie im VS Code-Explorer mit der rechten Maustaste auf die Datei deployment.template.json, und wählen Sie Build and Push IoT Edge Solution (IoT Edge-Projektmappe erstellen und übertragen) aus.
Wenn Python und die Python-Erweiterung nicht installiert sind, werden diese installiert, sobald Sie die Lösung erstellen und pushen. Dies führt jedoch zu längeren Buildzeiten.
Nach diesem Schritt wird das Modul in Ihrer Containerregistrierung angezeigt.
Um ein Bereitstellungsmanifest zu erstellen, klicken Sie mit der rechten Maustaste auf die Datei deployment.template.json und wählen dann Generate IoT Edge Deployment Manifest (IoT Edge-Bereitstellungsmanifest generieren) aus.
Die Benachrichtigung informiert Sie über den Pfad, in dem das Bereitstellungsmanifest generiert wurde. Das Manifest ist die Datei
deployment.amd64.json
, die im Ordner config generiert wurde.Wählen Sie die Datei deployment.amd64.json im Ordner config und dann Create Deployment for Single Device (Bereitstellung für einzelnes Gerät erstellen) aus. Verwenden Sie nicht die Datei deployment.template.json.
Im Fenster Ausgabe sollte die Meldung angezeigt werden, dass die Bereitstellung erfolgreich war.
Überwachen des Moduls
Führen Sie in der Befehlspalette von VS Code den Befehl Azure IoT Hub: Select IoT Hub (Azure IoT Hub: IoT Hub auswählen) aus.
Wählen Sie das Abonnement und den IoT-Hub aus, die das zu konfigurierende IoT Edge-Gerät enthalten. Wählen Sie in diesem Fall das Abonnement aus, mit dem das Azure Stack Edge Pro-Gerät bereitgestellt wurde, und dann das für Ihr Azure Stack Edge Pro-Gerät erstellte IoT Edge-Gerät. Dies erfolgt, wenn Sie Compute über das Azure-Portal in den vorherigen Schritten konfigurieren.
Klappen Sie im Visual Studio Code-Explorer den Abschnitt „Azure IoT Hub“ auf. Unter Geräte sollte das IoT Edge-Gerät angezeigt werden, das Ihrem Azure Stack Edge Pro-Gerät entspricht.
Wählen Sie dieses Gerät aus, klicken Sie mit der rechten Maustaste, und wählen Sie Überwachung des integrierten Ereignisendpunkts starten aus.
Wechseln Sie zu Geräte > Module. Hier sollte angezeigt werden, dass Ihr GPU-Modul ausgeführt wird.
Im VS Code-Terminal sollten die IoT Hub-Ereignisse auch als Überwachungsausgabe für Ihr Azure Stack Edge Pro-Gerät angezeigt werden.
Wie Sie sehen, ist die Zeit, die für die Ausführung derselben Gruppe von Vorgängen (5.000 Iterationen von Formtransformationen) von der GPU benötigt wird, wesentlich kürzer als bei der CPU.
Nächste Schritte
- Erfahren Sie mehr zum Konfigurieren der GPU für die Verwendung eines Moduls.