Is there a way to emulate GPUs in a VM without doing an actual GPU-passthrough?

Now now, before y'all close this question saying "GPU emulation is not possible, it won't increase performance", let me explain:

So I have a system which will run multiple (like around 20 or so) virtual machines (yeah, its more like a server. No, this question does not belong to Server Fault).
Each of those machines will have a desktop environment in them (probably running windows, but I haven't decided that yet) and will be used as a normal desktop by an average Joe (watching movies, Office software, etc) by remotely logging in.

The only problem I'm facing in this is, if I have so many virtual machines each requiring basic graphics requirements, how will I allocate the GPUs accordingly? I definitely cannot afford to have a separate GPU for each VM and do a GPU pass-through for each VM.

Clearly I'm missing something here. I'd like to know if there is a way to maybe have one big powerful GPU installed and accordingly split it up by perhaps emulating a GPU in each VM, and then give the graphics work to the host GPU. Is there anyway to do this?

P.S, I'm a noob to GPU emulation, please explain elaborately

  • What part of the GPUs capability are you trying to access in the VM? In VMware, at least, this is essentially a check-box when you have the correct hardware, and it can simply assign based on need or based on your own assignment settings and rules. – music2myear Dec 23 '16 at 1:06
  • @music2myear Well I'm using QEMU-kvm to minimise any memory overhead (and also I saw a couple of articles mentioning it gives better performance). So yeah. I still want to emulate a GPU to control the amount of memory and CUDA cores that I allocate to each VM if that's possible? – Rakshith Ravi Dec 23 '16 at 13:35

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Browse other questions tagged or ask your own question.