Вопрос или проблема
Я следовал этому руководству, чтобы попытаться передать графические процессоры в виртуальную машину Hyper-V:
https://www.youtube.com/watch?v=XLLcc29EZ_8
В моей системе установлены два графических процессора NVIDIA 1080 Ti, и по какой-то причине только один из них работает полностью. Оба они отображаются в диспетчере устройств в виртуальной машине:
Но в моем приложении, которое использует графические процессоры, отображается только один. Вот что я вижу в своей виртуальной машине Hyper-V:
А вот что я вижу на хосте:
Как и ожидалось, при попытке выполнить рендеринг с использованием GPU в виртуальной машине используется только один из двух графических процессоров.
Есть ли способ передать оба графических процессора в виртуальную машину вместо одного?
# Включить Hyper-V и связанные функции
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All
# Включить директ-подключение GPU (если поддерживается вашим оборудованием)
# Замените 'PCI\VEN_XXXX&DEV_XXXX' идентификаторами поставщика и устройства вашего GPU
$gpu1DeviceId = 'PCI\VEN_XXXX&DEV_XXXX'
$gpu2DeviceId = 'PCI\VEN_YYYY&DEV_YYYY'
Add-WindowsFeature Hyper-V-PowerShell
# Создать новую виртуальную машину
New-VM -Name "VMName" -MemoryStartupBytes 4GB -BootDevice VHD -NewVHDPath "C:\Path\To\VM\VMName.vhdx" -NewVHDSizeBytes 50GB
# Добавить оба GPU в виртуальную машину
Add-VMAssignableDevice -LocationPath "PCIROOT(0)#PCI(XXXX)#XXX(XXXX)"
Add-VMAssignableDevice -LocationPath "PCIROOT(0)#PCI(YYYY)#YYY(YYYY)"
# Настроить виртуальную машину для передачи GPU
Set-VM -VMName "VMName" -AutomaticStopAction TurnOff -AutomaticStartAction StartIfRunning
Set-VMFirmware -VMName "VMName" -EnableSecureBoot Off
# Запустить виртуальную машину
Start-VM -VMName "VMName"
# Установить драйвера GPU внутри виртуальной машины
Ответ или решение
Пропуск нескольких GPU в виртуальную машину с использованием Hyper-V
Виртуализация с использованием Hyper-V дает возможность использовать ресурсы аппаратного обеспечения, такие как графические процессоры (GPU), для увеличения производительности виртуальных машин (VM). Однако, иногда при передаче нескольких GPU в виртуальную машину могут возникать сложности, как это было отмечено в вашем случае.
Проблема
На вашем оборудовании установлены два графических процессора NVIDIA 1080 Ti, но только один из них полностью функционирует в виртуальной машине. Вы уже предприняли шаги по настройки передачи через GPU с помощью PowerShell, однако возникли трудности в виде нераспознавания второго GPU вашим приложением, работающим в VM.
Решение
Для успешного выполнения передачи GPU в виртуальную машину Hyper-V убедитесь, что вы выполнили следующие шаги:
-
Проверка оборудования:
Убедитесь, что ваше оборудование поддерживает полное аппаратное ускорение и передачу I/O. Для NVIDIA требуется поддержка технологии SR-IOV (Single Root I/O Virtualization) и соответствующих драйверов. -
Настройка Hyper-V:
Убедитесь, что Hyper-V активирован на вашем хосте, и что ваша версия Windows поддерживает все необходимые функции. -
Идентификация устройств:
ЗаменитеPCI\VEN_XXXX&DEV_XXXX
в скрипте на идентификаторы ваших GPU, доступные в диспетчере устройств. Убедитесь, что вы используете правильные идентификаторы для обоих графических процессоров. -
Присоединение GPU к VM:
Следующий PowerShell-скрипт должен дополнительно проверить и убедиться, что оба GPU правильно добавлены к виртуальной машине:Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All $gpu1DeviceId = 'PCI\VEN_XXXX&DEV_XXXX' # Ваш первый GPU $gpu2DeviceId = 'PCI\VEN_YYYY&DEV_YYYY' # Ваш второй GPU Add-WindowsFeature Hyper-V-PowerShell New-VM -Name "VMName" -MemoryStartupBytes 4GB -BootDevice VHD -NewVHDPath "C:\Path\To\VM\VMName.vhdx" -NewVHDSizeBytes 50GB # Добавление GPU Add-VMAssignableDevice -LocationPath "PCIROOT(0)#PCI(XXXX)#XXX(XXXX)" # Для первого GPU Add-VMAssignableDevice -LocationPath "PCIROOT(0)#PCI(YYYY)#YYY(YYYY)" # Для второго GPU Set-VM -VMName "VMName" -AutomaticStopAction TurnOff -AutomaticStartAction StartIfRunning Set-VMFirmware -VMName "VMName" -EnableSecureBoot Off Start-VM -VMName "VMName"
-
Установка драйверов GPU:
После запуска виртуальной машины, убедитесь, что вы установили соответствующие драйверы NVIDIA для обеих видеокарт в виртуальной машине. Это можно сделать, загрузив последние драйверы с официального сайта NVIDIA. -
Проверка настройки:
После установки драйверов проверьте, распознаются ли оба GPU в операционной системе виртуальной машины и в приложении, использующем графику.
Дополнительные рекомендации
- Logs и диагностика: Проверьте журналы событий Windows как на хосте, так и в виртуальной машине для получения информации о возможных ошибках или конфликтах.
- Обновление BIOS: Убедитесь, что BIOS вашего компьютера обновлен до последней версии, так как некоторые настройки могут влиять на работу передачи функций.
- Конфигурация виртуальной среды: Рассмотрите возможность использования Hyper-V на Windows Server, так как он предоставляет более расширенные функции управления виртуальными машинами и GPU.
- Тестирование на другом ПО: Попробуйте использовать другое программное обеспечение для работы с GPU в вашей виртуальной машине, чтобы исключить возможность ошибки в текущем приложении.
Следуя этим шагам, вы должны получить возможность передать оба GPU в вашу виртуальную машину Hyper-V и использовать их одновременно для ваших приложений.