Attach grafic processing unit to each qube

I have three big resolution monitors and sometimes very long rendering duration in arbitrary applications.

I’m on a desktop computer with an ryzen 5800x. Since this cpu has no grafic chip I have sometimes issues properly rendering videos or editing small videos. On my system I have some pci ports unused. Now my question:

Would it be possible to attach mini gpus (e.g. Radeon R7 430 2GB GDDR5) for each qube in which I want to do some graphical intensive stuff and have the video output for each qube merged with the system video output?

This would not compromise security since these devices can’t communicate to each other which is the main reason why the system-gpu is not shared.

Desired config:
System cpu/gpu
• personal: mini_gpu_1
• streaming: mini_gpu_2
• working: mini_gpu_3
• other qubes: no pci devices

But all the outputs are aggregated as if the mini gpus don’t exist. Their task is to help the cpu render the output of the qubes.
Is this somehow possible?

To the best of my knowledge, no one has done that yet. So I don’t have your answer for you, but I can give you two pieces of the puzzle:

  • Qubes 4.1 (the development version) is supposed to move the GPU (that your monitor is attached to), to be inside a VM. It then uses that VM to draw the windows. (“sys-gui domain”). So forwarding (at least one) GPU seems possible
  • As for “merged with the system video output”, I’m not sure how qubes forwards the video, but I have run a test of from inside a virtual machine (with no GPU), ssh (with X11 forwarding) into a physical machine with a GPU, and the physical GPU was automatically used, yet displayed inside the VM. So if “merging video” does not work “out of the box”, I would imagine it would be able to be added with a reasonable amount of work (since it works with ssh X forwarding) (Then again, it might just seem like a reasonable amount of work since I wouldn’t be the one doing it :slight_smile:

If for some reason only one GPU can get passed into a VM, then in 4.1 there is supposed to be a option to not have the main GPU passed to sys-gui and do it the old way, which would imply you could try passing your second GPU into a VM using the method you were supposed to pass your first GPU into the sys-gui.
I think that would be your starting point anyway.

Hopefully you are already using qubes and are familiar with things.
Realize that 4.1 is still in development and should not be considered stable, so if you decided to try this, then hopefully you could try it on a spare hard drive (without risking your current setup)

One of the responses you will probably get to this part is that if you are the kind of person that would move GPUs from one VM to another, then communication can happen through hacking the GPU firmware. However I’ve never seen it mentioned a security issue if you were to always use the same GPU with the same VM, and never move them around.