GPU Passthrough Custom OS Template
When preparing your custom template to support GPU, follow the instructions below.
Please note there are two major use cases for GPU passthrough:
- Machine learning (no screen needed, e.g., OpenCL, etc.)
- Image processing (e.g., OBS Studio, Blender, video editing, Multiverse presentations, etc.)
Though the machine learning use case requires less work (the display doesn't need to use the GPU), we'll cover the end-to-end process to support both use cases.
Supported GPU
If you run DaDesktop on-premises, or request the purchase of specific cards for your private server, here are some considerations.
We mostly test the DaDesktop system against AMD Radeon RX 6000 series (notably the RX 6400) and Nvidia RTX cards. Usually, models from before 2018 won't be supported.
Integrated GPUs from Ryzen 7/9 and Intel iGPUs should also work fine, but we don't run automated tests against them.
DD Node side
dadesktop_npnode_deploy/modules/build-os-template contains scripts that modify the Linux guest to support the GPU as the primary display and switch between GPU-powered machines and CPU-rendered screens.
Guest Settings
Please confirm that "support_qemu" in /var/lib/kvm/templatename/sysinfo.json is set to false, so that you can connect to VNC inside the guest, because qemu vnc cannot display the passthrough GPU screen.
Testing
Method 1: vblank_mode=0 glxgears
Method 2:
/apps/dd-guest/check-gpu
Windows guest settings when no physical monitor is attached (most cases)
We use IddSampleDriver to create a display adapter and virtual monitor in the Windows 10 template. Just install it if your GPU doesn't have a monitor plugged in.
-
Extract IddSampleDriver to the C:\IddSampleDriver folder
-
Install the certificate
-
Install the driver
-
Go to "Display settings", you'll find multiple displays. Check "Advanced display settings", usually Display 2 or 3, named "Linux FHD", is the virtual display we create. Remember that display number as N, then go back to the "Select and rearrange displays" section, select display N, and under the "Multiple displays" section, set "Show only on N" if that option is available, and make it the main display. Change its resolution.
-
If you can't find a display named "Linux FHD":
Go to "Device Manager" -> "Display Adapters" -> "IddSampleDriver Device": right-click, enable device. (You can disable the device if you're not using the virtual display.)
-
If there is a display named "AMD vDisplay", usually it's Display 2:
it will be slow, and you can "Disconnect this display" if that option is available.
(Choose Display x, under the "Multiple displays" section, use the drop-down menu and select the Disconnect this display option.)
-
There is a display named "Qemu Monitor", usually it's Display 1:
You can also "Disconnect this display" if that option is available.
