Przygotowywanie procesorów GPU dla platformy Azure lokalnych (wersja zapoznawcza)
Dotyczy: Azure Local 2311.2 i nowsze
W tym artykule opisano sposób przygotowywania jednostek przetwarzania graficznego (GPU) w wystąpieniu lokalnym platformy Azure na potrzeby obciążeń intensywnie korzystających z obliczeń działających na maszynach wirtualnych usługi Arc i usłudze AKS z włączoną usługą Azure Arc. Procesory GPU są używane do obciążeń intensywnie korzystających z obliczeń, takich jak uczenie maszynowe i uczenie głębokie.
Ważne
Ta funkcja jest obecnie dostępna w wersji zapoznawczej. Zobacz Dodatkowe warunki użytkowania wersji zapoznawczych platformy Microsoft Azure, aby zapoznać się z postanowieniami prawnymi dotyczącymi funkcji platformy Azure, które są w wersji beta lub wersji zapoznawczej albo w inny sposób nie zostały jeszcze wydane jako ogólnie dostępne.
Dołączanie procesorów GPU na platformie Azure lokalnie
Możesz dołączyć procesory GPU na jeden z dwóch sposobów dla usługi Azure Local:
Dyskretne przypisanie urządzenia (DDA) — umożliwia dedykowanie fizycznego procesora GPU do obciążenia. We wdrożeniu DDA zwirtualizowane obciążenia są uruchamiane na sterowniku natywnym i zwykle mają pełny dostęp do funkcji procesora GPU. DDA oferuje najwyższy poziom zgodności aplikacji i potencjalną wydajność.
Partycjonowanie procesora GPU (GPU-P) — umożliwia udostępnianie procesora GPU z wieloma obciążeniami przez podzielenie procesora GPU na dedykowane partycje ułamkowe.
Rozważ następujące funkcje i różnice w obsłudze między dwiema opcjami korzystania z procesorów GPU:
opis | Przypisanie dyskretnych urządzeń | Partycjonowanie procesora GPU |
---|---|---|
Model zasobów procesora GPU | Całe urządzenie | Równo partycjonowane urządzenie |
Gęstość maszyn wirtualnych | Niski (jeden procesor GPU do jednej maszyny wirtualnej) | Wysoki (jeden procesor GPU do wielu maszyn wirtualnych) |
Zgodność aplikacji | Wszystkie możliwości procesora GPU udostępniane przez dostawcę (DX 12, OpenGL, CUDA) | Wszystkie możliwości procesora GPU udostępniane przez dostawcę (DX 12, OpenGL, CUDA) |
GPU VRAM | Do karty VRAM obsługiwanej przez procesor GPU | Do karty VRAM obsługiwanej przez procesor GPU na partycję |
Sterownik procesora GPU w gościu | Sterownik dostawcy procesora GPU (NVIDIA) | Sterownik dostawcy procesora GPU (NVIDIA) |
Obsługiwane modele procesora GPU
Aby wyświetlić pełną listę obsługiwanych rozwiązań i dostępnych procesorów GPU, zobacz Rozwiązania lokalne platformy Azure i wybierz pozycję Obsługa procesora GPU w menu po lewej stronie, aby uzyskać opcje.
Firma NVIDIA obsługuje obciążenia oddzielnie przy użyciu oprogramowania wirtualnego procesora GPU. Aby uzyskać więcej informacji, zobacz Microsoft Azure Local — supported NVIDIA GPU and Validated Server Platforms (Lokalne — obsługiwane procesory GPU FIRMY NVIDIA i zweryfikowane platformy serwerów).
W przypadku obciążeń usługi AKS zobacz Procesory GPU dla usługi AKS dla usługi Arc.
Następujące modele procesora GPU są obsługiwane przy użyciu obciążeń maszyn wirtualnych DDA i GPU-P dla maszyn wirtualnych usługi Arc:
- NVIDIA A2
- NVIDIA A16
Te dodatkowe modele procesora GPU są obsługiwane przy użyciu procesora GPU-P (tylko) dla obciążeń maszyn wirtualnych usługi Arc:
- NVIDIA A10
- NVIDIA A40
- NVIDIA L4
- NVIDIA L40
- NVIDIA L40S
Wymagania dotyczące hosta
Host lokalny platformy Azure musi spełniać następujące wymagania:
System musi obsługiwać rozwiązanie lokalne platformy Azure z obsługą procesora GPU. Aby przeglądać opcje, zobacz Katalog lokalny platformy Azure.
Masz dostęp do usługi Azure Local.
Należy utworzyć jednorodną konfigurację procesorów GPU na wszystkich maszynach w systemie. Homogeniczną konfigurację składa się z instalowania tego samego modelu i modelu procesora GPU.
W przypadku procesora GPU-P upewnij się, że obsługa wirtualizacji i sr-IOV są włączone w systemie BIOS każdej maszyny w systemie . Skontaktuj się z dostawcą sprzętu, jeśli nie możesz zidentyfikować poprawnego ustawienia w systemie BIOS.
Przygotowywanie sterowników procesora GPU na każdym hoście
Proces przygotowywania i instalowania sterowników procesora GPU dla każdej maszyny różni się nieco między procesorem DDA i procesorem GPU-P. Postępuj zgodnie z odpowiednim procesem w danej sytuacji.
Znajdowanie procesorów GPU na każdym hoście
Najpierw upewnij się, że dla każdej maszyny nie zainstalowano sterownika. Jeśli jest zainstalowany sterownik hosta, odinstaluj sterownik hosta i uruchom ponownie maszynę.
Po odinstalowaniu sterownika hosta lub braku zainstalowanego sterownika uruchom program PowerShell jako administrator za pomocą następującego polecenia:
Get-PnpDevice -Status Error | fl FriendlyName, ClusterId
Urządzenia gpu powinny być wyświetlane w stanie błędu, jak 3D Video Controller
pokazano w przykładowych danych wyjściowych, które zawierają przyjazną nazwę i identyfikator wystąpienia procesora GPU:
[ASRR1N26R02U46A]: PS C:\Users\HCIDeploymentUser\Documents> Get-PnpDevice - Status Error
Status Class FriendlyName
------ ----- ------------
Error SD Host Controller
Error 3D Video Controller
Error 3D Video Controller
Error USB Unknown USB Device (Device Descriptor Request Failed)
[ASRR1N26R02U46A]: PS C:\Users\HCIDeploymentUser\Documents> Get-PnpDevice - Status Error | f1 InstanceId
InstanceId : PCI\VEN_8086&DEV_18DB&SUBSYS_7208086REV_11\3&11583659&0&E0
InstanceId : PCI\VEN_10DE&DEV_25B6&SUBSYS_157E10DE&REV_A1\4&23AD3A43&0&0010
InstanceId : PCI\VEN_10DE&DEV_25B6&SUBSYS_157E10DE&REV_A1\4&17F8422A&0&0010
InstanceId : USB\VID_0000&PID_0002\S&E492A46&0&2
Korzystanie z narzędzia DDA
Postępuj zgodnie z tym procesem, jeśli używasz narzędzia DDA:
1. Wyłączanie i odinstalowywanie procesorów GPU z hosta
W przypadku DDA podczas odinstalowywania sterownika hosta lub nowej konfiguracji lokalnej platformy Azure fizyczny procesor GPU przechodzi w stan błędu. Aby kontynuować, należy odinstalować wszystkie urządzenia gpu. Możesz użyć Menedżer urządzeń lub programu PowerShell, aby wyłączyć i odinstalować procesor GPU przy użyciu uzyskanego ClusterID
w poprzednim kroku.
$id1 = "GPU_instance_ID"
Disable-PnpDevice -ClusterId $id1 -Confirm:$false
Dismount-VMHostAssignableDevice -ClusterPath $id1 -Force
Upewnij się, że procesory GPU zostały poprawnie odinstalowane z maszyny hosta. Procesory GPU będą teraz w Unknown
stanie:
Get-PnpDevice -Status Unknown | fl FriendlyName, ClusterId
Powtórz ten proces dla każdej maszyny w systemie, aby przygotować procesory GPU.
2. Pobierz i zainstaluj sterownik ograniczania ryzyka
Oprogramowanie może zawierać składniki opracowane i należące do firmy NVIDIA Corporation lub jej licencjodawców. Korzystanie z tych składników podlega umowie licencyjnej użytkownika końcowego firmy NVIDIA.
Zapoznaj się z dokumentacją firmy NVIDIA, aby pobrać odpowiedni sterownik ograniczania ryzyka firmy NVIDIA. Po pobraniu sterownika rozwiń archiwum i zainstaluj sterownik ograniczania ryzyka na każdej maszynie hosta. Użyj następującego skryptu programu PowerShell, aby pobrać sterownik ograniczania ryzyka i wyodrębnić go:
Invoke-WebRequest -Uri "https://docs.nvidia.com/datacenter/tesla/gpu-passthrough/nvidia_azure_stack_inf_v2022.10.13_public.zip" -OutFile "nvidia_azure_stack_inf_v2022.10.13_public.zip"
mkdir nvidia-mitigation-driver
Expand-Archive .\nvidia_azure_stack_inf_v2022.10.13_public.zip .\nvidia-mitigation-driver
Po wyodrębnieniu plików sterowników ograniczania ryzyka znajdź wersję odpowiedniego modelu procesora GPU i zainstaluj go. Jeśli na przykład zainstalowano sterownik ograniczania ryzyka NVIDIA A2, uruchom następujące polecenie:
pnputil /add-driver nvidia_azure_stack_A2_base.inf /install /force
Aby potwierdzić instalację tych sterowników, uruchom polecenie:
pnputil /enum-devices OR pnputil /scan-devices
Powinny być widoczne prawidłowo zidentyfikowane procesory GPU w programie Get-PnpDevice
:
Get-PnpDevice -Class Display | fl FriendlyName, ClusterId
Powtórz powyższe kroki dla każdego hosta w środowisku lokalnym platformy Azure.
Korzystanie z procesora GPU-P
Postępuj zgodnie z tym procesem, jeśli używasz procesora GPU-P:
Pobieranie i instalowanie sterownika hosta
Procesor GPU-P wymaga sterowników na poziomie hosta, które różnią się od DDA. W przypadku procesorów GPU firmy NVIDIA na każdym hoście i na każdej maszynie wirtualnej, która będzie używać procesora GPU-P, będzie potrzebny sterownik graficzny nvidia vGPU. Aby uzyskać więcej informacji, zobacz najnowszą wersję dokumentacji procesorów vGPU firmy NVIDIA i szczegółowe informacje na temat licencjonowania klienta w Podręczniku użytkownika licencjonowania klienta.
Po zidentyfikowaniu procesorów GPU jak 3D Video Controller
na maszynie hosta pobierz sterownik vGPU hosta. Za pomocą licencji NVIDIA GRID powinno być możliwe uzyskanie odpowiedniego sterownika hosta .zip pliku.
Należy uzyskać i przenieść następujący folder na maszynę hosta: \vGPU_<Your_vGPU_version_GA_Azure_Stack_HCI_Host_Drivers>
Przejdź do folderu \vGPU_<Your_vGPU_version_GA_Azure_Stack_HCI_Host_Drivers>\Display.Driver i zainstaluj sterownik.
pnputil /add-driver .\nvgridswhci.inf /install /force
Aby potwierdzić instalację tych sterowników, uruchom polecenie:
pnputil /enum-devices
Powinny być widoczne prawidłowo zidentyfikowane procesory GPU w programie Get-PnpDevice
:
Get-PnpDevice -Class Display | fl FriendlyName, ClusterId
Możesz również uruchomić interfejs nvidia-smi
zarządzania systemem NVIDIA, aby wyświetlić listę procesorów GPU na maszynie hosta w następujący sposób:
nvidia-smi
Jeśli sterownik jest poprawnie zainstalowany, zobaczysz dane wyjściowe podobne do następującego przykładu:
Wed Nov 30 15:22:36 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 527.27 Driver Version: 527.27 CUDA Version: N/A |
|-------------------------------+----------------------+----------------------+
| GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA A2 WDDM | 00000000:65:00.0 Off | 0 |
| 0% 24C P8 5W / 60W | 15192MiB / 15356MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
| 1 NVIDIA A2 WDDM | 00000000:66:00.0 Off | 0 |
| 0% 24C P8 5W / 60W | 15192MiB / 15356MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
Konfigurowanie liczby partycji procesora GPU
Wykonaj następujące kroki, aby skonfigurować liczbę partycji procesora GPU w programie PowerShell:
Uwaga
W przypadku korzystania z programu PowerShell należy ręcznie upewnić się, że konfiguracja procesora GPU jest jednorodna na wszystkich maszynach w środowisku lokalnym platformy Azure.
Nawiąż połączenie z maszyną, której liczba partycji procesora GPU ma zostać skonfigurowana.
Uruchom polecenie i odwołaj
Get-VMHostPartitionableGpu
się do wartości Name i ValidPartitionCounts .Uruchom następujące polecenie, aby skonfigurować liczbę partycji. Zastąp
GPU-name
ciąg wartością Name ipartition-count
jedną z obsługiwanych liczb z wartości ValidPartitionCounts :Set-VMHostPartitionableGpu -Name "<GPU-name>" -PartitionCount <partition-count>
Na przykład następujące polecenie konfiguruje liczbę partycji na wartość
4
:PS C:\Users> Set-VMHostPartitionableGpu -Name "\\?\PCI#VEN_10DE&DEV_25B6&SUBSYS_157E10DE&REV_A1#4&18416dc3&0&0000#{064092b3-625e-43bf-9eb5-dc845897dd59}" -PartitionCount 4
Możesz ponownie uruchomić polecenie
Get-VMHostPartitionableGpu | FL Name,ValidPartitionCounts,PartitionCount
, aby sprawdzić, czy liczba partycji jest ustawiona na4
.Oto przykładowe dane wyjściowe:
PS C:\Users> Get-VMHostPartitionableGpu | FL Name,ValidPartitionCounts,PartitionCount Name : \\?\PCI#VEN_10DE&DEV_25B6&SUBSYS_157E10DE&REV_A1#4&18416dc3&0&0000#{064092b3-625e-43bf-9eb5-dc845897dd59} ValidPartitionCounts : {16, 8, 4, 2...} PartitionCount : 4 Name : \\?\PCI#VEN_10DE&DEV_25B6&SUBSYS_157E10DE&REV_A1#4&5906f5e&0&0010#{064092b3-625e-43bf-9eb5-dc845897dd59} ValidPartitionCounts : {16, 8, 4, 2...} PartitionCount : 4
Aby zachować jednorodność konfiguracji, powtórz kroki konfiguracji liczby partycji na każdej maszynie w systemie.
Wymagania dotyczące gościa
Zarządzanie procesorem GPU jest obsługiwane w przypadku następujących obciążeń maszyn wirtualnych usługi Arc:
Maszyny wirtualne generacji 2
Obsługiwany 64-bitowy system operacyjny zgodnie z opisem w najnowszej wersji jednostki vGPU firmy NVIDIA obsługuje obsługiwane produkty