Remote Desktop Session Host GPU Load Balancing


Just wondering if anyone is successfully using multiple GPUs on a Server 2019 Remote Desktop Session Host?

I’m in the process of testing a couple of new session hosts, I’m running them bare metal with Quadro P2200 GPUs (the session hosts aren’t expected to do any heavy stuff, just web browsing and documents - this is for a school so cost is a big factor).

Server 2019 is supposed to perform ‘Load balancing between multiple GPUs presented to the OS’ according to this:

So I’ve tried sticking both GPUs in one box to establish if this increases our user capacity relative to single GPU performance, and in the testing I’m getting some strange results.

Basically the test is that I log onto the session host and open internet explorer with a web page with a lot of active content (background video, spinny graphics…) which happens to be the school website, then repeat for as many sessions as it takes to saturate the CPU.

With no GPU installed, this happens at 4 users - with the single Quadro P2200 we get up to 11 users.

When running two Quadro P2200’s in the host, we get to nearly 20 users before the CPU is saturated, but you can see that the website is not rendering smoothly - there are stops and starts.

The issues become obvious looking at task manger - GPU 0 is running at:
95% 3d load
0% video encode
11% copy
52% video decode

where GPU 1 is running at:
14% 3d load
57% video encode
29% copy
2% video decode

So obviously the load being created is not being properly shared between the two.

Is there some way to make this work?

I could virtualize two session hosts on each physical host and pass through one quadro to each vm to workaround the problem, but the hope was to keep the setup required on each host as simple as possible.

Just to be clear we are using the vanilla RDP protocol for this, with AVC444 etc enabled via Group Policy.