Anmerkung
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:
IoT Edge 1.5
Wichtig
IoT Edge 1.5 LTS ist das unterstützte Release. IoT Edge 1.4 LTS wurde am 12. November 2024 eingestellt. Wenn Sie ein früheres Release verwenden, finden Sie weitere Informationen unter Aktualisieren von IoT Edge.
In diesem Tutorial erfahren Sie, wie Sie einen GPU-fähigen virtuellen Computer (VM) erstellen können. Auf dem virtuellen Computer führen Sie ein IoT Edge-Gerät aus, das Arbeit von einem seiner Module zu Ihrer GPU zuweist.
Verwenden Sie das Azure-Portal, die Azure Cloud Shell und die Befehlszeile Ihrer VM, um:
- Erstellen einer GPU-fähigen VM
- Installieren der NVIDIA-Treibererweiterung auf der VM
- Konfigurieren eines Moduls auf einem IoT Edge-Gerät zum Zuordnen von Arbeitslasten zu einer GPU
Voraussetzungen
Azure-Konto: Erstellen eines kostenlosen Kontos
Azure IoT Hub: Erstellen einer IoT Hub-Instanz
Azure IoT Edge-Gerät
Wenn Sie nicht über ein IoT Edge-Gerät verfügen und schnell ein Gerät erstellen möchten, führen Sie den folgenden Befehl aus. Verwenden Sie die Azure Cloud Shell im Azure-Portal. Erstellen Sie einen neuen Gerätenamen für
<DEVICE-NAME>und ersetzen Sie<YOUR-IOT-HUB-NAME>durch Ihren IoT-Hubnamen.az iot hub device-identity create --device-id <YOUR-DEVICE-NAME> --edge-enabled --hub-name <YOUR-IOT-HUB-NAME>Weitere Informationen zum Erstellen eines IoT Edge-Geräts finden Sie in der Schnellstartanleitung: Bereitstellen Ihres ersten IoT Edge-Moduls auf einem virtuellen Linux-Gerät. Später in diesem Artikel fügen Sie Ihrem IoT Edge-Gerät ein NVIDIA-Modul hinzu.
Erstellen eines GPU-optimierten virtuellen Computers
Um einen GPU-optimierten virtuellen Computer (VM) zu erstellen, wählen Sie die richtige Größe aus. Nicht alle VM-Größen unterstützen die GPU-Verarbeitung, und unterschiedliche VM-Größen funktionieren am besten für unterschiedliche Workloads. Weitere Informationen finden Sie unter Für GPU optimierte VM-Größen. Alternativ können Sie mit dem Auswahltool für virtuelle Computer arbeiten.
Erstellen Sie eine IoT Edge-VM mit der Vorlage Azure Resource Manager (ARM) in GitHub, und konfigurieren Sie sie dann so, dass sie GPU-optimiert ist.
Wechseln Sie zur Bereitstellungsvorlage "IoT Edge-VM" in GitHub bei Azure/iotedge-vm-deploy.
Wählen Sie die Schaltfläche "Bereitstellen in Azure " aus, um mit dem Erstellen einer benutzerdefinierten VM im Azure-Portal zu beginnen.
Geben Sie Ihre Azure-Anmeldeinformationen und Ressourceninformationen in die Felder für die benutzerdefinierte Bereitstellung ein:
Eigenschaft Beschreibung oder Beispielwert Abonnement Wählen Sie Ihr Azure-Kontoabonnement aus. Ressourcengruppe Fügen Sie Ihre Azure-Ressourcengruppe hinzu. Region East US
GPU-VMs sind nicht in allen Regionen verfügbar.Präfix der DNS-Bezeichnung Erstellen Sie einen Namen für Ihre VM. Administratorbenutzername adminUser
Oder erstellen Sie Ihren eigenen Benutzernamen.Verbindungszeichenfolge von Gerät Kopieren Sie Ihre Verbindungszeichenfolge aus Ihrem IoT Edge-Gerät, und fügen Sie sie hier ein. Größe des virtuellen Computers Standard_NV6Authentifizierungsart Wählen Sie ein Kennwort oder einen öffentlichen SSH-Schlüssel aus, und erstellen Sie bei Bedarf einen Kennwort- oder Schlüsselpaarnamen. Tipp
Überprüfen Sie, welche GPU-VMs in den einzelnen Region unterstützt werden: Verfügbare Produkte nach Region.
Um zu überprüfen , welche Region Ihr Azure-Abonnement zulässt, probieren Sie diesen Azure-Befehl im Azure-Portal aus. Das
NinStandard_Nzeigt an, dass es sich um eine GPU-fähige VM handelt.az vm list-skus --location <YOUR-REGION> --size Standard_N --all --output tableWählen Sie unten die Schaltfläche " Überprüfen + Erstellen " aus, und wählen Sie dann die Schaltfläche " Erstellen " aus. Die Bereitstellung kann bis zu einer Minute dauern.
Installieren der NVIDIA-Erweiterung
Nachdem Sie nun über einen GPU-optimierten virtuellen Computer verfügen, installieren Sie die NVIDIA-Erweiterung auf dem virtuellen Computer mithilfe des Azure-Portals.
Öffnen Sie Ihre VM im Azure-Portal, und wählen Sie im linken Menü Extensions + applications (Erweiterungen und Anwendungen) aus.
Klicken Sie auf Hinzufügen, und wählen Sie aus der Liste NVIDIA GPU Driver Extension (GPU-Treibererweiterung von NVIDIA) aus. Wählen Sie dann Weiter aus.
Wählen Sie Überprüfen + erstellen und danach Erstellen aus. Der Bereitstellungsvorgang kann bis zu 30 Minuten dauern.
Navigieren Sie zum Menü Extensions + applications in Ihrer VM zurück, um die Installation im Azure-Portal zu bestätigen. Die neue Erweiterung mit dem Namen
NvidiaGpuDriverLinuxsollte in der Erweiterungsliste vorhanden sein, und unter Status sollte Bereitstellung erfolgreich angezeigt werden.Wenn Sie die Installation mithilfe von Azure Cloud Shell bestätigen möchten, führen Sie diesen Befehl zum Auflisten der Erweiterungen aus. Ersetzen Sie die
<>-Platzhalter durch Ihre Werte:az vm extension list --resource-group <YOUR-RESOURCE-GROUP> --vm-name <YOUR-VM-NAME> -o tableMit einem NVIDIA-Modul verwenden wir das NVIDIA System Management Interface-Programm (auch bekannt als
nvidia-smi).Installieren Sie auf Ihrem Gerät das
nvidia-smi-Paket, das Ihrer Ubuntu-Version entspricht. Für dieses Tutorial installieren wirnvidia-utils-515für Ubuntu 20.04. Wählen SieYaus, wenn Sie bei der Installation dazu aufgefordert werden.sudo apt install nvidia-utils-515Hier finden Sie eine Liste aller Versionen von
nvidia-smi. Wenn Sienvidia-smiohne vorherige Installation ausführen, wird diese Liste in Ihrer Konsole gedruckt.
Führen Sie nach der Installation diesen Befehl aus, um zu überprüfen, dass es installiert ist:
nvidia-smiEine Bestätigungstabelle wird ähnlich wie diese Tabelle angezeigt.
Hinweis
Die NVIDIA-Erweiterung ist eine vereinfachte Möglichkeit zum Installieren der NVIDIA-Treiber, aber Möglicherweise benötigen Sie weitere Anpassungen. Weitere Informationen zu benutzerdefinierten Installationen auf VMs der N-Serie finden Sie unter Installieren von NVIDIA GPU-Treibern für virtuelle Computer der Serie N mit Linux.
Aktivieren eines Moduls mit GPU-Beschleunigung
Sie können ein IoT Edge-Modul auf verschiedene Weisen so aktivieren, dass es eine GPU für die Verarbeitung nutzt. Eine Möglichkeit besteht darin, ein vorhandenes IoT Edge-Modul auf Ihrem Gerät so zu konfigurieren, dass es die GPU-Beschleunigung verwendet. Außerdem können Sie ein vordefiniertes Containermodul verwenden, z. B. ein Modul von NVIDIA DIGITS, das bereits GPU-optimiert ist. Sehen wir uns beide Möglichkeiten an.
Aktivieren der GPU in einem vorhandenen Modul mithilfe von DeviceRequests
Wenn Sie über ein vorhandenes Modul auf Ihrem IoT Edge-Gerät verfügen, können Sie es durch das Hinzufügen einer Konfiguration mit DeviceRequests in den createOptions des Bereitstellungsmanifest für GPU optimieren. Führen Sie die folgenden Schritte durch, um ein vorhandenes Modul zu konfigurieren.
Navigieren Sie im Azure-Portal zu Ihrem IoT Hub, und wählen Sie Geräte im Menü Geräteverwaltung aus.
Wählen Sie Ihr IoT Edge-Gerät aus, um es zu öffnen.
Wählen Sie oben die Registerkarte Module festlegen aus.
Wählen Sie in der Liste IoT Edge-Module das Modul aus, das Sie für die GPU-Verwendung aktivieren möchten.
Ein Seitenbereich wird geöffnet. Wählen Sie die Registerkarte Optionen für Containererstellung aus.
Kopieren Sie diese
HostConfig-JSON-Zeichenfolge, und fügen Sie sie in das Feld Erstellungsoptionen ein.{ "HostConfig": { "DeviceRequests": [ { "Count": -1, "Capabilities": [ [ "gpu" ] ] } ] } }Wählen Sie Update aus.
Klicken Sie auf Überprüfen + erstellen. Das neue
HostConfig-Objekt wird nun in densettingsIhres Moduls angezeigt.Klicken Sie auf Erstellen.
Führen Sie diesen Befehl auf Ihrer VM aus, um zu bestätigen, dass die neue Konfiguration funktioniert:
sudo docker inspect <YOUR-MODULE-NAME>Die für
DeviceRequestsin der JSON-Ausgabe der Konsole angegebenen Parameter sollten angezeigt werden.
Aktivieren einer GPU in einem vordefinierten NVIDIA-Modul
Fügen wir dem IoT Edge-Gerät ein NVIDIA DIGITS-Modul hinzu. Ordnen Sie dem Modul dann eine GPU zu, indem Sie die Umgebungsvariable festlegen. Das NVIDIA-Modul befindet sich bereits in einem Docker-Container.
Wählen Sie Ihr IoT Edge-Gerät im Azure-Portal aus dem Geräte-Menü Ihres IoT Hub aus.
Wählen Sie oben die Registerkarte Module festlegen aus.
Wählen Sie unter der Überschrift „IoT Edge-Module“ die Option + Hinzufügen und dann IoT Edge-Modul aus.
Geben Sie im Feld Name des IoT Edge-Moduls einen Namen ein.
Fügen Sie auf der Registerkarte Moduleinstellungen
nvidia/digits:6.0zum Feld Image-URI hinzu.Wählen Sie die Registerkarte Umgebungsvariablen aus.
Fügen Sie den Namen der Umgebungsvariablen
NVIDIA_VISIBLE_DEVICESmit dem Wert0hinzu. Diese Variable steuert, welche GPUs für die containerisierte Anwendung sichtbar sind, die auf dem Edgegerät ausgeführt wird. Die UmgebungsvariableNVIDIA_VISIBLE_DEVICESkann auf eine durch Trennzeichen getrennte Liste von Geräte-IDs festgelegt werden, die den physischen GPUs im System entsprechen. Wenn beispielsweise zwei GPUs im System mit den Geräte-IDs 0 und 1 vorhanden sind, kann die Variable auf „NVIDIA_VISIBLE_DEVICES=0,1“ festgelegt werden, um beide GPUs für den Container sichtbar zu machen. In diesem Artikel verwenden wir, da der virtuelle Computer nur über eine GPU verfügt, die erste (und nur) eine.Name type Wert NVIDIA_VISIBLE_DEVICES Text 0 Wählen Sie Hinzufügen.
Klicken Sie auf Überprüfen + erstellen. Die Eigenschaften Ihres Bereitstellungsmanifests werden angezeigt.
Wählen Sie Erstellen aus, um das Modul zu erstellen.
Wählen Sie Aktualisieren aus, um Ihre Modulliste zu aktualisieren. Es dauert einige Minuten, bis der Laufzeitstatus des Moduls als wird ausgeführt angezeigt wird. Aktualisieren Sie das Gerät also regelmäßig.
Führen Sie auf Ihrem Gerät diesen Befehl aus, um zu bestätigen, dass Ihr neues NVIDIA-Modul vorhanden ist und ausgeführt wird.
iotedge listDas NVIDIA-Modul sollte in einer Liste der Module auf Ihrem IoT Edge-Gerät mit dem Status
runningangezeigt werden.
Hinweis
Weitere Informationen zum NVIDIA DIGITS-Containermodul finden Sie in der Dokumentation zu Deep Learning Digits.
Bereinigen von Ressourcen
Wenn Sie weitere Tutorials zu IoT Edge durcharbeiten möchten, können Sie dafür das Gerät verwenden, das Sie für dieses Tutorial erstellt haben. Andernfalls können Sie die erstellten Azure-Ressourcen löschen, um Kosten zu vermeiden.
Wenn Sie Ihren virtuellen Computer und Den IoT-Hub in einer neuen Ressourcengruppe erstellt haben, können Sie diese Gruppe löschen, die alle zugeordneten Ressourcen löscht. Überprüfen Sie den Inhalt der Ressourcengruppe, um sicherzustellen, dass sie keine Elemente enthält, die Sie behalten möchten. Wenn Sie nicht die gesamte Gruppe löschen möchten, können Sie stattdessen einzelne Ressourcen (den virtuellen Computer, das Gerät oder das GPU-Modul) löschen.
Wichtig
Das Löschen einer Ressourcengruppe kann nicht rückgängig gemacht werden.
Verwenden Sie den folgenden Befehl, um Ihre Azure-Ressourcengruppe zu entfernen. Das Löschen einer Ressourcengruppe kann einige Minuten dauern.
az group delete --name <YOUR-RESOURCE-GROUP> --yes
Sie können sich vergewissern, dass die Ressourcengruppe entfernt wurde, indem Sie die Liste der Ressourcengruppen anzeigen.
az group list
Nächste Schritte
In diesem Artikel haben Sie gelernt, wie Sie einen virtuellen Computer und ein IoT Edge-Gerät so einrichten können, dass sie die GPU-Beschleunigung verwenden. Wenn Sie eine Anwendung mit einem ähnlichen Setup ausführen möchten, probieren Sie den Lernpfad für NVIDIA DeepStream-Entwicklung mit Microsoft Azure aus. In diesem Learn-Tutorial erfahren Sie, wie Sie optimierte intelligente Videoanwendungen entwickeln können, die mehrere Video-, Bild- und Audioquellen verarbeiten können.