I’m happy to report successful GPU passthrough with some benchmark scores. While I already had some VM experience, I only heard about GPU passthrough 2 years ago and tried it for the first time last week for my new rig. It was an amazing experience and I’m satisfied by the results as well as the learning process
Most relevant HW
Gigabyte Z390 Aorus Elite
Intel Core i9 9900K
Zotac GeForce RTX 2080 SUPER Twin Fan
MSI GTX 1050 TI
My intention was to put an actual number on performance loss due to virtualization and learn as much as I can. i9 9900k has 16 threads, vm uses 14 threads (no isolcpus). I did some 14t win10 baremetal benchmark to have two points of comparison. Also evaluated benchmark perf with LookingGlass.
“Dual boot” use case loss (ie. 14 threads VM vs 16 threads baremetal)
LG : ~6%
HDMI : no diff on avg, barely more than 4% diff on 3DMark Firestrike
A long and messy post with more details and some scripts there :
I wrote the reddit post after some basic gaming tests and benches and was kindly reminded to have a look at latency there. Worked it out so that Latencymon now stays in the green with spikes around 400µs “pretty much whatever I throw at it”. With the notable exception of evdev passthrough which often (but not always) throws a ~90ms spike when I switch but that’s not an issue for me. I can trigger it forcefully by hitting both Ctrl keys like a madman
I’ve been playing and fiddling with VFIO for about 2 weeks now. My wife was about to leave.
The last setup I had was on Xubuntu 19.04, but with terrible latency spikes and really bad performance over all. Now I have settled on Pop! OS 19.04, which gives me the best performance and responsiveness so far.
But I am still tweaking the rig.
At the moment I utilize all 12 threads of my Ryzen 5 2600X for the guest, and about 2/3rds of my memory. I should compare 12 threads CPU setup performance to 10 threads I guess, and leave some juice for the host.
///EDIT
Oh, btw., these hyperv settings gave me a great performance boost on the guest.
Ehh, you’d be surprised My 14t vm pretty much match up with win10 on 16t. I did gain bench scores through settings I done regarding latency improvements. Around 900 points on firestrike. What can you do on 6 cores that can’t be done on 5 ? Anyway, the point with latency is to improve image perception and audio cracking, more or less. If you don’t have those issue you might as well get away with it. But they might come back with heavy load.
As far as I understand it, latency is more a byproduct of the whole setup than anything else so testing should also imply network and ‘disk’ IO, not only GPU/CPU. Some bench are very light on CPU. The other tool that came with latencymon also produced scary numbers very fast before addressing latency.
If you want to tackle it it seems one of the first steps is CPU pinning, for that you need to check with lstopo how your thread are mapped. But I’m way to much of a noob on the topic to advise you properly, especially with an AMD cpu since I did it on i9.