I made a Easy-GPU-P, a project to make Windows GPU-P easier

I work for Parsec (high performance remote desktop app) and I have been following Windows GPU partitioning for a while, being able to share a GPU between multiple VM and Hosts has been my dream forever, NVIDIA GRID is expensive and buying a GPUs per VM is also expensive.

If you’ve used GPU-P before however, it’s time consuming, from spinning up a VM, doing some trickery to copy driver files over, get your GPU’s GUID and partition it correctly. Shout out to @cheif22 for making a guide how to do it here earlier this year.

My goal with this project to make it as simple as proving an ISO, the name of the GPU you want to partition and what other resources you want to assign the VM - the script takes it from there and build and boot the VM, copy all the drivers and partition the GPU.

I needed Windows 11 to be able to do this (new Powershell APIs) so the requirements are Windows 11 on the hyper-v host as well as a Windows 11 ISO, along with an NVIDIA or Intel consumer GPUs with hardware video encoders (GTX / RTX NVIDIA GPUs and Intel HD Graphics chips from the last 5 years). Might work with AMD cards also but I haven’t tried. Doesn’t work with NVIDIA cards on laptops.

I also include Parsec, our remote desktop app which should be a great option for anyone who wants high performance access.

I’ll improve this repo over time.

8 Likes

Does this require the full Windows Server with Hyper-V features, or will this work with a Hyper-V 2016 server that is headless, since I can’t install the actual nVidia drivers for?

NVM; I just saw that Windows 11 is required. sigh … i’ll get this working eventually …

@jamesstringerparsec thanks for making this, I will have to give this a try!

1 Like

Thank you!!

This makes the barrier of entry so much lower to try such cool stuff out :+1:

1 Like

Hello, I’ve posted an issue on the GitHub as that seemed to be the best place, since this forum doesn’t yet allow me to post so many images/links.

This is the best I can do for a link:
github /jamesstringerparsec/Easy-GPU-P/issues/17

Basically, I have two GTX 1080’s but I want a specific one for my VM, on top of the one for my host. The script was returning this result for me:
17-57-53_23-12-2021
which isn’t very helpful or descriptive.

I’ve included a tutorial on the GitHub issue, that allows you to attach unique identifiers to your GPU’s (like, why MS and Nvidia, is this not the default?!), which helps when running this script to identify the correct GPU. The result is then this:
18-03-55_23-12-2021
Which is plain as day to figure out for yourself from there and follow the rest of your script/tutorial.

Hope this helps!

For me, I am plagued constantly by two issues, “Code 43” and an upper MMIO error.

This is a screenshot of Powershell ISE at the end of your script running on my system:

After “remedying” this issue and continuing the process, when finally loading up the desktop I get…
{drum roll}


Code 43

And attempting to connect via Parsec

I’ve troubleshooted for weeks now but to no avail. Any advice?

@jamesstringerparsec
Is there some way I can work with you to support GPU-P in LibVF.IO? Some people have been asking about Windows hosts. I think that could be cool.

sorry for the late bump is there a manual version of this script where you type the parameters manually and select options 1-10 (and the option to skip parsec) similar to those fancy command line installers i had a bit of trouble using this overall the automated creation works fine but the “gpu parting” itself is broken
there is also this one here GitHub - b1on1cdog/FastGPUP: A WIP GUI app to make GPU-P way easier! but the gui does not work however the mount button is just fine
but in the end i decided to just do everything manually and copy the files by monuting the vhdx for the GPU-P itself i pasted into a txt file somebody’s script from an online tutorial rather than github itself and it works