2 Gamers 1 GPU with Hyper V GPU-P (GPU Partitioning finally made possible with HyperV)

You can add Server 2022 does not. Getting the same error. You can add registry keys to get the VM startet but it has no GPU attached. Very disappointing.

I found a session from the 2019 E2EVC Virtualization Conference, where the speaker goes into a bit of history of GPU-P and handful of benchmarks. This doesn’t really move the technical/how-to conversation forward much but it is interesting.

youtube(dot)com/watch?v=Zmuejk14Rd8

1 Like

Sheseh Microsoft,

You would think that this would be put into Windows Server OS. It’s on Microsoft for not including this feature at this point. If it is there, not really functional yet.

Windows 10 based hypervisor OS server I guess would be how this operates for now. But would be a bit more reasonable to see this be on HyperV server OS at least.

are you able to see the GPU in task manager? I have the same set up and i managed to install… GPU is showing up correctly in device manager as well. However not in task manger. ALso i’m getting 180FPS in unigine!!!

I’m having some issues with Code 43. I’ve installed the latest GeForce drivers but I don’t have a nv_dispi.inf_amd64 folder in C:\Windows\System32\DriverStore\FileRepository\ of the host. I’m running a mobile 3070, not sure if the driver is called something else on laptops. Any help would be appreciated.

Here’s a solution for you.

Edition Windows 11 Pro
Version 21H2
Installed on ‎2021-‎09-‎14
OS build 22000.160
Experience Windows Feature Experience Pack 1000.22000.160.0

Windows 11 Beta preview has newer PowerShell commands that allow you to select the gpu you want to use for each vm. Start by knowing your gpu instance path: Device Manager → Display Adapters → ‘Your GPU’ → Details → Device Instance Path (under property)

Then run ‘Get-VMHostPartitionableGpu’ (‘Get-VMPartitionableGpu’ is deprecated) in PowerShell and match the instance path that corresponds to the gpu you want to utilize. The instance path to use in the next step is across from the identifier “Name” on the top row.


When you’ve prepped your vm and you’re ready to add your partition adapter, you will add ‘-InstancePath $instancepath’ to the command or paste the instance path into the “Instance Path” field in the GUI.


You can confirm with “Get-VMGpuPartitionAdapter -VMName $vm”

So far I’ve had success. It has survived reboot and, as you can see, the vms are using the gpus I’ve assigned them.

1 Like

Hey,

Was this command also in Windows 10? I thought I saw this when looking at the command “Add-VMAssignableDevice” when looking for “instancePath”.

Looking at this, it makes it looks like it just assigns the entire card rather than partition it.

Sucks that it isn’t in Windows 10 at the moment or if it will ever come to it.

Good spot! I may leave a note in the guide if it lets me.

I couldn’t get ‘-InstancePath’ to work for me in W10 while adding the partition adapter. The option doesn’t exist in the latest preview for 21H2 as well. I have a few machines running W11, so that’s how I came about this.

I think you’re right that “Add-VMAssignableDevice” is just for DDA. I’m not sure if there is anything else you use that command for. I also tested DDA on this W11 build and it is still locked out.

Well crap LOL. i guess windows 11 is giving us the reason to upgrade a virtual host for this very wanted essential feature.

nothing against windows 11, just kind of weird why its there and not on windows 10 yet.

WHY MICROSOFT.

Ive followed the steps and the gpu shows up in device manager and uingen superposition but not in task manager. And how does the memory get assigned to the VM is their a way to set a limit on how much memory a VM will get allocated. BTW my gpu is a 1070ti

I know what you are referring to. I never gotten any luck with the VM showing the GPU in Taskmanager. If it’s in device manager, that is good enough in this case. You would need to check your host to see if encoding or 3d rendering is going on in Taskmanager. If your looking at the Dedicated memory field in advanced monitor settings, I think it just pulls the information from the card regardless if it was partitioned or not.

For VRAM assignment. use the vaules as a percentage of VRAM
MinPartitionVRAM : 0
MaxPartitionVRAM : 1000000000
OptimalPartitionVRAM : 1000000000

Use the 1000000000 as a value 100% and divide that to a value you want. In the Optimal field, just -1 the overall total you want to use.

Hope this helps

Thanks for the input the main thing was getting the vram assignment just right. Thanks again

Hello again Im busy trying to limit the vram usage to 25% with the following configuration but With 2 vms the usage will go over 2GB and when i Just for testing in super position i exceed the gpu memory like benching at 5k the vram goes to 5GB or was it less cant remember it begins to swap out of system memory here is my configuration

$vm = “Windows 10 1”
Remove-VMGpuPartitionAdapter -VMName $vm
Add-VMGpuPartitionAdapter -VMName $vm
Set-VMGpuPartitionAdapter -VMName $vm -MinPartitionVRAM 0
Set-VMGpuPartitionAdapter -VMName $vm -MaxPartitionVRAM 250000000
Set-VMGpuPartitionAdapter -VMName $vm -OptimalPartitionVRAM 249999999
Set-VMGpuPartitionAdapter -VMName $vm -MinPartitionEncode 0
Set-VMGpuPartitionAdapter -VMName $vm -MaxPartitionEncode 18446744073709551615
Set-VMGpuPartitionAdapter -VMName $vm -OptimalPartitionEncode 18446744073709551614
Set-VMGpuPartitionAdapter -VMName $vm -MinPartitionDecode 0
Set-VMGpuPartitionAdapter -VMName $vm -MaxPartitionDecode 250000000
Set-VMGpuPartitionAdapter -VMName $vm -OptimalPartitionDecode 249999999
Set-VMGpuPartitionAdapter -VMName $vm -MinPartitionCompute 0
Set-VMGpuPartitionAdapter -VMName $vm -MaxPartitionCompute 250000000
Set-VMGpuPartitionAdapter -VMName $vm -OptimalPartitionCompute 249999999
Set-VM -GuestControlledCacheTypes $true -VMName $vm
Set-VM -LowMemoryMappedIoSpace 1Gb -VMName $vm
Set-VM -HighMemoryMappedIoSpace 32GB -VMName $vm
Start-VM -Name $vm

gigabyte gtx 1070ti with nvidia driver 471.96

Hi There,

has anyone successfully partitioned an AMD I-GPU, and used that with parsec? I managed to get the IGPU virtualized, visible and working in the VM but neither parsec nor rainway can access the hardware video encoding.

Also has anyone managed to install the AMD IGPU drivers on hyper-v core? The drivers are only available for W10 and they fail to run on hyper-v standalone. I’ve tested the partitioning with windows 10 pro client but it is not really an end state solution I want.

Hi,
The problem I’m having might be the same as the question above mine but I have a secondary AMD GPU that is unused (aside from a dummy plug) and I can partition it just fine to a VM (and can confirm it works via benchmark tools) but when attempting to use parsec, the encoder is not kicking in (and yes I do have a virtual monitor granted by the paid version) – Has anyone been successful in using parsec or any other remote access tool with an AMD GPU?

I recommend looking through the System 32 folder on the host computer, there may be some AMD Encoder DLLs, I don’t have a modern AMD GPU from within the past 5 years so it would be probably different from the ones in my storage. Possibly trying to copy all

One thing to try and search is what is the encoder DLL for AMD or product code name for their encoder for the GPU you have. I apologize but this is the best I can do.

@Bogey_Biggs hope this gives you a place to start as well

Thanks! you’re a legend!

The paid virtual monitor didn’t work for me. I had to use the usb hack one. I had to make a little script for it in task scheduler.
Screenshot 2021-09-24 132420

You’re very likely right, I’ve tried to partition my main GPU that is an NVIDIA I initially didn’t follow all the instructions, didn’t copy the nv* files in the system32 folder (just the hostdriver) and got exactly the same problem. I think searching for and copying some enc file would do the trick.

Unfortunately I’ve now re-istalled hyper-v core on the machine where I have the IGPU and have a much bigger issue since AMD drivers do not install, I’ve tried installing them manually with pnputil but no luck so far. Without the drivers get-vmpartitionablegpu does not return anything…

Hello there another topic, has anyone managed to install nvidia geforce experience? In theory moonlight has (much?) better streaming performances than parsec but it requires nvidia streaming services that come with geforce experience. Clearly nvidia installer refuses to run as it does not recognize the virtual GPU… any way to force installing just to give it a try? I was thinking to clone the host PC windows where I have it installed, could that work (in case anyone tried I won’t waste time on that).