Что такое проброс видеокарты в Hyper-V на Windows 10 и Windows 11?
Проброс видеокарты означает предоставление виртуальной машине прямого или почти прямого доступа к физическому графическому адаптеру, установленному в основном компьютере. Вместо использования только базового виртуального видеоадаптера Hyper-V гостевая операционная система может задействовать аппаратное ускорение для 3D-графики, кодирования видео, CUDA или DirectX-нагрузок, удалённых рабочих столов, лёгкого гейминга, AI-инструментов и ресурсоёмких графических приложений.
В Hyper-V выражение «GPU passthrough» часто используют для двух разных технологий: Discrete Device Assignment (DDA), которая назначает целую PCIe-видеокарту одной виртуальной машине, и GPU Partitioning (GPU-P), которая передаёт гостевой системе раздел основного GPU. На клиентских системах Windows 10 и Windows 11 наиболее практичный вариант для домашних пользователей и рабочих станций — GPU-P, а не полноценный серверный DDA.
Зачем подключать видеокарту к виртуальной машине Hyper-V
- Запускать программы, которые отказываются работать с базовым видеоадаптером Hyper-V.
- Включить DirectX, OpenGL, Vulkan, CUDA или аппаратное декодирование видео внутри VM.
- Тестировать графические драйверы, игровые лаунчеры, инструменты рендеринга или видеоредакторы в изоляции.
- Использовать GPU-ускорение через расширенный сеанс, RDP, Parsec, Sunshine/Moonlight или другую систему удалённого вывода изображения.
- Создать одноразовую виртуальную машину для экспериментов без установки тяжёлого ПО в основной Windows.
Поддержка GPU passthrough в Hyper-V: DDA и GPU-P на Windows 10/11
Перед изменением параметров виртуальной машины важно понимать границы поддержки. Microsoft описывает Discrete Device Assignment как технологию Windows Server для назначения поддерживаемых PCIe-устройств, включая видеокарты и NVMe-накопители, напрямую виртуальной машине. В современных рекомендациях Microsoft сценарии DDA и GPU-P относятся в первую очередь к серверному классу: настольное оборудование и клиентские Windows 10/11 не являются целевой поддерживаемой платформой для корпоративного назначения GPU.
| Технология | Как работает | Лучший сценарий | Реальность на Windows 10/11 Client |
|---|---|---|---|
| DDA | Передаёт целую PCIe-видеокарту одной VM. Хост теряет обычный доступ к этой видеокарте на время назначения. | Хосты Windows Server, доверенные VM, выделенное оборудование, корпоративные нагрузки. | Не является обычным поддерживаемым сценарием для клиентского ПК. Требует совместимого оборудования, прошивки, ACS/IOMMU и продуманных решений по безопасности. |
| GPU-P | Создаёт раздел GPU и подключает его к виртуальной машине поколения 2 через PowerShell. | Совместное использование части видеокарты хоста с VM для ускорения. | Часто применяется экспериментально на Windows 10/11 Pro или Enterprise, но обновления драйверов и Windows могут сломать конфигурацию. |
| RemoteFX vGPU | Старая технология виртуального GPU. | Только устаревшие среды Windows Server/Hyper-V. | Не используйте её. RemoteFX vGPU была удалена из-за проблем безопасности. |
Системные требования для GPU Partitioning в Hyper-V на Windows 10 и 11
GPU Partitioning чувствителен к оборудованию, драйверам и точной конфигурации виртуальной машины. Перед запуском PowerShell-команд проверьте все требования ниже.
Требования к компьютеру-хосту
- Редакция Windows: Windows 10 Pro, Enterprise или Education; Windows 11 Pro, Enterprise или Education. В редакциях Home Hyper-V по умолчанию недоступен.
- Включённый Hyper-V: должны быть установлены платформа Hyper-V и средства управления.
- Аппаратная виртуализация: Intel VT-x/VT-d или AMD-V/AMD-Vi должны быть включены в BIOS/UEFI.
- Современный драйвер GPU: перед настройкой VM установите на хост последнюю стабильную версию драйвера NVIDIA, AMD или Intel.
- Достаточно ресурсов: рекомендуется минимум 16 ГБ ОЗУ, если и хост, и гостевая система будут выполнять графически тяжёлые задачи.
Требования к виртуальной машине
- VM поколения 2: используйте виртуальную машину Hyper-V на базе UEFI.
- Гостевая ОС: проще всего использовать Windows 10 или Windows 11. Сценарии GPU-P для Linux более ограничены и зависят от драйверов.
- Динамическая память отключена: для большей стабильности используйте фиксированный объём памяти.
- Создана контрольная точка: создайте checkpoint перед добавлением GPU-адаптера.
- PowerShell от имени администратора: все команды на стороне хоста нужно выполнять в повышенной консоли PowerShell.
Как включить Hyper-V, если он не установлен
Откройте PowerShell от имени администратора и выполните:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
Перезагрузите Windows, когда система предложит это сделать. После перезагрузки откройте Диспетчер Hyper-V из меню «Пуск».
Как подготовить виртуальную машину Hyper-V перед добавлением GPU
Перед подключением GPU partition adapter виртуальная машина должна быть выключена и настроена последовательно. Не выполняйте эти команды, если VM находится в сохранённом состоянии.
Шаг 1. Задайте переменную с именем VM
Замените Win11-GPU на точное имя вашей виртуальной машины:
$vm = "Win11-GPU"
Шаг 2. Выключите виртуальную машину
Stop-VM -Name $vm -TurnOff
Шаг 3. Отключите автоматические контрольные точки и динамическую память
Set-VM -Name $vm -AutomaticCheckpointsEnabled $false
Set-VMMemory -VMName $vm -DynamicMemoryEnabled $false -StartupBytes 8GB
Шаг 4. Настройте параметры кэша и MMIO
Эти параметры часто используются при подключении ресурсов GPU к виртуальным машинам Hyper-V. Они помогают гостевой системе корректно отображать память устройства.
Set-VM -GuestControlledCacheTypes $true -VMName $vm
Set-VM -LowMemoryMappedIoSpace 1GB -VMName $vm
Set-VM -HighMemoryMappedIoSpace 32GB -VMName $vm
Как включить GPU Partitioning в Hyper-V через PowerShell
Основная команда GPU-P — Add-VMGpuPartitionAdapter. Она добавляет виртуальный адаптер раздела GPU к выбранной виртуальной машине. На многих системах Hyper-V автоматически выбирает доступную видеокарту, которую можно разделить. Если команда завершается ошибкой, возможно, ваше оборудование, драйвер, сборка Windows или набор функций Hyper-V не предоставляет GPU-P корректно.
Шаг 1. Проверьте наличие разделяемой видеокарты
Get-VMHostPartitionableGpu
Если команда возвращает сведения о GPU, хост видит хотя бы одну видеокарту как доступную для partitioning. Если результата нет, обновите драйвер GPU, установите все обновления Windows, перезагрузите компьютер и проверьте настройки виртуализации в BIOS/UEFI.
Шаг 2. Добавьте GPU Partition Adapter
Add-VMGpuPartitionAdapter -VMName $vm
Шаг 3. При необходимости задайте лимиты ресурсов GPU
Некоторые конфигурации позволяют определить минимальные, максимальные и оптимальные значения для VRAM, кодирования, декодирования и вычислительных ресурсов. Точное поведение зависит от видеокарты и драйвера.
Set-VMGpuPartitionAdapter -VMName $vm `
-MinPartitionVRAM 80000000 `
-MaxPartitionVRAM 1000000000 `
-OptimalPartitionVRAM 1000000000 `
-MinPartitionEncode 80000000 `
-MaxPartitionEncode 1000000000 `
-OptimalPartitionEncode 1000000000 `
-MinPartitionDecode 80000000 `
-MaxPartitionDecode 1000000000 `
-OptimalPartitionDecode 1000000000 `
-MinPartitionCompute 80000000 `
-MaxPartitionCompute 1000000000 `
-OptimalPartitionCompute 1000000000
Шаг 4. Запустите виртуальную машину
Start-VM -Name $vm
На этом этапе Windows внутри VM может обнаружить устройство, связанное с GPU, но аппаратное ускорение обычно не заработает корректно, пока гостевая система не получит доступ к подходящим файлам драйвера.
Как скопировать драйверы видеокарты с хоста в гостевую систему Hyper-V
GPU-P сильно зависит от того, видит ли гостевая система компоненты драйвера, совпадающие с драйвером на хосте. Распространённый ручной способ — скопировать нужную папку драйвера с хоста в VM, а затем при необходимости установить обычный пакет драйвера GPU внутри гостевой Windows.
Найдите папку драйвера на хосте
На основном компьютере откройте Проводник и перейдите в:
C:\Windows\System32\DriverStore\FileRepository
Найдите папки, связанные с производителем вашей видеокарты, например:
nv_dispi.inf_amd64_...или похожие папки для драйверов NVIDIA.u*.inf_amd64_...,amdwddmg.inf_amd64_...или похожие папки для драйверов AMD.iigd_dch.inf_amd64_...или похожие папки для графических драйверов Intel.
Скопируйте файлы драйвера в VM
Передать папку можно несколькими способами:
- Использовать копирование и вставку в расширенном сеансе Hyper-V.
- Подключить временный VHDX к VM и передать файлы через него.
- Использовать сетевую папку, если сеть включена и доверенная.
- Смонтировать диск VM офлайн на хосте, скопировать файлы и безопасно отключить диск.
Часто используемый путь в гостевой системе:
C:\Windows\System32\HostDriverStore\FileRepository
Как проверить GPU-ускорение внутри виртуальной машины Hyper-V
После запуска VM войдите в гостевую систему и проверьте, видит ли Windows путь GPU-ускорения.
Проверка в Диспетчере устройств
- Внутри VM нажмите Win + X и откройте Диспетчер устройств.
- Разверните раздел Видеоадаптеры.
- Проверьте, отображается ли ваша видеокарта или устройство GPU partition, а не только Microsoft Basic Display Adapter.
- Если есть значок предупреждения, откройте свойства устройства и проверьте код ошибки.
Проверка через средство диагностики DirectX
- Нажмите Win + R, введите
dxdiagи нажмите Enter. - Откройте вкладку Экран.
- Проверьте, включено ли ускорение Direct3D и корректно ли отображается название GPU.
Проверка в Диспетчере задач
Откройте Диспетчер задач внутри VM, перейдите на вкладку Производительность и проверьте активность GPU. Затем запустите приложение, умеющее использовать видеокарту: браузер с аппаратным ускорением, видеокодировщик, 3D-бенчмарк или инструмент рендеринга.
dxdiag
Get-PnpDevice -Class Display
Полный проброс видеокарты через Discrete Device Assignment: что требуется
Discrete Device Assignment — ближайший аналог традиционного PCIe passthrough в Hyper-V. Он удаляет устройство из управления хоста и подключает его к виртуальной машине. Для видеокарт это может дать более сильную изоляцию и более полный доступ к устройству, чем GPU-P, но требования и риски значительно выше.
Практические требования DDA
- Хост Windows Server Hyper-V, а не типичная настольная Windows 10/11.
- Серверная материнская плата и прошивка с корректным поведением PCIe ACS/IOMMU.
- Видеокарта, которую производитель поддерживает для DDA или корпоративной виртуализации.
- Вторая видеокарта или удалённый способ управления хостом, потому что назначенный GPU становится недоступен хосту.
- Доверенная гостевая VM, так как DDA открывает ей доступ ко всему устройству.
- Без Dynamic Memory, без обычного сохранения/восстановления состояния VM и без стандартной live migration при подключённом устройстве.
Типовая логика команд DDA
Команды ниже показывают общий принцип. Их не следует выполнять на случайном настольном железе, пока вы не подтвердили совместимость и не подготовили план восстановления.
$vm = "Server-GPU-VM"
$locationPath = "PCIROOT(...)#PCI(...)#PCI(...)"
Stop-VM -Name $vm -TurnOff
Set-VM -Name $vm -AutomaticStopAction TurnOff
Set-VM -GuestControlledCacheTypes $true -VMName $vm
Set-VM -LowMemoryMappedIoSpace 3GB -VMName $vm
Set-VM -HighMemoryMappedIoSpace 33280MB -VMName $vm
Disable-PnpDevice -InstanceId "PCI\VEN_..." -Confirm:$false
Dismount-VMHostAssignableDevice -LocationPath $locationPath -Force
Add-VMAssignableDevice -LocationPath $locationPath -VMName $vm
Start-VM -Name $vm
GPU passthrough в Hyper-V не работает: частые проблемы и решения
Get-VMHostPartitionableGpu ничего не возвращает
- Установите последнюю стабильную версию драйвера видеокарты на хосте.
- Установите все обновления Windows и перезагрузите компьютер.
- Проверьте в BIOS/UEFI параметры виртуализации, VT-d, IOMMU и SR-IOV, если они доступны.
- Убедитесь, что включён именно Hyper-V, а не только Virtual Machine Platform.
- Попробуйте другую ветку драйвера GPU, если после недавнего обновления определение перестало работать.
VM запускается, но показывает Microsoft Basic Display Adapter
- Повторно скопируйте соответствующие файлы драйвера с хоста в гостевую систему.
- Установите драйвер GPU производителя внутри гостевой системы, если установщик это позволяет.
- Перезагрузите гостевую систему, а затем хост, если устройство всё ещё не инициализируется.
- Удалите и заново добавьте GPU partition adapter.
В Диспетчере устройств отображается код 43
Код 43 обычно означает, что драйвер не смог инициализировать видеокарту в виртуализированной среде. Используйте совпадающие файлы драйвера на хосте и в гостевой системе, избегайте очень старых драйверов и проверьте всё на свежей VM поколения 2. Некоторые сочетания потребительских GPU и драйверов просто не работают стабильно с GPU-P.
VM зависает или показывает чёрный экран
- Выключите VM через Диспетчер Hyper-V и удалите GPU-адаптер.
- Увеличьте выделенную ОЗУ и значения MMIO.
- Отключите Dynamic Memory.
- Сначала подключитесь через обычный VMConnect, а после загрузки драйверов используйте RDP, Parsec или другой метод удалённого доступа.
Как удалить GPU Partition Adapter
Если виртуальная машина стала нестабильной, удалите адаптер из повышенной консоли PowerShell на хосте:
Stop-VM -Name $vm -TurnOff
Remove-VMGpuPartitionAdapter -VMName $vm
Start-VM -Name $vm
Плюсы, ограничения и альтернативы проброса видеокарты в Hyper-V
✓ Преимущества
- Позволяет VM использовать реальное GPU-ускорение вместо базового виртуального видеоадаптера.
- Полезно для тестирования графических приложений, браузеров, видеоредакторов и ПО, чувствительного к драйверам.
- GPU-P может позволить хосту и VM совместно использовать одну физическую видеокарту.
- Не нужно устанавливать второй гипервизор, если Hyper-V уже используется в вашей работе.
- Хорошо подходит для экспериментов при совместимом оборудовании и драйверах.
✗ Ограничения
- Не является полностью поддерживаемой потребительской функцией на клиентских Windows 10/11.
- Обновления драйверов могут ломать конфигурацию.
- Производительность не всегда равна доступу к GPU на «голом железе».
- Античиты, DRM и некоторые игры могут блокировать виртуализированные среды.
- DDA требует серверного оборудования и может полностью забрать видеокарту из управления хоста.
Альтернативы GPU passthrough в Hyper-V
| Альтернатива | Лучше всего подходит для | Примечания |
|---|---|---|
| Запуск нагрузки на хосте | Игры, видеоредакторы, 3D-приложения | Самый надёжный вариант с максимальной производительностью. |
| Windows Sandbox с vGPU | Одноразовое тестирование программ | Просто, но не подходит для постоянных тяжёлых GPU-нагрузок. |
| GPU-ускорение в WSL 2 | Linux AI, ML, CUDA, разработка | Для задач разработки часто поддерживается лучше, чем полноценная GUI-VM. |
| 3D-ускорение VMware / VirtualBox | Базовое 3D-ускорение рабочего стола | Это не прямой GPU passthrough, но проще для обычных GUI-задач. |
| Windows Server DDA | Выделенные корпоративные GPU-нагрузки | Используйте поддерживаемое оборудование и документацию производителя. |
Частые вопросы о пробросе видеокарты в Hyper-V
Q Можно ли пробросить NVIDIA GeForce или AMD Radeon в Hyper-V на Windows 11 Pro? ▼
Q GPU-P — это то же самое, что полный проброс видеокарты? ▼
Q Нужна ли вторая видеокарта? ▼
Q Улучшит ли это производительность игр в виртуальной машине Hyper-V? ▼
Q Почему GPU passthrough перестал работать после обновления драйвера? ▼
Q Можно ли использовать RemoteFX vGPU вместо этого? ▼
🧩 Итог: лучший способ использовать видеокарту в Hyper-V на Windows 10/11
На клиентских хостах Windows 10 и Windows 11 наиболее практичный подход — GPU Partitioning с командой Add-VMGpuPartitionAdapter. Он может дать виртуальной машине Windows поколения 2 доступ к GPU-ускорению, но такую настройку следует считать продвинутой и чувствительной к драйверам, а не гарантированной потребительской функцией.
Для полноценного производственного GPU passthrough используйте Windows Server Hyper-V с Discrete Device Assignment, серверное оборудование, поддерживаемые производителем видеокарты и модель доверенной VM. Для обычного пользователя лучше начинать с тестовой виртуальной машины, создавать контрольную точку, записывать рабочую версию драйвера и заранее готовить способ восстановления перед изменением параметров GPU или Hyper-V.