[SOLVED] Can I run VMs through a home network with a discrete GPU?

Oct 12, 2020
6
0
10
I am wondering if it is possible to build a desktop computer with multiple discrete GPUs that can be partitioned off into usable hardware for multiple virtual machines.

For example, a computer build something like this:
  • 8-Core CPU
  • 4x 4GB RAM
  • 4x GPUs (no SLI or Crossfire)
  • Storage
  • Etc.

Question 1: Would I be able to create 3 virtual machines with hardware assignments (2 cores from CPU, 1 dedicated GPU, 4GB RAM, some partitioned Storage)? Essentially, could I plug monitors into the 3 GPUs I've dedicated to the VMs and use the selected pieces of hardware to run them all at the same time?

If yes,

Question 2: Could I take this concept a step further and run the VM through a home network using something like a Raspberry Pi as an end client?

My end goal would be this:
Build a single computer (server) that would be able to run multiple VMs with dedicated hardware including a GPU, through my wired home network.
 
Solution
Treat each VM as an individual physical system.
To play games, 4 or 6GB and a GT 730 or 1030 is pretty substandard.


My i7-4790k, 32GB RAM.
Currently hosting 3x VM
1 Linux - 2 GB RAM
1 Linux - 4GB
1 Win 10 Pro - 4GB
Host of Win 10 Pro.

20GB consumed, out of 32GB.

skoNwlR.png
I am wondering if it is possible to build a desktop computer with multiple discrete GPUs that can be partitioned off into usable hardware for multiple virtual machines.

For example, a computer build something like this:
  • 8-Core CPU
  • 4x 4GB RAM
  • 4x GPUs (no SLI or Crossfire)
  • Storage
  • Etc.
Question 1: Would I be able to create 3 virtual machines with hardware assignments (2 cores from CPU, 1 dedicated GPU, 4GB RAM, some partitioned Storage)? Essentially, could I plug monitors into the 3 GPUs I've dedicated to the VMs and use the selected pieces of hardware to run them all at the same time?

If yes,

Question 2: Could I take this concept a step further and run the VM through a home network using something like a Raspberry Pi as an end client?

My end goal would be this:
Build a single computer (server) that would be able to run multiple VMs with dedicated hardware including a GPU, through my wired home network.
You could do the VM part. The remote part is harder. GPUs are designed to output to the video port. Remote software doesn't take advantage of GPUs. The NVIDIA GRID system IS intended to support remote virtual GPU enabled desktops.
 
You could do the VM part. The remote part is harder. GPUs are designed to output to the video port. Remote software doesn't take advantage of GPUs. The NVIDIA GRID system IS intended to support remote virtual GPU enabled desktops.


I am unfamiliar with NVIDIA GRID. Would it be possible to output the video for the VM through the GPU, and then stream that source? Idk what kind of hardware would be involved in that setup or if it would even be possible. Some kind of HDMI to ethernet hub?
 
What level of use would this be for?
Office stuff like PowerPoint is one thing.
Actual fast graphics for game is a whole different thing.

The second one, duh! Multiple remote gaming machines around the house :)


I just thought of something. Could the VMs be hosted with the GPU without being plugged into an output, and setup for something like SteamLink?
 
The second one, duh! Multiple remote gaming machines around the house :)


I just thought of something. Could the VMs be hosted with the GPU without being plugged into an output, and setup for something like SteamLink?
And thereby brings a whole other level of cost and configuration.
This is a non-trivial exercise.
The main host needs to be seriously beefy.

If you're looking to save money, this is not the way to do it.

View: https://www.youtube.com/watch?v=AYXW1OFDuN0

View: https://www.youtube.com/watch?v=LuJYMCbIbPk

View: https://www.youtube.com/watch?v=LXOaCkbt4lI
 
And thereby brings a whole other level of cost and configuration.
This is a non-trivial exercise.
The main host needs to be seriously beefy.

If you're looking to save money, this is not the way to do it.

Sick. Thanks for the reply. The PCs I would ultimately use would be pretty $$$, but I wanted to test the theory on something really light. My final project would likely use Threadripper with some heftier graphics, etc.

My prototype project would be just to test the theory. I'll have to watch those videos to get a little insight, but I was going to see if I could build something with like an FX 8350 and a few GT 730s or 1030s.
 
The above vids are multiseat, directly connected to the same box. Clustered on the same table in the same room
Trying to do it over the LAN to various rooms in the house brings another level of not gonna work.

Each remote system would need to be a "PC" of some sort, unless you're going to try to have loooong USB and HDMI cables going to each remote seat. Which also won't work.
And if each remote seat is going to be a PC anyway....just make it its own gaming system.
 
The above vids are multiseat, directly connected to the same box. Clustered on the same table in the same room
Trying to do it over the LAN to various rooms in the house brings another level of not gonna work.

Each remote system would need to be a "PC" of some sort, unless you're going to try to have loooong USB and HDMI cables going to each remote seat. Which also won't work.
And if each remote seat is going to be a PC anyway....just make it its own gaming system.

Yeah everything local and in the same room/tower/etc. Makes sense. I am hoping to give that project a shot first and foremost.

I do wonder if it would be possible to output the VM with the GPU, and then from that environment stream the VM desktop to an end client with something like SteamLink or other Desktop Mirroring program.
 
AS a start for the main host:
4x 4GB RAM
FX 8350

Absolutely will not work.

16 GB is far too small for this.
Each VM needs its own dedicated amount of RAM. 8GB min.
So 3 VMs = 24GB. Plus the host needs some.
So you need to start at 32GB RAM

FX 8350 running multiple simultaneous VM? Try it first just running, and see what happens.
That wssn't a strong platform to start with, but being a host?
 
AS a start for the main host:
4x 4GB RAM
FX 8350

Absolutely will not work.

16 GB is far too small for this.
Each VM needs its own dedicated amount of RAM. 8GB min.
So 3 VMs = 24GB. Plus the host needs some.
So you need to start at 32GB RAM

FX 8350 running multiple simultaneous VM? Try it first just running, and see what happens.
That wssn't a strong platform to start with, but being a host?


I'm hoping that I can scrounge these parts for really cheap for the test rig.

The FX 8350 would probably be partitioned for 2 VMs, either 2 cores or 3 cores each. This would leave the host with 4 cores or 2 at minimum. I would think that the host could at least function decently with 2 dedicated cores. The 16GB of RAM isn't a lot to partition off, but the goal would be to have at least 4GB per VM, which would dedicate a single stick of RAM per, leaving the host with 8GB. The other option would be to mix the hardware and partition the VMs to have 6GB each, and leave the host with 4GB to function.

I think I would achieve decent results with VMs configured like this:

  • 3 Cores
  • 6GB RAM
  • GT 730/1030 GPU
I don't think that a GT 730 or 1030 would run into too much bottleneck with the limited CPU and RAM configurations, and it would at least give me an idea at how to work with a setup like this if the serious project is ever able to be funded.
 
Treat each VM as an individual physical system.
To play games, 4 or 6GB and a GT 730 or 1030 is pretty substandard.


My i7-4790k, 32GB RAM.
Currently hosting 3x VM
1 Linux - 2 GB RAM
1 Linux - 4GB
1 Win 10 Pro - 4GB
Host of Win 10 Pro.

20GB consumed, out of 32GB.

skoNwlR.png
 
Solution
I'm hoping that I can scrounge these parts for really cheap for the test rig.

The FX 8350 would probably be partitioned for 2 VMs, either 2 cores or 3 cores each. This would leave the host with 4 cores or 2 at minimum. I would think that the host could at least function decently with 2 dedicated cores. The 16GB of RAM isn't a lot to partition off, but the goal would be to have at least 4GB per VM, which would dedicate a single stick of RAM per, leaving the host with 8GB. The other option would be to mix the hardware and partition the VMs to have 6GB each, and leave the host with 4GB to function.

I think I would achieve decent results with VMs configured like this:

  • 3 Cores
  • 6GB RAM
  • GT 730/1030 GPU
I don't think that a GT 730 or 1030 would run into too much bottleneck with the limited CPU and RAM configurations, and it would at least give me an idea at how to work with a setup like this if the serious project is ever able to be funded.
You're really about an order of magnitude under the type of power you're going to need for this--even for testing. You'll need the same specs as you would for a gaming computer and then more for the overhead. So at least 16gb ram just for each virtual machine, ultra fast server cpu with massive high-speed threads, ultra fast storage for the virtual machines, and the list goes on and on. You basically need a computational server designed for complex math and then re-purpose it for gaming. You're talking more than cars cost.