Przepustowość GPU w Hyper-V: Niezbędny przewodnik dla początkujących

Maszyny wirtualne Hyper-V domyślnie korzystają z emulowanej karty graficznej, która wystarcza do podstawowych zadań związanych z wyświetlaniem, ale nie zapewnia wydajności wymaganej w przypadku obciążeń przyspieszanych przez procesor graficzny (GPU), takich jak renderowanie 3D, wnioskowanie w uczeniu maszynowym czy obliczenia oparte na CUDA. Funkcja przepuszczania GPU w Hyper-V rozwiązuje ten problem poprzez bezpośrednie przypisanie fizycznej karty graficznej do maszyny wirtualnej, omijając emulację i zapewniając systemowi operacyjnemu gościa pełny dostęp do sprzętowego procesora graficznego.

W niniejszym przewodniku omówiono dwie dostępne metody przypisywania kart graficznych w Hyper-V: bezpośrednie przypisanie urządzenia (DDA) oraz partycjonowanie kart graficznych (GPU-P). Przeczytaj ten wpis, aby dowiedzieć się, jak spełnić wymagania sprzętowe i programowe, skonfigurować każdą z metod w systemie Windows Server oraz w wersjach klienckich systemu Windows, a także jak rozwiązywać typowe problemy.

NAKIVO – kopia zapasowa Hyper-V

NAKIVO – kopia zapasowa Hyper-V

Kopie zapasowe dla Hyper-V bez agentów, spójne z aplikacją. Ochrona przed oprogramowaniem wymuszającym okup, natychmiastowe uruchamianie maszyn wirtualnych z kopii zapasowej, wsparcie dla innych platform wirtualnych i fizycznych oraz wiele innych funkcji.

Co nowego?

Niniejszy przewodnik został zaktualizowany w celu uwzględnienia zmian wprowadzonych w systemie Windows Server 2025 oraz najnowszych wydaniach systemu Windows dla klientów:

  • W systemie Windows Server 2025 wprowadzono partycjonowanie procesorów graficznych (GPU-P) jako w pełni obsługiwanej funkcji klasy korporacyjnej, umożliwiającej współdzielenie jednego fizycznego procesora graficznego przez wiele maszyn wirtualnych dzięki izolacji opartej na technologii SR-IOV.
  • W systemie Windows Server 2025 jest teraz wsparcie dla migracji na żywo dla maszyn wirtualnych z partycjami GPU, co umożliwia konserwację hosta bez przestojów maszyn wirtualnych.
  • Rozszerzono wsparcie dla Trybu failover: maszyny wirtualne z funkcją GPU-P można skonfigurować jako role klastrowe, a maszyny wirtualne oparte na DDA mogą zostać ponownie uruchomione na innym węźle klastra, jeśli dostępny jest kompatybilny procesor graficzny.
  • Komponent RemoteFX vGPU został całkowicie usunięty w systemie Windows Server 2025 (wycofany od wersji Windows Server 2019).
  • Zaktualizowano wytyczne dotyczące rozwiązywania problemów oraz uwagi dotyczące tworzenia kopii zapasowych dla maszyn wirtualnych z obsługą GPU.

Czym jest przepuszczanie GPU?

Po uruchomieniu maszyny wirtualnej Hyper-V otrzymuje ona emulowaną kartę graficzną, która renderuje grafikę za pośrednictwem Procesora hosta. Rozwiązanie to jest wystarczające do uzyskania dostępu do konsoli i podstawowego korzystania z pulpitu, ale nie pozwala na wykorzystanie funkcji sprzętowych, na których opierają się obciążenia zależne od procesora graficznego: shaderów obliczeniowych, sprzętowego kodowania wideo, rdzeni CUDA lub obsługi DirectX 12.

Przepustowość procesora graficznego (GPU passthrough) eliminuje tę warstwę emulacji. Zamiast kierować grafikę przez wirtualną kartę graficzną, Hyper-V przypisuje maszynie wirtualnej fizyczną kartę graficzną na poziomie magistrali PCI Express (PCIe). System operacyjny gościa komunikuje się bezpośrednio z procesorem graficznym, korzystając z natywnego sterownika dostawcy zamiast abstrakcji Hyper-V. Z punktu widzenia aplikacji działających w maszynie wirtualnej procesor graficzny zachowuje się tak, jakby był zainstalowany w fizycznej maszynie.

Hyper-V obsługuje w tym celu dwa mechanizmy. Funkcja bezpośredniego przypisania urządzenia (DDA) udostępnia cały fizyczny procesor graficzny jednej maszynie wirtualnej. Partycjonowanie procesora graficznego (GPU-P) dzieli jedną kartę na izolowane części, dzięki czemu może z niej korzystać wiele maszyn wirtualnych. Oba mechanizmy zostały szczegółowo omówione w dalszej części niniejszego przewodnika.

Uwaga: Procesor graficzny może być zintegrowany z układem procesora (co jest powszechne w najnowszych procesorach Intel i AMD) lub zamontowany na oddzielnej karcie graficznej podłączonej do płyty głównej za pośrednictwem interfejsu PCIe. Przekazywanie GPU i partycjonowanie GPU są zwykle stosowane w przypadku dedykowanych kart graficznych, chociaż GPU-P może działać również ze zintegrowanymi układami graficznymi w klienckich wersjach systemu Windows.

Kluczowe korzyści z przekazywania GPU w Hyper-V

Fizyczna karta graficzna podłączona przez przekazywanie GPU może służyć użytkownikom domowym, programistom, projektantom i innym osobom, które potrzebują w maszynie wirtualnej grafiki przyspieszanej sprzętowo. Typowe scenariusze obejmują:

  • Uruchamianie aplikacji wymagających intensywnego przetwarzania grafiki, takich jak programy do modelowania 3D i kreślenia w AutoCAD, symulacje inżynieryjne, tworzenie gier oraz renderowanie z akceleracją sprzętową;
  • Uruchamianie gier wymagających funkcji akceleracji sprzętowej; niektóre tytuły mogą nie działać bez fizycznej karty graficznej;
  • Uruchamianie obciążeń związanych z uczeniem maszynowym (ML) i sztuczną inteligencją (AI), które wykorzystują możliwości obliczeniowe GPU.

Korzyści z przekazywania GPU obejmują:

  • Lepszą wydajność grafiki. Maszyny wirtualne uzyskują bezpośredni dostęp do karty graficznej na potrzeby wymagających aplikacji lub gier. Odtwarzanie wideo jest płynniejsze, a renderowanie z akceleracją sprzętową z użyciem najnowszych interfejsów API grafiki staje się dostępne.
  • Elastyczne wykorzystanie sprzętu. Pojedynczy host Hyper-V może uruchamiać wiele maszyn wirtualnych z różnymi obciążeniami graficznymi w sytuacjach, w których dedykowane stacje robocze byłyby niepraktyczne.
  • Oszczędność kosztów. Przekazywanie GPU może obniżyć koszty sprzętu dzięki konsolidacji obciążeń. Ta funkcja ma również zastosowanie we wdrożeniach infrastruktury wirtualnych pulpitów (VDI).

Przekazywanie GPU a partycjonowanie GPU (GPU-P)

Hyper-V oferuje dwa sposoby przypisywania zasobów GPU do maszyn wirtualnych:

  • Bezpośrednie przypisanie urządzenia (DDA) przypisuje całą fizyczną kartę GPU wyłącznie do jednej maszyny wirtualnej. Maszyna wirtualna uzyskuje pełny dostęp do sprzętu i maksymalną wydajność, ale żadna inna maszyna wirtualna nie może korzystać z tej karty GPU. DDA jest dostępne w systemie Windows Server 2016 i nowszych wersjach (edycje Datacenter). Maszyn wirtualnych korzystających z DDA nie można migrować na żywo.
  • Partycjonowanie GPU (GPU-P) dzieli pojedynczą fizyczną kartę GPU na wiele odizolowanych części przy użyciu technologii SR-IOV, umożliwiając kilku maszynom wirtualnym współdzielenie tego samego sprzętu. Każda maszyna wirtualna otrzymuje dedykowaną część zasobów GPU (pamięci, mocy obliczeniowej i koderów) z izolacją wymuszaną sprzętowo. GPU-P jest w pełni obsługiwaną funkcją dla przedsiębiorstw w systemie Windows Server 2025. Można go również używać w klienckich wersjach systemu Windows 10/11 za pomocą programu PowerShell.

DDA jest preferowane, gdy obciążenie wymaga całej karty GPU lub gdy sprzęt nie obsługuje partycjonowania. GPU-P lepiej sprawdza się w środowiskach, w których wiele maszyn wirtualnych potrzebuje akceleracji GPU bez konieczności wykorzystywania 100% zasobów karty. GPU-P obsługuje także migrację na żywo i klastrowanie trybu failover w systemie Windows Server 2025, czego nie zapewnia DDA.

Fizyczny procesor GPU może działać w trybie DDA albo GPU-P, ale nie w obu jednocześnie.

Wymagania

Aby skonfigurować maszynę wirtualną z przekazywaniem GPU na hoście Hyper-V, należy spełnić określone wymagania sprzętowe i programowe. Nie wszystkie karty graficzne obsługują tę funkcję.

Wymagania sprzętowe

  • Procesor hosta Hyper-V musi obsługiwać funkcje wirtualizacji Intel VT-d lub AMD-V. Odpowiednia funkcja musi być włączona w ustawieniach UEFI/BIOS.
  • Procesor musi obsługiwać jednostkę zarządzania pamięcią wejścia/wyjścia (IOMMU). Ta funkcja jest wymagana do przekazywania urządzeń przez PCI Express, w tym do przekazywania GPU.
  • W przypadku partycjonowania GPU z migracją na żywo w systemie Windows Server 2025 procesor musi obsługiwać określone funkcje śledzenia DMA (bezpośredniego dostępu do pamięci). Wymaganie to spełniają procesory Intel Sapphire Rapids (lub nowsze) oraz AMD EPYC Milan (lub nowsze).
  • Karta graficzna z procesorem GPU obsługującym technologie wirtualizacji GPU, takie jak NVIDIA GRID lub AMD MxGPU (wieloużytkownikowy procesor GPU). Technologie te są specyficzne dla danego producenta. Sprzęt klasy serwerowej zwiększa prawdopodobieństwo powodzenia. Starsze urządzenia korzystające z przerwań PCI (INTx) nie są obsługiwane.
  • W przypadku partycjonowania GPU procesor GPU musi obsługiwać SR-IOV (wirtualizację pojedynczego głównego wejścia/wyjścia). Obsługiwane modele obejmują procesory GPU NVIDIA A2, A10, A16 i A40.

Wymagania programowe

  • Windows Server 2016 lub nowsza wersja w przypadku DDA. W przypadku partycjonowania GPU z obsługą klastrowania i migracji na żywo zalecana jest wersja Windows Server 2025 Datacenter.
  • Windows 10 (kompilacja 1903 lub nowsza) albo Windows 11 w przypadku partycjonowania GPU w systemach klienckich. DDA nie jest obsługiwane w klienckich wersjach systemu Windows.
  • Rola Hyper-V musi być włączona w systemie Windows.
  • Na hoście Hyper-V i w systemie operacyjnym gościa maszyny wirtualnej muszą być zainstalowane najnowsze sterowniki GPU.
  • Do przekazywania GPU za pomocą DDA można używać wyłącznie maszyn wirtualnych Hyper-V generacji 2.

Ograniczenia i nieobsługiwane konfiguracje

Pamiętaj, że następujące konfiguracje nie są obsługiwane podczas korzystania z przekazywania GPU:

  • Maszyny wirtualne z włączoną funkcją pamięci dynamicznej Hyper-V nie mogą korzystać z przekazywania GPU. Przed przypisaniem procesora graficznego należy wyłączyć pamięć dynamiczną.
  • Przekazywanie procesora graficznego za pomocą funkcji DDA jest dostępne wyłącznie w edycjach Datacenter systemu Windows Server. Partycjonowanie procesorów graficznych w środowiskach klastrowych również wymaga edycji Datacenter.
  • Jeśli na hoście Hyper-V przeprowadzono wdrażanie podsystemu Windows dla systemu Linux, podczas przypisywania procesora graficznego poprzez partycjonowanie może wystąpić błąd o kodzie 43 w maszynie wirtualnej Hyper-V.
  • W wersjach starszych niż Windows Server 2025 funkcje klastrowania, takie jak wysoka dostępność (HA) i migracja na żywo maszyn wirtualnych, nie są obsługiwane w przypadku maszyn wirtualnych z obsługą GPU. System Windows Server 2025 dodaje wsparcie dla migracji na żywo dla maszyn wirtualnych typu GPU-P oraz Tryb failover dla maszyn wirtualnych z obsługą DDA.
  • Funkcje zapisywania/przywracania maszyn wirtualnych oraz automatyczne punkty kontrolne nie są obsługiwane w przypadku maszyn wirtualnych, którym przypisano procesor graficzny. Przed przypisaniem procesora graficznego należy wyłączyć automatyczne punkty kontrolne.

Konfiguracja przekazywania GPU: co należy wiedzieć

Metoda przypisywania procesora graficznego do maszyny wirtualnej Hyper-V zależy od wersji systemu Windows oraz wymaganego poziomu współdzielenia sprzętu. Firma Microsoft oferowała z biegiem czasu trzy podejścia, z których obecnie uzyskać można tylko dwa.

RemoteFX vGPU (przestarzałe). Dostępne od systemu Windows Server 2012 R2 do Windows Server 2016, rozwiązanie RemoteFX rozszerzało protokół Remote Desktop Protocol (RDP) w celu współdzielenia jednej karty graficznej hosta między wieloma maszynami wirtualnymi. Było to przydatne w środowiskach VDI o dużej gęstości, gdzie przeznaczenie pełnej karty dla każdej maszyny wirtualnej było niepraktyczne. Jednak RemoteFX ograniczał ilość dedykowanej pamięci graficznej do 1 GB na maszynę wirtualną oraz ograniczał liczbę klatek na sekundę do 30 FPS. Firma Microsoft wycofała tę funkcję w systemie Windows Server 2019 oraz w systemie Windows 10 w wersji 1809 z powodu luk w zabezpieczeniach architektury implementacji Hyper-V, a także całkowicie to usunąłem w systemie Windows Server 2025. Jeśli nadal korzystasz z wersji, w której dostarczono technologię RemoteFX, dostępna jest specjalna aktualizacja umożliwiająca usunięcie tego komponentu.

Direct Device Assignment (DDA). Wprowadzona w systemie Windows Server 2016 technologia DDA zastąpiła RemoteFX w scenariuszach wymagających pełnej wydajności procesora graficznego. Przekazuje ona całe urządzenie PCIe (procesor graficzny, dysk NVMe lub inny adapter) bezpośrednio do pojedynczej maszyny wirtualnej, bez współdzielenia i bez warstwy emulacyjnej. Maszyna wirtualna ładuje natywny sterownik dostawcy i uzyskuje nieograniczony dostęp do pamięci graficznej oraz częstotliwości odświeżania. DDA jest odpowiednikiem funkcji VMware PCI Passthrough w Hyper-V. Kompromisem jest elastyczność: z karty może korzystać tylko jedna maszyna wirtualna, nie można jej migrować na żywo (jest przypisana do fizycznej ścieżki PCIe na hoście), a funkcja DDA jest dostępna wyłącznie w edycjach Windows Server Datacenter. W systemie Windows Server 2025 maszyny wirtualne korzystające z DDA zyskały obsługę klastrowania trybu failover, co oznacza, że klaster może ponownie uruchomić maszynę wirtualną na innym węźle, jeśli dostępny jest zgodny procesor GPU, ale migracja na żywo nadal nie jest obsługiwana.

Partycjonowanie GPU (GPU-P). GPU-P to nowoczesny następca RemoteFX. W systemie Windows Server 2025 dzieli ono pojedynczy fizyczny procesor GPU na wiele odizolowanych części za pomocą SR-IOV, przydzielając każdej maszynie wirtualnej dedykowany udział zasobów obliczeniowych, pamięci i enkodera z izolacją wymuszaną sprzętowo. W przeciwieństwie do DDA, GPU-P obsługuje migrację na żywo i klastrowanie trybu failover w systemie Windows Server 2025 Datacenter, dzięki czemu nadaje się do środowisk produkcyjnych wymagających mobilności maszyn wirtualnych. W klienckich wersjach systemu Windows (Windows 10, kompilacja 1903 lub nowsza, oraz Windows 11) GPU-P jest dostępne za pośrednictwem programu PowerShell, ale opiera się na parawirtualizacji WDDM, a nie na rzeczywistym partycjonowaniu SR-IOV. Host i system gościa muszą działać w tej samej wersji systemu operacyjnego, a sterowniki GPU trzeba ręcznie skopiować z hosta do systemu gościa.

W praktyce oznacza to, że jeśli potrzebujesz pełnego procesora GPU dla jednej maszyny wirtualnej w systemie Windows Server, użyj DDA. Jeśli kilka maszyn wirtualnych potrzebuje akceleracji GPU lub wymagasz migracji na żywo, użyj GPU-P w systemie Windows Server 2025. W klienckim systemie Windows GPU-P za pośrednictwem programu PowerShell to jedyna obsługiwana metoda.

Konfigurowanie przekazywania GPU w funkcji Hyper-V

Wykonaj poniższe czynności, aby przygotować środowisko i skonfigurować przekazywanie GPU w funkcji Hyper-V.

Przygotowanie do konfigurowania przekazywania GPU

  1. Upewnij się, że sprzęt i oprogramowanie spełniają wymagania dotyczące wirtualizacji GPU.
  2. Włącz funkcje wirtualizacji Intel VT-d lub AMD-V dla procesora w oprogramowaniu UEFI/BIOS hosta Hyper-V.
  3. Włącz IOMMU . Lokalizacja ustawienia IOMMU różni się w zależności od płyty głównej i wersji UEFI/BIOS. W niektórych przypadkach znajduje się ono w konfiguracji mostka północnego. IOMMU można również włączyć, włączając Intel VT-d lub AMD-V. Sprawdź funkcję ponownego mapowania pamięci w oprogramowaniu UEFI/BIOS.

    Możesz sprawdzić, czy funkcja IOMMU jest włączona na hoście Hyper-V, za pomocą następującego polecenia programu PowerShell (uruchom jako administrator):

    (Get-VMHost).IovSupport; (Get-VMHost).IovSupportReasons

    True = włączona; Fałsz = wyłączono.

  4. Usuń wszystkie punkty kontrolne maszyny wirtualnej, która będzie korzystać z przekazywania GPU.

    Aby wyłączyć automatyczne punkty kontrolne maszyny wirtualnej, uruchom:

    Set-VM -Name VMName -AutomaticStopAction TurnOff

Przekazywanie GPU w systemie Windows Server

Poniższe czynności wykorzystują DDA do przypisania fizycznego GPU do maszyny wirtualnej w systemie Windows Server.

  1. Ustaw typ pamięci podręcznej oraz limity przestrzeni MMIO (wejścia/wyjścia mapowanego w pamięci) dla maszyny wirtualnej. Uruchom to polecenie programu PowerShell jako administrator:
    Set-VM -Name VMName -GuestControlledCacheTypes $True -LowMemoryMappedIoSpace 3Gb -HighMemoryMappedIoSpace 33280Mb

    Możesz też uruchomić trzy oddzielne polecenia:

    Set-VM -GuestControlledCacheTypes $true -VMName YourVMName
    Set-VM -LowMemoryMappedIoSpace 3Gb -VMName YourVMName
    Set-VM -HighMemoryMappedIoSpace 33280Mb -VMName YourVMName

    Limity te określają okno pamięci, dzięki któremu urządzenie jest dostępne dla maszyny wirtualnej. Możesz użyć skrypt profilu maszyny firmy Microsoft, aby obliczyć optymalne wartości MMIO. Prawidłowe wartości różnią się w zależności od karty graficznej. Jeśli podczas uruchamiania maszyny wirtualnej pojawi się komunikat o niewystarczających zasobach, zamknij ją i dostosuj te wartości. Wartość 33280 MB jest używana dla przestrzeni MMIO powyżej 32 bitów (3 GB dotyczy 32-bitowego okna MMIO).

  2. Zidentyfikuj ścieżkę lokalizacji PCI Express karty graficznej, którą chcesz przekazać.

    Możesz ją znaleźć w Menedżerze urządzeń. Otwórz Menedżera urządzeń, uruchamiając następujące polecenie:

    Devmgmt.msc

    W Menedżerze urządzeń:

    • Kliknij prawym przyciskiem myszy docelową kartę graficzną w obszarze Karty graficzne, a następnie kliknij Właściwości .
    • Wybierz kartę Szczegóły .
    • Wybierz z listy rozwijanej właściwości pozycję Ścieżki lokalizacji i skopiuj jej wartość.

    Viewing the location path of a video card in Device Manager

    Możesz też użyć programu PowerShell, aby pobrać ścieżkę lokalizacji:

    Get-PnpDevice | Where-Object {$_.Present -eq $true} | Where-Object {$_.Class -eq "Display"}|select Name,InstanceId

    oraz:

    Get-PnpDevice -Class Display | ForEach-Object { Write-Output "$($_.FriendlyName) has a device id of $($_.DeviceId) and is located at $($_ | Get-PnpDeviceProperty DEVPKEY_Device_LocationPaths | Select-Object -ExpandProperty Data | Where-Object { $_ -like "PCIROOT*" })"; }

    Wynik powinien zawierać ciąg podobny do:

    „PCIROOT(0)#PCI(0300)#PCI(0000)”

    Identifying the GPU location path in PowerShell

  3. Wyłącz kartę graficzną w Menedżerze urządzeń. Kliknij prawym przyciskiem myszy kartę graficzną, a następnie kliknij Wyłącz urządzenie .Disabling a video card
  4. Odłącz wyłączoną kartę graficzną w programie PowerShell:
    Dismount-VmHostAssignableDevice -LocationPath "PCIROOT(0)#PCI(0300)#PCI(0000)" -Force

    Flaga -Force jest wymagana, gdy sterownik partycji nie jest zainstalowany. Dostawca urządzenia może udostępniać ten opcjonalny sterownik ograniczający ryzyko związane z bezpieczeństwem. Jeśli planujesz go zainstalować, zrób to przed odłączeniem urządzenia PCIe od hosta.

    Użyta powyżej ścieżka lokalizacji ma charakter wyłącznie ilustracyjny; zastąp ją konkretną wartością.

  5. Przypisz kartę graficzną do maszyny wirtualnej:
    Add-VMAssignableDevice -VMName VMName -LocationPath "PCIROOT(0)#PCI(0300)#PCI(0000)"
  6. Włącz maszynę wirtualną i sprawdź, czy fizyczna karta graficzna pojawia się w Menedżerze urządzeń obok domyślnej karty wideo Microsoft Hyper-V.
  7. Zainstaluj sterowniki karty graficznej w systemie gościa maszyny wirtualnej. Pobierz sterowniki z oficjalnej strony internetowej firmy NVIDIA lub AMD.
  8. Aby odłączyć kartę graficzną od maszyny wirtualnej, zatrzymaj maszynę wirtualną i uruchom:
    Remove-VMAssignableDevice -VMName YourVMName -LocationPath $locationPath

    Następnie ponownie podłącz kartę graficzną do hosta Hyper-V:

    Mount-VMHostAssignableDevice -LocationPath $locationPath
Wypróbuj NAKIVO Backup & Replication dla Hyper-V

Wypróbuj NAKIVO Backup & Replication dla Hyper-V

Rozpocznij 15-dniową bezpłatną wersję próbną, aby korzystać z bezagentowych kopii zapasowych Hyper-V spójnych z aplikacją, oferujących natychmiastowe pełne i szczegółowe odzyskiwanie oraz wbudowaną ochronę przed oprogramowaniem wymuszającym okup.

Konfiguracja w systemach Windows 10 i 11

W klienckich wersjach systemu Windows (Windows 10 w wersji 1903 i nowszych oraz Windows 11) funkcja DDA jest niedostępna. Obsługiwaną metodą jest partycjonowanie GPU:

  1. Sprawdź, czy karta graficzna obsługuje partycjonowanie GPU. W systemie Windows 10 uruchom:
    Get-VMPartitionableGpu

    W systemie Windows 11 :

    Get-VMHostPartitionableGpu
  2. Użyj polecenia cmdlet Add-VMGpuPartitionAdapter, aby przypisać partycję GPU do maszyny wirtualnej. Musisz jednak skopiować sterowniki GPU z hosta Hyper-V do maszyny wirtualnej. Wersja sterownika na hoście i maszynie gościa musi być taka sama. Skrypt Easy-GPU-PV może zautomatyzować ten proces. Pobierz skrypt jako plik ZIP i rozpakuj go do folderu na hoście Hyper-V. Skrypt ten korzysta z mechanizmów parawirtualizacji GPU używanych przez Podsystem Windows dla systemu Linux (WSL2) i Windows Sandbox.
  3. Otwórz program PowerShell jako administrator i zezwól na wykonywanie skryptów:
    Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass -Force
    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
  4. Wyłącz maszynę wirtualną. Uruchom skrypt, aby skopiować sterowniki GPU z hosta do maszyny wirtualnej:
    .\Update-VMGpuPartitionDriver.ps1 -VMName YourVMName -GPUName "AUTO"
  5. Skonfiguruj maszynę wirtualną do partycjonowania GPU:
    Set-VM -VMName VMName -GuestControlledCacheTypes $true -LowMemoryMappedIoSpace 1Gb -HighMemoryMappedIoSpace 32Gb
    Add-VMGpuPartitionAdapter -VMName YourVMName
  6. Po zaktualizowaniu sterowników GPU na hoście Hyper-V zaktualizuj je również w maszynie wirtualnej. Maszyna wirtualna musi być wyłączona:
    .\Update-VMGpuPartitionDriver.ps1 -VMName YourVMName -GPUName "AUTO"
  7. Aby usunąć partycję GPU z maszyny wirtualnej:
    Remove-VMGpuPartitionAdapter -VMName "YourVMName"

    Po pomyślnej konfiguracji odpowiednia karta graficzna powinna pojawić się w Menedżerze urządzeń w maszynie wirtualnej. W motywie systemu Windows gościa będą również widoczne efekty wizualne, takie jak przezroczystość pulpitu.

Pamiętaj, że niektóre gry i aplikacje mogą nie działać nawet po ukończeniu konfiguracji przekazywania GPU. Może się tak zdarzyć, gdy aplikacja sprawdza zgodność sprzętu, a informacje o GPU zgłaszane przez system operacyjny gościa różnią się od tych zgłaszanych przez hosta. Niektóre aplikacje wykrywają również, że działają wewnątrz maszyny wirtualnej.

Jeśli aplikacje zależne od OpenGL nie działają w maszynie wirtualnej, pomocna może być instalacja Pakiet zgodności z OpenGL.

Podczas korzystania z partycjonowania GPU w systemie Windows 10 lub 11 karta graficzna wymieniona w Menedżerze urządzeń będzie korzystać ze sterownika firmy Microsoft zamiast wyświetlać model fizycznej karty GPU. Narzędzia producenta, takie jak Panel sterowania NVIDIA, nie są dostępne w maszynie wirtualnej.

Dodatkowy problem może wystąpić, jeśli zamkniesz sesję RDP bez uprzedniego rozłączenia. W takim przypadku maszyna wirtualna może utracić dostęp do pamięci GPU, a aplikacje korzystające z GPU zgłoszą, że pamięć wideo jest niedostępna. Ponowne połączenie przez RDP nie rozwiązuje problemu; musisz ponownie uruchomić aplikacje, których dotyczy problem.

Rozwiązywanie problemów z przekazywaniem GPU

Jeśli karta graficzna nie działa prawidłowo po przypisaniu do maszyny wirtualnej, sprawdź, co następuje:

  • Sprawdź, czy zainstalowano najnowsze sterowniki GPU i czy nie występują błędy związane ze sterownikami. Otwórz Menedżera urządzeń i sprawdź stan urządzenia. Zainstaluj sterowniki ze strony internetowej dostawcy (NVIDIA, AMD, Intel), zamiast polegać na usłudze Windows Update.
  • Upewnij się, że dla maszyny wirtualnej przydzielono wystarczającą ilość przestrzeni MMIO.
  • Upewnij się, że dostawca oficjalnie obsługuje przekazywanie GPU dla używanej karty graficznej. Nie wszystkie karty graficzne klasy konsumenckiej obsługują tę funkcję. Niektórzy dostawcy ograniczają przekazywanie GPU do modeli wyższej klasy.
  • Sprawdź, czy aplikacja uruchomiona wewnątrz maszyny wirtualnej obsługuje używaną kartę graficzną i jej sterowniki.
  • Włącz następujące zasady grupy, aby zezwolić na użycie GPU za pośrednictwem Pulpitu zdalnego:
    Computer ConfigurationTemplatesComponentsDesktop ServicesDesktop Session HostSession Environmenthardware graphics adapters for all Remote Desktop Services sessions

    Ustaw tę wartość na Włączony .

  • Jeśli pojawi się błąd, taki jak „Operacja nie powiodła się, ponieważ nie znaleziono obiektu” lub Błąd 12 , dodaj następujące klucze rejestru do:

    HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindowsHyperV

    Wartości:

    RequireSecureDeviceAssignment = 0 (REG_DWORD)

    RequireSupportedDeviceAssignment = 0 (REG_DWORD)

    Te wartości można ustawić za pomocą programu PowerShell:

    Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\HyperV" -Name "RequireSecureDeviceAssignment" -Type DWORD -Value 0 -Force
    Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\HyperV" -Name "RequireSupportedDeviceAssignment" -Type DWORD -Value 0 -Force
  • Aby pominąć sprawdzanie sterownika hypervisora wewnątrz maszyny wirtualnej, użyj Enterprise Windows Driver Kit (WDK):
    • Zamontuj obraz ISO WDK w wirtualnym napędzie DVD maszyny wirtualnej.
    • Uruchom E:LaunchBuildEnv.cmd (gdzie E: to wirtualny napęd DVD), a następnie uruchom program PowerShell .
    • Przejdź do katalogu zawierającego skrypt Remove-HypervisorChecks.ps1 .
    • Uruchom polecenie, aby usunąć kontrole hypervisora dotyczące sterownika karty graficznej (przykład dla NVIDIA):
      ./Remove-HypervisorChecks.ps1 -Nvidia -DriverPath "C:\path-to-driver\package.exe"
    • Poczekaj na zakończenie wykonywania skryptu.
    • Skopiuj wynikowy sterownik (patched-driver.zip) do maszyny wirtualnej, włącz tryb testowy i zainstaluj sterownik.
  • Jeśli wystąpi Błąd 43 , upewnij się, że karta graficzna i jej kontroler dźwięku (karty NVIDIA często mają urządzenie audio) są przypisane do maszyny wirtualnej razem.
  • Jeśli podczas uruchamiania pojawi się błąd:
    Update-VMGpuPartitionDriver.ps1 -VMName “YourVMName” -GPUName “AUTO”

    Może to być spowodowane wieloma partycjami (woluminami) na wirtualnym dysku twardym. Spróbuj ustawić atrybut hidden na partycjach innych niż systemowa lub tymczasowo je usunąć po utworzeniu kopii zapasowej danych. Możesz też jawnie określić partycję systemową w skrypcie lub poleceniu PowerShell.

Uwagi dotyczące kopii zapasowych i odzyskiwania maszyn wirtualnych z obsługą GPU

Standardowe procedury tworzenia kopii zapasowych funkcji Hyper-V zakładają, że maszyna wirtualna jest przenośna: można ją przywrócić na dowolnym zgodnym hoście i uruchomić. Maszyny wirtualne z obsługą GPU nie spełniają tego założenia. Niezależnie od tego, czy GPU jest przypisane za pomocą DDA, czy GPU-P, maszyna wirtualna jest powiązana ze sprzętem fizycznym, który może być niedostępny lub skonfigurowany inaczej na hoście docelowym odzyskiwania. Dzięki temu tworzenie kopii zapasowej jest proste, ale odzyskiwanie zależy od dostępności sprzętu.

Sam układ GPU wiąże się z kwestią spójności danych. Oprogramowanie do tworzenia kopii zapasowych zapisuje stan dysku, ale nie może utworzyć migawki zawartości pamięci wideo GPU. W przypadku maszyn wirtualnych obsługujących duże obciążenia GPU kopia zapasowa odzwierciedla zatem stan sprzętu w trybie offline lub spójny z danymi z wypadku, nawet jeśli dane na dysku są spójne z punktu widzenia aplikacji. Aby zminimalizować tę różnicę, używaj punktów kontrolnych produkcyjnych z Usługa kopii w tle woluminów (VSS) lub narzędzia do tworzenia kopii zapasowych obsługującego VSS, które zapewnia zapisanie w spójnym stanie danych opróżnionych z pamięci GPU na dysk.

Wybór między wykonywanie kopii zapasowych na poziomie hosta i na poziomie gościa jest mniej oczywisty w przypadku maszyn wirtualnych z obsługą GPU niż w przypadku standardowych maszyn wirtualnych:

  • Kopia zapasowa na poziomie hosta obejmuje pliki VHDX oraz konfigurację maszyny wirtualnej. Jest to standardowe podejście, ale po przywróceniu wymaga ręcznego ponownego mapowania GPU.
  • Kopia zapasowa na poziomie gościa wymaga zainstalowania agenta kopii zapasowej wewnątrz maszyny wirtualnej. Takie podejście jest często bardziej praktyczne w przypadku obciążeń GPU, ponieważ traktuje maszynę wirtualną jak standardowy serwer i pozwala pominąć złożoność przekazywania GPU podczas przechwytywania danych.

W konfiguracjach DDA z wyłącznym przekazywaniem maszyna wirtualna jest powiązana z określoną ścieżką PCI Express na hoście. Jeśli przywrócisz maszynę wirtualną z włączoną funkcją DDA na innym hoście, prawdopodobnie nie uda się jej uruchomić, ponieważ oryginalna ścieżka PCIe (taka jak PciRoot(0x0)/Pci(0x3,0x0)…) może nie istnieć lub może być przypisana do innego urządzenia.

Aby rozwiązać problem niezgodności sprzętu po odzyskiwaniu:

  1. Usuń brakujące urządzenie GPU z konfiguracji maszyny wirtualnej.
  2. Odłącz zgodny układ GPU na nowym hoście.
  3. Ponownie przypisz nowy układ GPU do przywróconej maszyny wirtualnej za pomocą PowerShell.

W systemach Windows Server 2025 i Windows 11 partycjonowanie GPU zapewnia większą elastyczność, ale wiąże się z własnymi kwestiami dotyczącymi odzyskiwania. GPU-P wymaga zgodności wersji sterowników GPU hosta i systemu gościa. Jeśli przywrócisz maszynę wirtualną na hoście z inną wersją sterownika, akceleracja GPU może się nie zainicjować.

Podczas odzyskiwania (szczególnie w przypadku Klaster trybu failover Hyper-V) host docelowy musi mieć wystarczającą dostępną pojemność partycji GPU. Jeśli GPU hosta jest już w całości podzielony między inne uruchomione maszyny wirtualne, przywrócona maszyna wirtualna nie uruchomi się lub przełączy się na renderowanie programowe.

Windows Server 2025 zwiększa mobilność maszyn wirtualnych z obsługą GPU. Maszyny wirtualne GPU-P obsługują migrację na żywo w konfiguracjach klastrowych i autonomicznych. W scenariuszu trybu failover klaster może ponownie uruchomić maszynę wirtualną w innym węźle, pod warunkiem że na hoście docelowym skonfigurowano zgodny GPU dla DDA lub GPU-P.

Podczas tworzenia kopii zapasowych i odzyskiwania maszyn wirtualnych z obsługą GPU stosuj się do poniższych zaleceń:

  • Udokumentuj ścieżki PCI i zapisz polecenia programu PowerShell użyte do przypisania GPU. Gotowy skrypt skraca czas przestoju podczas przywracania na innym hoście.
  • Ujednolić sprzęt, korzystając z identycznych modeli GPU i wersji sterowników we wszystkich węzłach klastra. Dzięki temu przywrócona maszyna wirtualna będzie korzystać z tego samego środowiska sprzętowego, niezależnie od tego, na którym hoście zostanie uruchomiona.
  • Regularnie testuj przywracanie maszyn wirtualnych z obsługą GPU na różnych hostach, aby sprawdzić, czy zespół odpowiedzialny za odzyskiwanie potrafi ponownie przypisać urządzenia PCI.
  • Utwórz skrypt uruchamiany po przywróceniu, który wykryje dostępne GPU i automatycznie przypisze je do przywróconej maszyny wirtualnej.

Podsumowanie

Korzystanie z maszyny wirtualnej z przekazywaniem GPU na hoście Hyper-V może być optymalnym rozwiązaniem w przypadku niektórych obciążeń, ale ograniczenia wymagają starannego planowania. Do przekazywania dyskretnych GPU z użyciem DDA zaleca się zwykle sprzęt klasy serwerowej i system Windows Server. Przed rozpoczęciem konfiguracji sprawdź zgodność oprogramowania i sprzętu. Regularnie twórz kopie zapasowe maszyn wirtualnych Hyper-V, aby chronić się przed utratą danych w razie problemów podczas konfigurowania GPU lub późniejszej eksploatacji.

.

Wypróbuj NAKIVO Backup & Replication

Wypróbuj NAKIVO Backup & Replication

Skorzystaj z bezpłatnej wersji próbnej, aby zapoznać się ze wszystkimi funkcjami rozwiązania w zakresie ochrony danych. 15 dni za darmo. Bez żadnych ograniczeń dotyczących funkcji ani pojemności. Nie jest wymagana karta kredytowa.

często zadawane pytania

Jak włączyć funkcję passthrough GPU w Hyper-V?

Aby włączyć przekazywanie GPU przez Hyper-V, wyłącz automatyczne punkty kontrolne i pamięć dynamiczną dla maszyny wirtualnej. W Menedżerze urządzeń lub programie PowerShell zidentyfikuj ścieżkę lokalizacji PCI Express docelowej karty GPU. Wyłącz kartę GPU na hoście, odłącz ją za pomocą polecenia cmdlet Dismount-VmHostAssignableDevice , a następnie przypisz ją do maszyny wirtualnej poleceniem Add-VMAssignableDevice . W klienckich wersjach systemu Windows (Windows 10 i 11) użyj partycjonowania GPU za pomocą polecenia cmdlet Add-VMGpuPartitionAdapter .

Czym jest funkcja „GPU passthrough” w Hyper-V?

Przepustowość GPU to funkcja platformy Hyper-V, która umożliwia bezpośrednie przypisanie fizycznej karty graficznej do maszyny wirtualnej. Maszyna wirtualna korzysta z sprzętowego procesora graficznego bez emulacji, co zapewnia znacznie lepszą wydajność w przypadku obciążeń wymagających intensywnej grafiki i dużej mocy obliczeniowej w porównaniu z domyślną emulowaną kartą graficzną. Obsługa Hyper-V obejmuje dwie metody: bezpośrednie przypisanie urządzenia (DDA), które przypisuje cały procesor graficzny do jednej maszyny wirtualnej, oraz partycjonowanie procesora graficznego (GPU-P), które pozwala wielu maszynom wirtualnym współdzielić jeden procesor graficzny.

Jakie są wymagania dotyczące funkcji passthrough procesora graficznego w Hyper-V?

Funkcja „GPU passthrough” wymaga oddzielnej karty graficznej PCIe firmy NVIDIA lub AMD z wsparciem dla technologii wirtualizacji GPU, takie jak NVIDIA GRID lub AMD MxGPU. Procesor musi obsługiwać funkcję IOMMU (Intel VT-d lub AMD-Vi), a funkcja ta musi być włączona w UEFI/BIOS. Najnowsze sterowniki karty graficznej muszą być zainstalowane zarówno na hoście Hyper-V, jak i na maszynie wirtualnej gościa. Do korzystania z funkcji DDA wymagany jest co najmniej system Windows Server 2016, a do partycjonowania GPU — system Windows 10 (wersja 1903 lub nowsza) z włączoną rolą Hyper-V. W przypadku funkcji DDA wspierane są wyłącznie maszyny wirtualne generacji 2.

Jakie są ograniczenia funkcji „GPU passthrough” w Hyper-V?

Maszyny wirtualne korzystające z funkcji przekazywania GPU w Hyper-V nie mogą korzystać z pamięci dynamicznej ani automatycznych punktów kontrolnych. Funkcja DDA jest dostępna wyłącznie w edycjach Windows Server Datacenter i przypisuje jedną kartę graficzną na maszynę wirtualną bez obsługi migracji na żywo. Partycjonowanie GPU wymaga zgodnych wersji sterowników w systemie operacyjnym hosta i gościa. W wersjach systemu Windows Server sprzed 2025 r. Tryb failover i migracja na żywo nie są dostępne dla maszyn wirtualnych z obsługą procesorów graficznych. Podsystem Windows dla systemu Linux na hoście może powodować błąd 43 w maszynie wirtualnej.

Jak rozwiązać problemy związane z przekazywaniem obciążenia na kartę graficzną w Hyper-V?

Zacznij od sprawdzenia, czy zainstalowano właściwe sterowniki GPU pobrane ze strony internetowej dostawcy (a nie za pośrednictwem usługi Windows Update). Upewnij się, że funkcja Pamięć dynamiczna oraz automatyczne punkty kontrolne są wyłączone dla maszyny wirtualnej. Sprawdź, czy przydzielono wystarczającą ilość przestrzeni MMIO. Jeśli pojawi się błąd 43, upewnij się, że zarówno GPU, jak i jego kontroler audio są przypisane razem, i spróbuj wyłączyć WSL2 na hoście. W przypadku błędu 12 lub błędów „nie znaleziono obiektu” ustaw wartości rejestru RequireSecureDeviceAssignment oraz RequireSupportedDeviceAssignment na 0 w kluczu HKLM.

.

Inni czytają również