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

Вам может понадобиться видеокарта (GPU) в виртуальной машине для таких задач, как OpenGL, Direct3D и CUDA. В этом случае мы обычно используем эмулированную видеокарту, которая не так хороша в исполнении, как выделенная GP. Поэтому в этой статье мы узнаем, как прикрепить физическую видеокарту к виртуальной машине на хосте.

Как пропустить мой графический процессор через Hyper-V?

Чтобы подключить физическую видеокарту к виртуальной машине на хосте Hyper-V, мы будем использовать GPU Passthrough.

Сквозной доступ к графическому процессору (GPU passthrough) — это расширенная функция, которая позволяет назначать физический графический процессор виртуальной машине. Эта функция особенно полезна для таких приложений, как игры или 3D-рендеринг, где требуется высокопроизводительная графика. В этой настройке виртуальная машина получает прямой доступ к физическому графическому адаптеру без накладных расходов на эмуляцию, что может значительно повысить производительность графики. По умолчанию виртуальные машины в Hyper-V используют эмулированную графическую карту, которой может быть недостаточно для требовательных графических задач. С помощью сквозного доступа к графическому процессору (GPU passthrough) виртуальная машина может использовать всю мощь физического графического процессора, что позволяет ей эффективно обрабатывать более интенсивные графические нагрузки.

Каковы системные требования для GPU Passthrough?

Прежде чем приступить к настройке GPU Passthrough, давайте убедимся, что выполнены следующие предварительные условия.

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

Требования к оборудованию

  • Вам необходимо убедиться, что ваш процессор поддерживает виртуализацию Intel-VT или AMD-V.
  • Для PCI Passthrough ваш процессор должен поддерживать блок управления памятью ввода-вывода (IOMMU).
  • Ваш графический процессор должен поддерживать технологии виртуализации графического процессора, такие как NVIDIA GRID или AMD MxGPU. Эти технологии специфичны для отдельных поставщиков. Показатели успеха можно повысить, используя серверное оборудование. Старые устройства, использующие прерывания PCI (INTx), несовместимы.
  • Наконец, ваша система должна поддерживать виртуализацию ввода-вывода с одним корнем.

Требования к программному обеспечению:

  • Операционная система: Windows Server 2016 (или более поздняя версия) или Windows 11/10.
  • Особенности: Hyper-V должен быть включен.
  • Поколение виртуальной машины: виртуальная машина должна быть поколения 2.
  • Драйверы: Все драйверы графического процессора должны быть обновлены до последней версии.

Ограничения сквозной передачи графического процессора:

Если вы хотите использовать GPU Passthrough, вам следует избегать следующей конфигурации.

  • Ваша виртуальная машина не должна использовать динамическую память.
  • Функция GPU Passthrough доступна только в самых последних версиях Windows, таких как Windows Server 2019 Datacenter.
  • Если на хосте Hyper-V развернута подсистема Windows для Linux, может возникнуть ошибка виртуальной машины с кодом 43.
  • Такие функции кластеризации, как высокая доступность и динамическая миграция виртуальных машин, не поддерживаются.
  • Сохранение и восстановление с использованием контрольных точек виртуальной машины не поддерживаются.

После выполнения указанных ранее требований мы можем использовать GPU Passthrough.

Подключите физическую видеокарту к виртуальной машине на хосте Hyper-V

Чтобы подключить физическую видеокарту к виртуальной машине на хосте Hyper-V с помощью GPU Passthrough, выполните следующие действия.

  1. Включить виртуализацию Intel-VT или AMD-V
  2. Настройте свой компьютер для GPU Passthrough
  3. Настройка GPU Passthrough для Windows 11/10
  4. Настройка GPU Passthrough для Windows Server

Давайте поговорим о них подробнее.

1) Включить виртуализацию Intel-VT или AMD-V

включить или отключить аппаратную виртуализацию

Как упоминалось в предварительных условиях, первым шагом должно стать включение аппаратной виртуализации. Так что, если вы используете процессор Intel, вам следует включить Intel-VT, а пользователям AMD следует включить виртуализацию AMD-V.

Для этого загрузитесь в BIOS, перейдите в Конфигурация > Технология виртуализации, а затем установите для него значение «Включено». Поскольку эти шаги предназначены исключительно для HP, вы можете перейти к указанной ссылке, чтобы узнать, как включить эту функцию на вашем компьютере.

Читайте: Как включить или отключить вложенную виртуализацию для виртуальных машин в Hyper-V?

2) Настройте компьютер для GPU Passthrough

Далее нам нужно настроить хост-компьютер для GPU Passthrough. Мы начали с включения аппаратной виртуализации, как упоминалось ранее. Далее нам нужно убедиться, что IOMMU включен, а автоматические контрольные точки отключены.

Итак, вы можете проверить связанное руководство по включению аппаратной виртуализации, чтобы включить IOMMU, но обычно он включен по умолчанию. Мы можем открыть PowerShell и выполните следующий запрос, чтобы проверить, включен ли он.

(Get-VMHost).IovSupport; (Get-VMHost).IovSupportПричины

Если указано значение True, функция включена, вы можете перейти к следующей конфигурации, но если указано значение False, вам необходимо включить эту функцию.

Теперь удалите все контрольные точки вашей виртуальной машины, а затем используйте следующие команды, чтобы отключить ее.

Get-VMSet-VM -Name ИмяVM -AutomaticStopAction Выключить

Примечание: замените переменную NameOfVM фактическим именем виртуальной машины, которое вы можете получить, выполнив предыдущую команду.

Читайте: Как включить Hyper-V на Windows 365 Cloud PC?

3) Настройка GPU Passthrough для Windows 11/10

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

Сначала давайте узнаем, как включить GPU Passthrough в клиентских операционных системах Windows.

Чтобы проверить, поддерживает ли ваша видеокарта функцию GPU Passthrough, выполните следующую команду.

Виндовс 11

Get-VMHostPartitionableGpu

Виндовс 10

Get-VMPartitionableGpu

Далее нам нужно скопировать графический драйвер с хост-клиента на виртуальную машину. Для упрощения процесса рекомендуем скачать ZIP-файл с github.com и извлекая его куда-то.

Чтобы запустить этот скрипт, нам сначала нужно разрешить выполнение скрипта с помощью следующих двух команд.

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass -Force Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

После запуска команды вам необходимо запустить скрипт с помощью следующей команды. Вы можете запустить его до и/или после добавления вашей виртуальной машины в GPU Passthrough

.\Update-VMGpuPartitionDriver.ps1 -VMName <ИМЯ_ВМ> -GPUName “AUTO”

Примечание: Обязательно добавьте путь к скрипту и . В моем случае скрипт будет C:\Users\yusuf\Downloads\Easy-GPU-PV-main\Easy-GPU-PV-main\Update-VMGpuPartitionDriver.ps1 -VMName Ubuntu -GPUName «AUTO».

Теперь выполните следующую команду, чтобы добавить вашу виртуальную машину в GPU Passthrough.

Set-VM -VMName VMName -GuestControlledCacheTypes $true -LowMemoryMappedIoSpace 1 ГБ -HighMemoryMappedIoSpace 32 ГБAdd-VMGpuPartitionAdapter -VMName <ИМЯ_ВМ>

Чтобы удалить раздел GPU, выполните команду – Remove-VMGpuPartitionAdapter -VMName .

4) Настройка GPU Passthrough для Windows Server

Если вы используете Windows Server, вам необходимо выполнить следующую команду в повышенном режиме PowerShell, чтобы установить кэш и ограничения для 32-разрядного (3 ГБ для 32-разрядных операционных систем) пространства MIMO.

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

Эти ограничения определяют память, позволяющую VM доступ к устройству. Используйте скрипт профиля машины из learn.microsoft.com для установки точных пределов MIMO. Отрегулируйте значения, если VM показывает нехватку ресурсов; для пространства MIMO больше 32 бит требуется 33280 МБ.

Далее нам нужно проверить местоположение устройства PCI Express. Для этого выполните следующие запросы.

Get-PnpDevice | Where-Object {$_.Present -eq $true} | Where-Object {$_.Class -eq “Display”}|выберите Имя,Идентификатор экземпляра

И

Get-PnpDevice -Class Display | ForEach-Object { Write-Output “$($_.FriendlyName) имеет идентификатор устройства $($_.DeviceId) и расположен по адресу $($_ | Get-PnpDeviceProperty DEVPKEY_Device_LocationPaths | Select-Object -ExpandProperty Data | Where-Object { $_ -like “PCIROOT*” })”; }

Вам нужно посмотреть, где расположен ваш графический процессор, это должно быть что-то вроде PCIROOT(0)#PCI(0200).

Наконец, выполните указанные ниже действия.

  • Откройте Диспетчер устройств, разверните Видеоадаптеры, щелкните правой кнопкой мыши на драйверах дисплея и выберите Отключить устройство.
  • Выполните следующую команду, чтобы отключить драйвер графического процессора после изменения адреса PCI.

Dismount-VmHostAssignableDevice -LocationPath “PCIROOT(0)#PCI(0200)” -Force

  • После изменения адреса PCI и имени виртуальной машины выполните следующую команду, чтобы назначить виртуальной машине устройство GPU.

Add-VMAssignableDevice -VMName VMNAME -LocationPath “PCIROOT(0)#PCI(0200)”

  • Включите виртуальную машину и проверьте наличие физической видеокарты в диспетчере устройств.
  • Установите драйверы видеокарты с сайта NVIDIA или AMD.

Если вы хотите вернуться на хост-машину, выключите виртуальную машину и выполните следующий запрос на хост-устройстве.

Remove-VMAssignableDevice -VMName VMNAME -LocationPath $locationPath

Затем выполните следующую команду, чтобы снова подключить видеокарту к хосту Hyper-V.

Mount-VMHostAssignableDevice -LocationPath $locationPath

Вот и все!

Читайте также: Настройка защищенного основного сервера для Windows Server.

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *