GPU виртуализация в KVM без внешнего монитора
Ссылки:
- http://mathiashueber.com/amd-ryzen-based-passthrough-setup-between-xubuntu-16-04-and-windows-10/
- https://davidyat.es/2016/09/08/gpu-passthrough/#part-2-setting-up-the-vm
- https://bufferoverflow.io/gpu-passthrough/
- https://www.pugetsystems.com/labs/articles/Multiheaded-NVIDIA-Gaming-using-Ubuntu-14-04-KVM-585/
Заметки:
1) Требуется поддержка IOMMU процессором и материнской платой (IOMMU должна быть включена в BIOS).
2) PCI GPU прокидывается только вместе со всеми устройствами той же IOMMU-группы. (подробнее)
3) Прокинутая GPU должна использоваться эксклюзивно (нельзя использовать одну GPU и в host, и в guest, как и нельзя использовать в нескольких guest). Поэтому host-система обязана игнорировать прокидываемые GPU (см. тут про “vfio-pci” и “Isolation of the guest GPU”).
4) Нужен дисплей подключенный к GPU напрямую. Большинство мониторов умеют переключаться между несколькими кабелями, т.ч. это небольшая проблема. Об этом так же пишут тут в комментариях по ключевому слову “monitor”.
Кроме того возможна поддержка полноценного OpenGL с удаленным доступом по VNC и без подключения внешнего дисплея
- можно сконфигурировать гостевую систему с VirtualGL этими скриптами
(поверх TurboVNC можно поднять noVNC сервер, и подключаться с любого компьютера через браузер).
Заметки про NVidia Geforce и Titan:
5) Драйвер Geforce откажется работать если заметит виртуализацию. Он проверяет сигнатуру гипервизора в CPUID. Поэтому в случае KVM нужно выставить kvm_hidden=on
(см. devtalk,
askubuntu,
detecting virtualization).
6) В датацентрах нельзя использовать драйвера для Geforce и Titan (в соответствии с EULA драйвера):
No Datacenter Deployment. The SOFTWARE is not licensed for datacenter deployment, except that blockchain processing in a datacenter is permitted.
Четкого термина что такое по мнению NVidia датацентр пока нет.