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.

9 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

Hi anyone manage to make these scripts or gpu partitionning work with Tesla card. The PS command and the precheack script does not seem to list them.

Is it a microsoft/Nvidia thing or something I am misunderstanding because they are not the primairy GPU on my systhem because they have not display outputs?

Should I look more into server 2022 and VGPU drivers or is that also not compatible with tesla card or to mutch money and should just get a gaming GPU and do this?

image

will start reading up on vGPU options

Run nvidia-smi

Are they in wmmd mode?

They are likely in TCC mode, grab Google grid drivers

I forget if you need the change this in the registry or if they come in wddm/TCC mode by default

I’ve had luck with 537.13

TCC= compute only
Wddm=graphics

You want either wddm or wddm/TCC but not just tcc

2 Likes

Looking promissing thank you!

1 Like

You can change the TCC/wddm stuff in the registry but some cards don’t like that on some versions of drivers, grid drivers are a lot more lenient

I believe it’s the adapter type

More info can be found on my gaming on Tesla thread that Wendell made a video about

If you need to mix geforce and Tesla install the GeForce driver first
Then install the very same version of that driver but the grid version but don’t select the factory reset option this time

for now the vGPU script will run and make a vm but eather i lose display or it locks up on boot?

EDIT:

Moved away from win10 as the nvme raid option are not super great. Wanted to go gpuP because it supported both AMD and nvidia. But going to try it out on unraid and proxmox but there most guide are for NVIDIA only for now.

so for future people looking for this you need the righ driver (GRID) and is was not the quadro or tesla drivers. Microsoft host them vs needing to log into the nvidia site.