Виртуальная видеокарта для windows 10

Как подключить видеокарту в Hyper-VВ ранних версиях Hyper-V для клиентских версий Windows 10 была возможность простого проброса дискретной видеокарты с помощью установки видеоадаптера RemoteFX. В актуальных версиях эта возможность исчезла, а документированный способ с помощью DDA (Discrete Device Assignment) подходит только для серверных версий системы. Однако, возможность подключения физической видеокарты компьютера в Hyper-V имеется.

В этой инструкции пошагово о том, как пробросить видеокарту компьютера в Hyper-V в Windows 11 или Windows 10 с использованием GPU Partitioning и какие особенности использования виртуальной машины при этом возникают. Близкая тема: Как пробросить USB накопители и другие устройства в Hyper-V. Создание виртуальных машин Hyper-V описано в этой инструкции.

Требования для подключения видеокарты в Hyper-V

Прежде чем приступить непосредственно к пробросу видеокарты, о том, какие условия должны выполняться для использования этой возможности:

  • В виртуальной машине должна быть установлена Windows 10 (не ниже 20H1) или Windows Рекомендуется использование одинаковых версий системы (например, 22H2) на хосте и в виртуальной машине.
  • Должно использоваться 2-е поколение виртуальной машины.
  • После проброса создание контрольных точек будет недоступно (вариант решения будет представлен далее в статье). Если контрольные точки создаются автоматически, это может приводить к сбою виртуальной машины.
  • Параллельная работа WSL (Windows Subsystem for Linux) и проброса видеокарты с использованием GPU-P может привести к сбоям (в частности, ошибка с кодом 43 в виртуальной машине).

Для проверки возможности использования видеокарты в Hyper-V посредством GPU Partitioning, вы можете использовать следующие команды PowerShell (от имени администратора), первая — для Windows 10, вторая — для Windows 11:

Get-VMPartitionableGpu
Get-VMHostPartitionableGpu

Если в результате выполнения команд вы видите список видеоадаптеров и информацию о них, можно продолжать.

Список видеокарт с поддержкой GPU Partitioning

Порядок проброса видеокарты в Hyper-V с помощью Easy-GPU-PV

Для подключения дискретной или интегрированной видеокарты в Hyper-V в этом примере будут использоваться готовые сценарии PowerShell Easy-GPU-PV, доступные в GitHub разработчика — зайдите на страницу, нажмите по кнопке «Code», скачайте ZIP-архив и распакуйте в удобное расположение на вашем компьютере.

Шаги для проброса видеокарты в Hyper-V:

  1. Выключите виртуальную машину, если она работает.
  2. Запустите Терминал или PowerShell от имени Администратора (правый клик по кнопке «Пуск» и выбор соответствующего пункта меню) и используйте следующие две команды для разрешения исполнения неподписанных скриптов:
    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
    Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
  3. Перейдите в каталог с извлеченными файлами Easy-GPU-PV с помощью команды
    cd ПУТЬ_К_ПАПКЕ
  4. Выполните следующую команду, заменив имя виртуальной машины на нужное:
    Update-VMGpuPartitionDriver.ps1 -VMName "ИМЯ_ВИРТУАЛЬНОЙ_МАШИНЫ" -GPUName "AUTO"

    Обновить драйвер GPU-P в Hyper-V

  5. Если команда из 4-го пункта выполняется с ошибками, возможны два варианта решения. При наличии на диске виртуальной машины нескольких разделов с буквами (помимо скрытых разделов) — удалить разделы кроме системного или установить для них атрибут «Скрытый»), выключить виртуальную машину и снова выполнить команду. В случае, если в виртуальной машине есть лишь один видимый раздел с Windows, смонтируйте VHDX с системой на хосте, назначьте букву этому разделу, размонтируйте виртуальный диск и снова выполните команду. Ещё один вариант — вручную задать букву диска, под которой монтируется системный диск в файле сценария PowerShell. Исправление ошибок при установке драйвера GPU в Hyper-V
  6. Создайте файл .ps1 со следующим кодом, заменив имя виртуальной машины на нужное в первой строке и запустите его в PowerShell от имени Администратора:
    $vm = "ИМЯ_ВИРТУАЛЬНОЙ_МАШИНЫ"
    if (Get-VMGpuPartitionAdapter -VMName $vm -ErrorAction SilentlyContinue) {
    Remove-VMGpuPartitionAdapter -VMName $vm
    }
    Set-VM -GuestControlledCacheTypes $true -VMName $vm
    Set-VM -LowMemoryMappedIoSpace 1Gb -VMName $vm
    Set-VM -HighMemoryMappedIoSpace 32Gb -VMName $vm
    Add-VMGpuPartitionAdapter -VMName $vm
  7. Запустите виртуальную машину и проверьте доступность дискретной видеокарты в диспетчере устройств. Видеокарта компьютера проброшена в Hyper-V

Если всё прошло успешно, с большой вероятностью, эффект от использования видеокарты в виртуальной машине вы увидите сразу — например, будут включены эффекты прозрачности и скругленные углы в Windows 11, отключенные в Hyper-V по умолчанию. Но следует учитывать, что при использовании видеокарты в Hyper-V есть некоторые особенности.

Особенности работы видеокарты в Hyper-V

Сначала о базовых нюансах после успешного проброса видеокарты в виртуальную машину Hyper-V:

  • При обновлениях драйвера видеокарты на хосте, используйте команду (при выключенной виртуальной машине)
    Update-VMGpuPartitionDriver.ps1 -VMName "ИМЯ_ВМ" -GPUName "AUTO"
  • В диспетчере устройств в виртуальной машине в качестве драйвера будет отображаться не драйвер NVIDIA, а специальный драйвер Microsoft, и такие инструменты как панель управления NVIDIA не будут доступны. Драйвер дискретной видеокарты в Hyper-V
  • Для подключения к виртуальной машине с видеокартой разработчиком скрипта рекомендуется использовать ПО Parsec вместо стандартных средств подключения (но это не обязательно): для обеспечения лучшей производительности при подключении, отмены ограничения в 30 FPS и ограничений разрешения. Однако следует учитывать, что Parsec может не работать с виртуальной машиной с подключенной дискретной видеокартой ноутбука, а также ограничивать выбор разрешений в бесплатной версии для виртуальных машин без физического монитора (одно из решений предполагает установку виртуального монитора в виртуальной машине, подробнее — здесь)
  • После подключения видеокарты контрольные точки для виртуальной машины создавать не получится. Одно из решений — временно отключать, а затем — вновь включать GPU Partitioning, обязательно при выключенной виртуальной машине. Достаточно использовать следующие команды в PowerShell, создав контрольную точку после выполнения первой из них
    Remove-VMGpuPartitionAdapter -VMName "ИМЯ_ВИРТУАЛЬНОЙ_МАШИНЫ"
    Add-VMGpuPartitionAdapter -VMName "ИМЯ_ВИРТУАЛЬНОЙ_МАШИНЫ"
  • В диспетчере задач в виртуальной машине GPU и его загрузка отображаться не будут.

Теперь о более насущных вещах, таких как работа игр и других программ, требующих ускорение видеокарты для работы:

  • Игры и ПО, использующие API Vulkan, работать не будут, даже после установки VulkanRT.
  • Некоторые игры и приложения OpenGL также могут не работать. В некоторых случаях может помочь установка OpenCL and OpenGL Compatibility Pack из Microsoft Store в виртуальной машине.
  • Игры и ПО, принудительно выполняющие проверку совместимости графического оборудования при запуске, могут не запуститься, поскольку информация о подключенной видеокарте, отдаваемая гостевой системой, будет отличаться от таковой при её же использовании на хосте.

В моем тесте (Ноутбук, Windows 11 22H2, NVIDIA RTX 3060) проброс видеокарты удалось успешно выполнить. В дальнейшем для подключения к виртуальной машине использовались стандартные средства Hyper-V. Был опробован запуск:

  • Небольшие любительские проекты на Unity и Unreal Engine с использованием RTX — успешно, всё работает без каких-либо проблем, при 30 FPS (ограничение подключения). NVIDIA RTX в виртуальной машине Hyper-V
  • Создание RAM-диска в памяти видеокарты из виртуальной машины — работает.
  • Браузерные приложения, требующие аппаратного ускорения — работают отлично.
  • Quake 2 RTX — без результата, так как используется Vulkan, а поддержка этого API отсутствует.
  • Технологические демо от NVIDIA — неудачно, активно проверяют установленное оборудование при запуске.

Надеюсь, для кого-то из читателей инструкция будет полезной, а видеокарта в Hyper-V будет работать для выполнения актуальных задач.

В предыдущих версиях Hyper-V (начиная с Windows 7/Windows Server 2008R2) для проброса дискретной видеокарты с хоста в виртуальную машину можно было использовать технологию RemoteFX vGPU. Однако, начиная с Windows 10 1809 и Windows Server 2019, Майкрософт отключило поддержку RemoteFX. Вместо нее предлагается использовать новую технологию Discrete Device Assignment (DDA).

Содержание:

  • Проброс видеокарты в виртуальную машину на Windows Server с Hyper-V
  • Использование GPU в виртуальных машинах Hyper-V на Windows 10/11

DDA позволяет пробросить PCI/PCIe устройства (включая GPU, NVMe) с хоста в виртуальную машину Hyper-V.

Основные требования к инфраструктуре для использования DDA в Hyper-V:

  • Доступно только для виртуальных машин Hyper-V второго поколения (Gen 2);
  • На ВМ должно быть отключены динамическая память и чекпоинты;
  • Физическая карта должна поддерживать технологию GPU Partitioning;
  • Если на хосте развернута среда WSL (Windows Subsystem for Linux), то при пробросе видеокарты с помощью GPU-P, в ВМ может появляться ошибка видеокарты с кодом 43;
  • Хотя SR-IOV (Single Root Input/Output Virtualization) не заявлена в требованиях DDA, без ее поддержки проброс GPU в ВМ работает не корректно.

Discrete Device Assignment доступна только в Windows Server с ролью Hyper-V. В десктопных версиях Windows 10/11 для предоставления общего доступа к видеокарте в виртуальных машинах можно использовать GPU Partitioning. В этой статье мы покажем, как пробросить видеокарту в виртуальную машину на Hyper-V.

Проброс видеокарты в виртуальную машину на Windows Server с Hyper-V

Discrete Device Assignment (DDA) позволяет пробросить PCIe устройства в виртуальную машину во всех версиях Windows Server, начиная с 2016.

Перед пробросом GPU в ВМ, нужно изменить ее конфигурацию.

Отключить автоматическое создание снапшотов (описано в статье об управлении запуском и порядке загрузки ВМ на Hyper-V):

Set-VM -Name VMName -AutomaticStopAction TurnOff

Настроить кэш и лимиты памяти для 32-разрядного пространства MMIO:

Set-VM -Name VMName -GuestControlledCacheTypes $True -LowMemoryMappedIoSpace 3Gb -HighMemoryMappedIoSpace 33280Mb

Затем нужно получить физический путь к PCIe устройству видеокарты на хосте Hyper-V. Для этого нужно открыть свойства GPU в диспетчере устройств, перейти на вкладку Details и выбрать свойство Location paths. Скопируйте значение, которое начинается с PCIROOT.

Получить PCI путь к видеокарте

Либо вы можете получить это значение с помощью PowerShell:
Get-PnpDevice | Where-Object {$_.Present -eq $true} | Where-Object {$_.Class -eq "Display"}|select Name,InstanceId

Отключить эту видеокарту на сервере Hyper-V в диспетчере устройств или с помощью PowerShell:

Dismount-VmHostAssignableDevice -LocationPath "PCIROOT(0)#PCI(0300)#PCI(0000)" –force

Теперь нужно пробросить GPU адаптер в виртуальную машину:

Add-VMAssignableDevice -VMName VMName -LocationPath "PCIROOT(0)#PCI(0300)#PCI(0000)"

Затем включите ВМ и проверьте, что ваша видеокарта появилась в диспетчере устройств в разделе Display Adapters вместе с устройством Microsoft Hyper-V Video.

Доступ к физической вдиеокарте из виртуальной машины Hyper-V

Драйвера видеокарты должны быть предварительно установлены в ВМ.

Чтобы отключить GPU от ВМ и подключить его к хосту:

Remove-VMAssignableDevice -VMName VMName -LocationPath $locationPath
Mount-VMHostAssignableDevice -LocationPath $locationPath

Использование GPU в виртуальных машинах Hyper-V на Windows 10/11

GPU Partitioning (GPU-P) доступно в виртуальных машинах Hyper-V на Windows 10/11, начиная с билда 1903. Проверьте, что ваша видеокарта поддерживает режим GPU Partitioning с помощью команды Get-VMPartitionableGpu (Windows 10) или Get-VMHostPartitionableGpu (для Windows 11).

Get-VMPartitionableGpu - проверить поддержку GPU Patritioning в Hyper-V

Для проброса видеокарты в ВМ используется командлет Add-VMGpuPartitionAdapter. Чтобы скопировать драйвера видеокарты с хоста Hyper-V в виртуальную машину нужно использовать скрипт Easy-GPU-PV (https://github.com/jamesstringerparsec/Easy-GPU-PV).

Скачайте ZIP архив с скриптом и распакуйте его в папку на хосте Hyper-V.

Скрипт Easy-GPU-PV для Hyper-V

Откройте консоль PowerShell с правами администратора и разрешите запуск PowerShell скриптов в текущей сессии (подробнее о PowerShell Execution Policy):

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass –Force

Выполняйте скрипт:

.\Update-VMGpuPartitionDriver.ps1 -VMName VMName -GPUName "AUTO"

Скрипт скопирует драйвера видеокарты с хоста в ВМ.

Update-VMGpuPartitionDriver.ps1 - скопировать драйвера видеокарты в виртуальную машину Hyper-V

Теперь осталось настроить ВМ и пробросить в нее GPU:

Set-VM -VMName VMName -GuestControlledCacheTypes $true -LowMemoryMappedIoSpace 1Gb -HighMemoryMappedIoSpace 32Gb
Add-VMGpuPartitionAdapter -VMName VMName

Если вы обновили драйвера видеокарты на хосте Hyper-V, нужно обновить их в ВМ:

.\Update-VMGpuPartitionDriver.ps1 -VMName VM Name -GPUName "AUTO"

В общем-то не удивительно, что тема набирает популярность — задача иметь линух на хосте и полноценную игровую машину на винде гостем (или как здесь — винда в винде) для того, чтобы разделить мух и котлет все интереснее, тем более, что видеокарты все мощнее.
Вот только производители видеокарт тоже об этом знают и нифига этому не рады :) Да и производители гиперов тоже не сидят на месте.
Чтоюы видюха могла полностью использоваться виртуалкой — ее нужно просунуть туда целиком, как устрйоство, чтобы виртуалка ее нашла и поставила дрова. Мне известна только одна комбинация железа, гипера и оси, где по неподтвержденным данным этот финт ушами канает — видюха от ATI (НЕ NVidia!), гипер KVM, линух хостом, винда гостем.
Какое-то время я пробовал сам, но нифига не преуспел — в KVM видюха пробрасывается, но винда нифига не запускает дрова (потому что NVidia противодействует этому. Намеренно.) в ESXi дрова ставятся, но как «переключить» на нее «монитор» я так и не понял. В Hyper-V же я не уверен, что даже пробросить удастся.

Там статья по ссылке выше. Ее конечно стоит прочитать, но исключительно для самообразования, потому что автор скромно умолчал, сколько стоит GRID K1/K2 карта. Для справки — GRID K1 — порядка 200 тыс руб, GRID K2 — порядка 400 тыс
Пруф

Как ни крути, возможности систем виртуализации что до использования ими ресурсов «железа» ограничены, поэтому не стоит удивляться тому, что большая часть графических API не работает в VMware, VirtualBox или Hyper-V. Кстати, именно по этой причине в установленной на виртуальную машину Windows 11 могут быть недоступны такие эффекты как скругление окон.

Ничего личного, только бизнес

Что лежит в основе этих ограничений? В первую очередь политика производителей видеокарт и разработчиков систем виртуализации. Так, для виртуализации графических вычислений компания NVidia предлагает использовать специальные видеокарты GRID K1 и K2, стоимость которых значительно превышает стоимость «обычных» видеокарт. Если NVidia реализует возможность проброса в ВМ недорогих видеокарт, то кто станет покупать топовые?

Предложение от Hyper-V

Тем не менее, кое-что сделать таки можно. В отличие от VMware и VirtualBox, проброс дискретной видеокарты поддерживается системой Hyper-V, хотя опять же и не без ограничений. В ранних версиях Windows 10 для этого использовалась технология RemoteFX, в актуальных сборках Windows 10, а также в Windows 11 это решение не работает, и для задействования ресурсов физической видеокарты нужно использовать сторонние инструменты.

Сразу нужно отметить, что предлагаемое ниже решение имеет ряд ограничений, а именно:

  • В Hyper-V допускается использование только Windows 10 20H1 и выше.
  • Метод не поддерживается первым поколением виртуальных машин.
  • После проброса возможны конфликты при параллельной работе ВМ и WSL.
  • Функция создания контрольных точек для виртуальной машины будет отключена.

Если условия вас устраивают, следуйте дальнейшим инструкциям. Для начала убедитесь в возможности подключения видеокарты к Hyper-V, для чего запустите PowerShell от имени администратора и выполните команду Get-VMPartitionableGpu или Get-VMHostPartitionableGpu, если у вас Windows 11. В случае успеха в консоль будет выведен список видеоадаптеров и их свойств.

Get-VMHostPartitionableGpu

Затем:

  • Скачайте со страницы разработчика github.com/jamesstringerparsec/Easy-GPU-PV архив с готовыми скриптами подключения видеокарты и распакуйте его в удобное расположение.

Easy-GPU-PV

  • Завершив работу виртуальной машины, откройте от имени администратора PowerShell и разрешите командами Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser и Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass выполнение в системе неподписанных сценариев.

Set-ExecutionPolicy

  • Командой cd путь перейдите в папку с содержимым распакованного архива Easy-GPU-PV-main.zip и выполните команду Update-VMGpuPartitionDriver.ps1 -VMName «NameMyVm» -GPUName «AUTO», где NameMyVm – название вашей виртуальной машины.

Update-VMGpuPartitionDriver

В случае успешного выполнения команды вы получите конкретный результат, например, появление ранее недоступных эффектов прозрачности в виртуальной ОС.

Ограничения проброса

Ожидать, что в случае удачного проброса видеокарты в Hyper-V виртуальная система сможет использовать все возможности графики, не стоит. Значительная их часть доступны по-прежнему не будут, в частности недоступными окажутся инструменты панелей управления графикой (NVIDIA или AMD), статистические данные загрузки GPU в Диспетчере задач, не будут работать также программы и функции, использующие Vulkan и некоторые другие популярные графические API.

Загрузка…

Requirements Before You Start

NVIDIA virtual GPU solutions are designed to run on NVIDIA GPUs. Please ensure you have the following before downloading the NVIDIA virtual GPU software evaluation edition:

1

Certified Server

NVIDIA Virtual GPU Certified Servers. See a complete list of certified systems.

2

Supported GPU

Supported NVIDIA GPUs: NVIDIA A10, A16, A40, A100, T4, RTX 8000, RTX 6000, V100S, V100, P100, P40, P6, P4, M60.

3

Virtualization Software

VMware, Citrix, Red Hat, or Nutanix.

The Evaluation Includes

The 90-day trial includes everything you need to successfully evaluate virtual GPU software.

NVIDIA RTX Virtual Workstation (vWS)

128 CCU’s of vWS

The evaluation license provides access to 128 CCU’s of the NVIDIA RTX Virtual Workstation (vWS) edition for up to 90 days.

NVIDIA virtual GPU software editions

Any Software Edition

NVIDIA Virtual GPU Management

Management Pack

Evaluation license also provides access to the NVIDIA Virtual GPU Management Pack for VMware vSphere deployments with vRealize Operations.

If you have any additional questions, please reach out to your NVIDIA certified partner or contact us.

Start Your Trial Now

Frequently Asked Questions

  • Can I extend my 90-day trial license?

    The trial license is intended to a one-time, 90-day license. For enterprises needing a longer evaluation time, we recommend contacting one of our expert partners to begin a proof of concept. Find an NVIDIA Partner Network (NPN) GPU Virtualization Partner at www.nvidia.com/object/vgpu-software-partners.html. 

    For additional support, please contact your NVIDIA sales representative or fill out the form below to request a second 90-day eval license.

  • How do I know if my 90-day trial has ended?

    If your trial has ended, you’ll receive a message that the system failed to acquire a license. The 90-day trial period begins when your Product Activation Key has been redeemed in the licensing portal. The beginning and end date of the evaluation is listed in the portal, which can be accessed at nvid.nvidia.com/dashboard/. Other options for viewing license properties can be found in the License Server UI.

  • Виртуальная машина mac os для windows 10 amd
  • Виртуализация включена во встроенном по нет как включить windows 10
  • Виртуалка линукс для windows 10
  • Виртуальная машина в облаке бесплатно windows
  • Виртуальная бокс для windows 10