MultiGPU - How to Seperate GPU's with new kernel/xorg releases

This is a tad abstract and complex to sum up with the title but multiGPU is basically useless now due to what seems to be preemptive changes across virtually the whole ecosystem moving towards Wayland (or xrandr) philosophies rather than XOrg.

At present (470.63.01) for example on Ubuntu 18.04.5 (same driver revision) I can denote and separate each GPU via XOrg > XScreens. However since moving to 20.04/21.04 this is no longer the case. Either the nvidia panel shows the screens on second/third GPUs as “PRIME” and they can’t be configured together, or you can set them as enabled and everything breaks.

Alternately you can leave the core GPU/Screens enabled on XScreen 0 and set up the other GPU with xrandr and it will work…horribly. All GPU’s thermals climb, load is 50%+ doing nothing…everything struggles. Enabling Xinerama will run all GPU/screens but again introduces tons of problems.

I was looking at how to denote / separate GPU’s with xrandr’s “provider” syntax but nothing seems to work. I don’t fully understand how xrandr is handling things but it looks to be similar to wayland where everything is just kinda dumped on everything (across all GPU’s even if nothing should be rendered on them) and just pipped over the right display handling whichever XY coords a window is drawn over. Again this just causes tons of overhead for nothing. Like Xinerama with double the overhead.

Can anyone shed some light on how to keep the GPU loads separate moving forward WITHOUT denoting more than one Xscreen as that breaks every DE I’ve tried (gnome/kde/xfce/mate/lxde/etc)

1 Like