Teilen über


Bereitstellen eines GPU-fähigen IoT-Moduls auf einem Azure Stack Edge Pro-GPU-Gerät

GILT FÜR:Yes for Pro - GPU SKUAzure Stack Edge Pro – GPUYes for Pro 2 SKUAzure Stack Edge Pro 2Yes for Pro R SKUAzure 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:

Beispielcode herunterladen

  1. Wechseln Sie auf GitHub zu Azure-Samples/azure-intelligent-edge-patterns. Klonen Sie unter „Code“ die ZIP-Datei, oder laden Sie sie herunter.

    Download zip file

    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

  1. Öffnen Sie in Visual Studio Code den Ordner GpuReferenceModules.

    Open GPUReferenceModules in VS Code

  2. Ö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"
                  }
                }
              }
            },
    
  3. 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:

    Create and save .env file

  4. Speichern Sie die Datei mit der Erweiterung .env im Ordner SampleSolution.

  5. 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.

    Access keys in your container registry

    Nach Eingabe der Anmeldeinformationen ist die Anmeldung erfolgreich.

    Successful sign in

  6. 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.

    Build and push IoT Edge solution

    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.

    Module in container registry

  7. 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.

    Generate IoT Edge deployment manifest

    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.

  8. 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.

    Create deployment for single device

    Im Fenster Ausgabe sollte die Meldung angezeigt werden, dass die Bereitstellung erfolgreich war.

    Deployment succeeded in Output

Überwachen des Moduls

  1. 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.

  2. 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.

  3. 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.

    1. Wählen Sie dieses Gerät aus, klicken Sie mit der rechten Maustaste, und wählen Sie Überwachung des integrierten Ereignisendpunkts starten aus.

      Start monitoring

    2. Wechseln Sie zu Geräte > Module. Hier sollte angezeigt werden, dass Ihr GPU-Modul ausgeführt wird.

      Module in IoT Hub

    3. Im VS Code-Terminal sollten die IoT Hub-Ereignisse auch als Überwachungsausgabe für Ihr Azure Stack Edge Pro-Gerät angezeigt werden.

      Monitoring output

      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