Wdrażanie modułu IoT z obsługą procesora GPU w usłudze Azure Stack Hub
Usługa Azure Stack Hub z obsługą procesora GPU umożliwia wdrażanie modułów intensywnie korzystających z procesora na urządzeniach z systemem Linux uruchomionych na IoT Edge. Rozmiary maszyn wirtualnych zoptymalizowane pod kątem procesora GPU to wyspecjalizowane maszyny wirtualne dostępne z jednym lub wieloma procesorami GPU FIRMY NVIDIA. W tym artykule dowiesz się, jak używać maszyn wirtualnych zoptymalizowanych pod kątem procesora GPU do uruchamiania obciążeń intensywnie korzystających z obliczeń, grafiki i wizualizacji.
Przed rozpoczęciem potrzebna będzie subskrypcja Microsoft Entra z dostępem do globalnej platformy Azure i usługi Azure Stack Hub, Azure Container Registry (ACR) i centrum IoT.
W tym artykule opisano następujące zagadnienia:
- Zainstaluj maszynę wirtualną z systemem Linux z obsługą procesora GPU i zainstaluj odpowiednie sterowniki.
- Zainstaluj platformę Docker i włącz procesor GPU w środowisku uruchomieniowym.
- Połącz urządzenie IoT z usługą iOT Hub i zainstaluj je z platformy handlowej iOT przy użyciu modelu:
Getting started with GPUs
. - Instalowanie i monitorowanie urządzenia z komputera lokalnego przy użyciu narzędzia Azure IoT Explorer.
- Opcjonalnie zainstaluj i monitoruj urządzenie przy użyciu rozszerzenia Azure IoT w Visual Studio Code.
Wymagania wstępne
Musisz mieć następujące zasoby w wystąpieniu usługi Azure Stack Hub, globalnej platformie Azure i na lokalnej maszynie dewelopera.
Usługi Azure Stack Hub i Azure
Subskrypcja jako użytkownik używająca identyfikatora Microsoft Entra w zintegrowanym systemie usługi Azure Stack Hub z procesorem GPU NVIDA. Następujące mikroukłady działają z usługą iOT Hub:
- NCv3
- NCas_v4
Aby uzyskać więcej informacji na temat procesorów GPU w usłudze Azure Stack Hub, zobacz Procesor graficzny (GPU) maszyny wirtualnej w usłudze Azure Stack Hub.
Globalna subskrypcja platformy Azure. Jeśli nie masz globalnej subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto .
Azure Container Registry (ACR). Zanotuj serwer logowania usługi ACR, nazwę użytkownika i hasło.
Bezpłatne lub standardowe centrum IoT Hub na globalnej platformie Azure.
Maszyna deweloperna
Możesz użyć własnego komputera lub maszyny wirtualnej, w zależności od preferencji programistycznych. Maszyna deweloperów musi obsługiwać wirtualizację zagnieżdżonych. Ta funkcja jest niezbędna do uruchamiania platformy Docker — aparatu kontenera używanego w tym artykule.
Na komputerze deweloperskim będą potrzebne następujące zasoby:
- Python 3.x
-
Narzędzie Pip do instalowania pakietów języka Python. Ta instalacja została zainstalowana wraz z instalacją języka Python. Jeśli masz zainstalowane narzędzie Pip, możesz przeprowadzić uaktualnienie do najnowszej wersji. Uaktualnienie można przeprowadzić za pomocą narzędzia pip. Typ:
pip install --upgrade pip
. - Interfejs wiersza polecenia platformy Azure 2.0
- Usługa Git
- Docker
- Visual Studio Code
- Azure IoT Tools dla Visual Studio Code
- Pakiet rozszerzeń języka Python dla Visual Studio Code
Rejestrowanie urządzenia usługi IoT Edge
Użyj oddzielnego urządzenia do hostowania urządzenia IoT Edge. Użycie oddzielnego urządzenia zapewni rozdzielenie maszyny deweloperów i IoT Edge urządzenia dokładniej odzwierciedla scenariusz wdrażania.
Tworzenie urządzenia IoT Edge na platformie Azure przy użyciu maszyny wirtualnej z systemem Linux:
Utwórz maszynę wirtualną serwera z systemem Linux serii N w usłudze Azure Stack Hub. Podczas instalowania składników serwera będziesz korzystać z serwera za pośrednictwem protokołu SSH. Aby uzyskać więcej informacji, zobacz Używanie pary kluczy SSH z usługą Azure Stack Hub.
Przygotowywanie maszyny wirtualnej z obsługą procesora GPU
Zainstaluj sterowniki procesorów GPU NVIDA na serwerze z systemem Linux serii N, wykonując kroki opisane w artykule Instalowanie sterowników procesorów GPU firmy NVIDIA na maszynach wirtualnych serii N z systemem Linux.
Uwaga
Aby zainstalować oprogramowanie, użyjesz wiersza polecenia powłoki bash. Zanotuj polecenia, ponieważ użyjesz tych samych poleceń, aby zainstalować sterowniki w kontenerze uruchomionym na platformie Docker na maszynie wirtualnej z obsługą procesora GPU
Zainstaluj najnowsze środowisko uruchomieniowe IoT Edge na serwerze z systemem Linux serii N w usłudze Azure Stack Hub. Aby uzyskać instrukcje, zobacz Instalowanie środowiska uruchomieniowego usługi Azure IoT Edge w systemach Linux opartych na systemie Debian
Zainstaluj platformę Docker
Zainstaluj platformę Docker na maszynie wirtualnej z obsługą procesora GPU. Uruchomisz moduł z witryny IoT Edge Marketplace w kontenerze na maszynie wirtualnej.
Musisz zainstalować platformę Docker 19.02 lub nowszą. Środowisko uruchomieniowe platformy Docker obsługuje teraz procesory GPU FIRMY NVIDIA. Aby dowiedzieć się więcej na temat procesorów GPU na platformie Docker, zobacz artykuł w dokumentacji platformy Docker, opcje środowiska uruchomieniowego z pamięcią, procesorami CPU i procesorami GPU.
Zainstaluj platformę Docker
Kontenery platformy Docker mogą działać w dowolnym miejscu, lokalnie w centrum danych klienta, u zewnętrznego dostawcy usług lub w chmurze na platformie Azure. Kontenery obrazów platformy Docker mogą działać natywnie w systemach Linux i Windows. Jednak obrazy systemu Windows mogą być uruchamiane tylko na hostach z systemem Windows, a obrazy systemu Linux mogą być uruchamiane na hostach z systemem Linux i hostach z systemem Windows (do tej pory przy użyciu maszyny wirtualnej z systemem Linux funkcji Hyper-V), gdzie host oznacza serwer lub maszynę wirtualną. Aby uzyskać więcej informacji, zobacz Co to jest platforma Docker?.
Nawiąż połączenie z serwerem z systemem Linux z serii N przy użyciu klienta SSH.
Zaktualizuj indeks apt i listy.
sudo apt-get update
Pobierz nowe wersje istniejących pakietów na maszynie.
sudo apt-get upgrade
Zainstaluj zależności wymagane do dodania repozytorium apt platformy Docker.
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
Dodaj klucz GPG platformy Docker.
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Dodaj repozytorium apt platformy Docker.
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
Zaktualizuj indeks apt i listy oraz zainstaluj program Docker Community Edition.
sudo apt-get update sudo apt-get install docker-ce
Sprawdź instalację, sprawdzając wersję platformy Docker.
docker -v
Uwidocznij dostępne zasoby procesora GPU na platformie Docker.
docker run -it --rm --gpus all ubuntu nvidia-smi
Pobieranie elementu z witryny Marketplace
Wróć do Azure Portal i dodaj model do urządzenia brzegowego przy użyciu platformy handlowej iOT. Wybierz pozycję Moduł witryny Marketplace z menu. Wyszukaj ciąg Getting started with GPUs
i postępuj zgodnie z instrukcjami, aby dodać moduł.
Aby uzyskać instrukcje, zobacz Wybieranie urządzenia i dodawanie modułów
Włączanie monitorowania
Pobierz narzędzie Azure IoT Explorer i połącz aplikację z IoT Hub.
Wybierz urządzenie IoT i przejdź do pozycji Telemetria z menu nawigacji.
Wybierz pozycję Rozpocznij, aby rozpocząć monitorowanie danych wyjściowych z urządzenia IoT Edge.
Monitorowanie modułu (opcjonalnie)
W palecie poleceń programu VS Code wybierz i uruchom polecenie Azure IoT Hub: wybierz centrum IoT Hub.
Wybierz subskrypcję i centrum IoT Hub zawierające urządzenie usługi IoT Edge, które chcesz skonfigurować. W takim przypadku wybierz subskrypcję w wystąpieniu usługi Azure Stack Hub, a następnie wybierz urządzenie IoT Edge utworzone dla usługi Azure Stack Hub. Dzieje się tak podczas konfigurowania zasobów obliczeniowych za pośrednictwem Azure Portal we wcześniejszych krokach.
W eksploratorze programu VS Code rozwiń sekcję Azure IoT Hub. W obszarze Urządzenia powinna zostać wyświetlona IoT Edge urządzenie odpowiadające usłudze Azure Stack Hub.
Wybierz to urządzenie, kliknij prawym przyciskiem myszy i wybierz pozycję Rozpocznij monitorowanie wbudowanego punktu końcowego zdarzeń.
Przejdź do pozycji Moduły urządzeń > i powinien zostać wyświetlony moduł gpu uruchomiony.
Terminal programu VS Code powinien również wyświetlać zdarzenia IoT Hub jako dane wyjściowe monitorowania dla usługi Azure Stack Hub.
Widać, że czas potrzebny na wykonanie tego samego zestawu operacji (5000 iteracji kształtu) przez procesor GPU jest znacznie mniejszy niż dla procesora CPU.
Następne kroki
Dowiedz się więcej o maszynie wirtualnej z procesorem graficznym (GPU) w usłudze Azure Stack Hub
Dowiedz się więcej na temat usług Azure Stack Hub, Data Box Edge i Intelligent Edge— przyszłość przetwarzania: inteligentna chmura i inteligentna krawędź
Dowiedz się więcej o aplikacjach w chmurze hybrydowej, zobacz Rozwiązania chmury hybrydowej