GPU Passthrough and Performance

Zarathustra[H]

Extremely [H]
Joined
Oct 29, 2000
Messages
38,820
Hey all,

I currently run a combination of KVM and LXC on my server, and they work beautifully for my needs there, but for a few years now I have heard about people running Linux desktops on a small GPU, and passing through a big GPU to a Windows VM using KVM or another hypervisor for their gaming needs.

I currently dual boot between Windows (for games) and Linux (for everything else) and this seems like it would be a very convenient solution.

Reading about the Threadripper 2, and more specifically the 2950x, this seems like it would be a perfect application for that 16 core/32 thread monster.

Last I looked into it though, it was fairly straightforward on AMD GPU's, but difficult to impossible to get working on Nvidia GPU's.

I'd be targeting 4k 60hz using a Titan level GPU, so unless AMD surprises us all with a new massive GPU launch, I'm stuck with Nvidia.

Can anyone speak to what the performance implications are like these days? I'd imagine you'd take a hit performance wise, but how big would it be? Is gaming generally smooth, or is it a stuttery mess?

Where do those performance hits usually come? Is it on the CPU side (very manageable at 60hz gaming) or on the passed through GPU side (could be painful, as every litte bit counts when trying to run 4k60hz at as high quality settings as possible.

I'd appreciate anyones thoughts on this subject. My searching has led to mostly older information, and I don't know how much of it is still relevant.

Much appreciated.
 
+1 Doing the same thing when I get my 2990xw.

It seems like all of the research I have done so far suggests up to 95% performance in a VM with GPU passthrough. Also, check out the looking glass project. If you don't mind a minimal amount of latency you can run the VM in windowed mode on your host OS.
 
I am interested in doing the same on my 1950x, but would like the base OS to be Hyper-V as thats where I am more comfortable. I realize I am probably the only person in here using Hyper-V though, so I'll follow along and give one of the other options a go if thats the only way.... ;)
 
This is a project you will want to be aware of if you are not already:

He even has figured out how to get Thunderbolt 3 to work on Threadripper. He can't share that for legal reasons though, but does drop some hints for anyone wanting to look into doing the same.
 
This is a project you will want to be aware of if you are not already:

He even has figured out how to get Thunderbolt 3 to work on Threadripper. He can't share that for legal reasons though, but does drop some hints for anyone wanting to look into doing the same.

That sounds amazing, I haven't been looking into this in a couple of years but what is described in the video basically Linux host and a full Windows Guest that can do no compromises gaming is what I have wanted for a long time. I think I would be all over this if not for that one comment about him hoping Nivdia won't patch a hole that let's them use an Nvidia graphics card in a VM because I am pretty sure if this gets some traction, there is no doubt that Nvidia will patch that hole so they can try to make people in this niche market spend $3K on a 1080Ti equivalent card that "supports" the feature.
 
Hey all,

I currently run a combination of KVM and LXC on my server, and they work beautifully for my needs there, but for a few years now I have heard about people running Linux desktops on a small GPU, and passing through a big GPU to a Windows VM using KVM or another hypervisor for their gaming needs.

I currently dual boot between Windows (for games) and Linux (for everything else) and this seems like it would be a very convenient solution.

Reading about the Threadripper 2, and more specifically the 2950x, this seems like it would be a perfect application for that 16 core/32 thread monster.

Last I looked into it though, it was fairly straightforward on AMD GPU's, but difficult to impossible to get working on Nvidia GPU's.

I'd be targeting 4k 60hz using a Titan level GPU, so unless AMD surprises us all with a new massive GPU launch, I'm stuck with Nvidia.

Can anyone speak to what the performance implications are like these days? I'd imagine you'd take a hit performance wise, but how big would it be? Is gaming generally smooth, or is it a stuttery mess?

Where do those performance hits usually come? Is it on the CPU side (very manageable at 60hz gaming) or on the passed through GPU side (could be painful, as every litte bit counts when trying to run 4k60hz at as high quality settings as possible.

I'd appreciate anyones thoughts on this subject. My searching has led to mostly older information, and I don't know how much of it is still relevant.

Much appreciated.

I did this ony my Xen 7 server (free edition) but in the end I still felt having a dedicated box was best. I run a dual E5-2670's on an ASRock board with 128GB RDIMM. Xen and VM are on separate Samsung 850 Pro SSD. I used an older Quadro as well as my GTX780GHz cards and found that with passthrough it took probably more like a 10-15% dump, perhaps a bit more. I had plain Windows 10 on one SSD to boot and test and it was noticeably faster for gaming. My intentions were to move video rendering from my main workstation to server in the basement and I also was carious to see how gaming will work on it. I suppose if you have a really overpowered GPU this can be acceptable. I also used mine via remote desktop so there was noticeable lag from that even on giabit home network. Honestly, I'd say if you have the gear to setup a test box, that'd be the way to do it as you can see exactly what it does for you based on your standards.
 
I just set this up using esxi 6.7 It was super easy. After you creat your windows vm and passthough the vidio card this line is needed in the vm advanced configuration hypervisor.cpuid.v0 = "FALSE"

I have a nvida 640 in pcie1 and a 1080ti in pcie3 it works great.


i have read that this line may also make it work but have not tested.
"Virtual Machines -> VM -> Actions -> Edit Settings -> VM Options -> Advanced -> Configuration Parameters -> Edit Configuration -> Set svga.present to FALSE:
 
Back
Top