Udostępnij za pośrednictwem


Przyspieszanie procesora GPU dla Azure IoT Edge dla systemu Linux w systemie Windows

Applies to:IoT Edge 1.5 znacznik wyboru IoT Edge 1.5

Ważne

IoT Edge 1.5 LTS to wspierana wersja. IoT Edge 1.4 LTS osiągnął koniec życia 12 listopada 2024 r. Jeśli używasz wcześniejszej wersji, zobacz Update IoT Edge.

Procesory GPU są popularnym wyborem do obliczeń sztucznej inteligencji, ponieważ oferują możliwości przetwarzania równoległego i często uruchamiają wnioskowanie oparte na obrazie szybciej niż procesory CPU. Aby obsługiwać aplikacje sztucznej inteligencji i uczenia maszynowego, Azure IoT Edge dla systemu Linux w systemie Windows (EFLOW) uwidacznia procesor GPU modułowi maszyny wirtualnej z systemem Linux.

Azure IoT Edge dla systemu Linux w systemie Windows obsługuje kilka technologii przekazywania GPU, w tym:

  • Bezpośrednie przypisanie urządzenia (DDA) — rdzenie procesora GPU są przydzielane do maszyny wirtualnej z systemem Linux lub hosta.

  • Gpu-Paravirtualization (GPU-PV) — procesor GPU jest współużytkowany między maszyną wirtualną z systemem Linux a hostem.

Należy podczas wdrażania wybrać odpowiednią metodę przekazywania, aby odpowiadać obsługiwanym możliwościom sprzętu procesora graficznego (GPU) urządzenia.

Ważne

Funkcje te mogą obejmować składniki opracowane i należące do firmy NVIDIA Corporation lub jej licencjodawców. Korzystanie ze składników podlega umowie licencyjnej użytkownika końcowego firmy NVIDIA znajdującej się w witrynie internetowej firmy NVIDIA.

Korzystając z funkcji przyspieszania procesora GPU, akceptujesz i wyrażasz zgodę na warunki umowy licencyjnej firmy NVIDIA End-User.

Wymagania wstępne

Funkcje przyspieszania procesora GPU Azure IoT Edge dla systemu Linux w systemie Windows obecnie obsługują wybrany zestaw sprzętu procesora GPU. Ponadto użycie tej funkcji może wymagać określonych wersji Windows.

Obsługiwane procesory GPU i wymagane wersje Windows to:

Obsługiwane procesory GPU Typ przekazywania GPU Obsługiwane wersje Windows
NVIDIA T4, A2 DDA Windows Server 2019
Windows Server 2022
Windows 10/11 (Pro, Enterprise, IoT Enterprise)
NVIDIA GeForce, Quadro, RTX GPU-PV Windows 10/11 (Pro, Enterprise, IoT Enterprise)
Intel iGPU GPU-PV Windows 10/11 (Pro, Enterprise, IoT Enterprise)

Ważne

GPU-PV obsługa może być ograniczona do niektórych generacji procesorów lub architektur GPU określonych przez dostawcę GPU. Aby uzyskać więcej informacji, zobacz dokumentację sterownika iGPU firmy Intel lub dokumentację CUDA firmy NVIDIA dla WSL.

Windows Server 2019 użytkownicy muszą używać minimalnej kompilacji 17763 z zainstalowanymi wszystkimi bieżącymi aktualizacjami zbiorczymi.

Windows 10 użytkownicy muszą użyć aktualizacji November 2021 kompilacji 19044.1620 lub nowszej. Po zakończeniu instalacji sprawdź wersję kompilacji, wpisując polecenie winver w wierszu polecenia.

Przekazywanie GPU nie jest obsługiwane w przypadku wirtualizacji zagnieżdżonej, takiej jak uruchamianie EFLOW na maszynie wirtualnej Windows.

Konfiguracja i instalacja systemu

Poniższe sekcje zawierają informacje o konfiguracji i instalacji zgodnie z Twoim GPU.

GPU NVIDIA T4/A2

W przypadku procesorów GPU T4/A2 firma Microsoft zaleca zainstalowanie sterownika ograniczania ryzyka urządzenia od dostawcy procesora GPU. Chociaż jest to opcjonalne, zainstalowanie sterownika ograniczania ryzyka może zwiększyć bezpieczeństwo wdrożenia. Aby uzyskać więcej informacji, zobacz Wdrażanie urządzeń graficznych przy użyciu bezpośredniego przypisania urządzenia.

Ostrzeżenie

Włączenie przekazywania urządzeń sprzętowych może zwiększyć zagrożenia dla bezpieczeństwa. Firma Microsoft zaleca sterownik ograniczania ryzyka urządzenia od dostawcy procesora GPU, jeśli ma to zastosowanie. Aby uzyskać więcej informacji, zobacz Wdrażanie urządzeń graficznych przy użyciu dyskretnego przypisania urządzenia.

NVIDIA GeForce/Quadro/RTX GPU

W przypadku procesorów GPU NVIDIA GeForce/Quadro/RTX pobierz i zainstaluj sterownik NVIDIA CUDA z obsługą Windows Subsystem for Linux (WSL) do użycia z istniejącymi przepływami pracy CUDA ML. Oryginalnie opracowane dla WSL, sterowniki CUDA dla WSL są również używane z Azure IoT Edge dla systemu Linux uruchomionego na Windows.

Użytkownicy Windows 10 muszą również zainstalować WSL, ponieważ niektóre biblioteki są współdzielone między WSL a Azure IoT Edge for Linux on Windows.

iGPU Intel

W przypadku zintegrowanych kart graficznych Intel (iGPU) pobierz i zainstaluj sterownik graficzny Intel z obsługą GPU dla WSL.

Użytkownicy Windows 10 muszą również zainstalować WSL, ponieważ niektóre biblioteki są współużytkowane między WSL a Azure IoT Edge dla systemu Linux w Windows.

Włącz przyspieszenie GPU w Azure IoT Edge dla systemu Linux na Windows.

Po zakończeniu instalacji systemu rozpocznij tworzenie wdrożenia Azure IoT Edge dla systemu Linux w Windows. W trakcie tego procesu włącz obsługę procesora GPU w ramach wdrożenia EFLOW.

Na przykład te polecenia tworzą maszynę wirtualną obsługującą przetwarzanie GPU z procesorem NVIDIA A2 lub kartą graficzną Intel Iris Xe.

#Deploys EFLOW with NVIDIA A2 assigned to the EFLOW VM
Deploy-Eflow -gpuPassthroughType DirectDeviceAssignment -gpuCount 1 -gpuName "NVIDIA A2"

#Deploys EFLOW with Intel(R) Iris(R) Xe Graphics assigned to the EFLOW VM
Deploy-Eflow -gpuPassthroughType ParaVirtualization -gpuCount 1 -gpuName "Intel(R) Iris(R) Xe Graphics"

Aby znaleźć nazwę procesora GPU, uruchom to polecenie lub poszukaj kart wyświetlania w Device Manager.

(Get-WmiObject win32_VideoController).caption

Po zakończeniu instalacji wdróż i uruchom przyspieszone przez procesor GPU moduły systemu Linux za pomocą Azure IoT Edge dla systemu Linux w Windows.

Konfigurowanie przyspieszania procesora GPU w istniejącym wdrożeniu Azure IoT Edge Linux w Windows

Przypisz procesor GPU podczas wdrażania, aby zapewnić sobie jak najprostszą obsługę. Aby włączyć lub wyłączyć procesor GPU po wdrożeniu set-eflowvm , użyj polecenia . W przypadku użycia set-eflowvmparametru parametr domyślny jest używany dla dowolnego argumentu, który nie zostanie określony. Na przykład:

# Deploys EFLOW without a GPU assigned to the EFLOW VM
Deploy-Eflow -cpuCount 4 -memoryInMB 16384

# Assigns NVIDIA A2 GPU to the existing deployment (cpu and memory must still be specified, or they're set to the default values)
Set-EflowVM -cpuCount 4 -memoryInMB 16384 -gpuName "NVIDIA A2" -gpuPassthroughType DirectDeviceAssignment -gpuCount 1

# Reduces the cpuCount and memory (GPU must still be specified, or the GPU is removed)
Set-EflowVM -cpuCount 2 -memoryInMB 4096 -gpuName "NVIDIA A2" -gpuPassthroughType DirectDeviceAssignment -gpuCount 1

# Removes NVIDIA A2 GPU from the existing deployment
Set-EflowVM -cpuCount 2 -memoryInMB 4096

Następne kroki

  • Wypróbuj przykłady GPU z EFLOW. Te przykłady pokazują typowe scenariusze produkcji i sprzedaży detalicznej, takie jak wykrywanie wad, bezpieczeństwo procesów roboczych i zarządzanie zapasami. Te przykłady typu open source mogą być szablonem rozwiązania do tworzenia własnej aplikacji do uczenia maszynowego opartego na obrazie.

  • Dowiedz się więcej o technologiach GPU passthrough w dokumentacji DDA i wpisie na bloguGPU-PV.

Kilku dostawców procesorów GPU udostępnia przewodniki użytkownika dotyczące uzyskiwania jak największego poziomu sprzętu i oprogramowania za pomocą platformy EFLOW:

  • Dowiedz się, jak uruchamiać aplikacje Intel OpenVINO™ na platformie EFLOW, postępując zgodnie z przewodnikiem Intel na temat iGPU z Azure IoT Edge dla Linux on Windows (EFLOW) i OpenVINO™ Toolkit.
  • Rozpocznij wdrażanie aplikacji przyspieszanych przez CUDA na platformie EFLOW, postępując zgodnie z Podręcznikiem użytkownika EFLOW firmy NVIDIA dla GPU GeForce/Quadro/RTX. Ten przewodnik nie obejmuje procesorów GPU opartych na technologii DDA, takich jak NVIDIA T4 lub A2.