VDI
SR-IOV
https://wiki.archlinux.org/title/intel_graphics
Kubernetes cluster : https://github.com/intel/kubevirt-gfx-sriov
Ubuntu 22.04 LTS host: https://www.intel.com/content/www/us/en/developer/articles/reference-implementation/graphics-sr-iov-enablement-toolkit.html
https://github.com/strongtz/i915-sriov-dkms | PVE
for linux 6.1 ~ linux 6.3: https://github.com/strongtz/i915-sriov-dkms/blob/master/README.md
VirGL
https://pve.proxmox.com/pve-docs/chapter-qm.html#qm_display
https://docs.mesa3d.org/drivers/virgl.html
GPU assignment
The state of GPU assignment in QEMU/KVM: https://www.linux-kvm.org/images/b/b3/01x09b-VFIOandYou-small.pdf
https://wiki.debian.org/VGAPassthrough
https://wiki.gentoo.org/wiki/GPU_passthrough_with_libvirt_qemu_kvm
https://pve.proxmox.com/wiki/Pci_passthrough
Error handling
Windows BSOD: system thread exception not handled
echo "options kvm ignore_msrs=1" > /etc/modprobe.d/kvm.conf
Linux tty: Radeon kernel modesetting for r600 or later requires firmware-amd-graphics
apt-get install firmware-amd-graphics
virtio-gpu
https://www.linux-kvm.org/images/0/09/Qemu-gfx-2016.pdf
https://github.com/qemu/qemu/blob/master/hw/display/virtio-gpu.c
ARMv8/arm-64: use virtio-gpu because the legacy VGA framebuffer is very troublesome on aarch64
https://docs.opennebula.org/5.4/deployment/open_cloud_host_setup/pci_passthrough.html#loading-vfio-driver-in-initrd
Hardware
NVIDIA Certified
http://www.nvidia.com/object/grid-certified-servers.html GRID vGPU is a licensed feature on Tesla M6, Tesla M10, and Tesla M60.
VDI Solutions - Nvidia
http://www.nvidia.com/object/xendesktop-vgpu.html (Right bottom section: "Partner Solutions")
AMD
AMD MxGPU is the world’s first hardware-based virtualized GPU solution, is built on industry standard SR-IOV (Single-Root I/O Virtualization) technology. Supprot VMWARE & Citrix.
Intel® Graphics Virtualization Technology
–d (Intel® GVT –d): vDGA: virtual dedicated graphics acceleration (one VM to one physical GPU)
–s (Intel® GVT -s): vSGA: virtual shared graphics acceleration (multiple VMs to one physical GPU)
–g (Intel® GVT -g): vGPU: virtual graphics processing unit (multiple VMs to one physical GPU)
Visit Intel GVT-g
page for more.
Optional Firmware
https://01.org/linuxgraphics/downloads/firmware
GuC:designed to perform graphics workload scheduling on the various graphics parallel engines. DMC: low-power idle states. It provides capability to save and restore display registers across these low-power states independently from the OS/Kernel. HUC: offload some of the media functions from the CPU to GPU.
Citrix
XenServer
https://docs.citrix.com/content/dam/docs/en-us/xenserver/current-release/downloads/xenserver-configuring-graphics.pdf Graphics Virtualization is available for XenServer Enterprise Edition customers, or those who have access to XenServer through their XenApp/XenDesktop entitlement.
XenClient(IDV, discontinued)
Diagram: https://www.citrix.com/blogs/wp-content/uploads/2014/10/XenClient-Architectural-Diagram.jpg
Remote Desktop
OpenStack
https://www.openstack.org/videos/boston-2017/virtual-desktop-infrastructure-vdi-with-openstack
Apache Guacamole
https://guacamole.incubator.apache.org/ https://hub.docker.com/r/guacamole/guacamole/ HTML5 remote desktop gateway. supports VNC, RDP, and SSH.
Hardware - pikvm
https://github.com/pikvm/pikvm Supported Raspberry Pi 2, 3, 4 and ZeroW
KVM-VDI(discontinued)
https://github.com/Seitanas/kvm-vdi/wiki supported backends: plain QEMU-KVM and OpenStack
https://www.neblogas.lt/2016/07/18/technical-info-ovirt-agent-sso/
SPICE & QXL guest driver
https://www.spice-space.org/download.html
Streaming
ref: https://github.com/mbroemme/vdi-stream-client
Method | Local | Remote | 3D |
---|---|---|---|
Yes | Yes | No | |
Yes | No | Yes | |
Yes | No | Yes | |
Yes | No | Yes (Intel only) | |
Yes | Yes | Yes (Linux only) | |
Yes | Yes | Yes (Linux only) | |
Yes | Yes | Yes (Nvidia only) | |
Yes | Yes | Yes | |
Yes | Yes | Yes |
Last updated