Jump to content

Welcome to ExtremeHW

Welcome to ExtremeHW, register to take part in our community, don't worry this is a simple FREE process that requires minimal information for you to signup.

 

Registered users can: 

  • Start new topics and reply to others.
  • Show off your PC using our Rig Creator feature.
  • Subscribe to topics and forums to get updates.
  • Get your own profile page to customize.
  • Send personal messages to other members.
  • Take advantage of site exclusive features.
  • Upgrade to Premium to unlock additional sites features.
IGNORED

Easy GPU Sharing on a VM


Recommended Posts

Administrators

Easy VM GPU Sharing!

 

 

 

Ever ran a homelab server, or just been messing around with Hyper-V and wanted your GPU to work in your VM's?  Well this tool "should" work out for you (in Windows 11)!
 

---------------------------------------------------------------------
Minimum System Requirements:
---------------------------------------------------------------------

  • Hyper-V Capable System
  • Generic Hyper-V CPU / RAM amount requirements (4 cores / 4GB RAM)
  • Tested GPU's down to 2GB VRAM (GTX 760 / HD7870)
  • Tested GPU's up to Radeon RX 7900XTX / RX 9070XT / GTX 1080Ti
  • Windows 11 Pro or IoT Version Host OS confirmed
  • Windows 10 Pro or IoT Version Host OS confirmed
  • Windows 11 Pro or IoT Version Guest OS confirmed
  • Windows 10 Pro or IoT Version Guest OS confirmed

Note:

  • Parsec only appears to work under Windows 11 host OS environments.  Otherwise, 3d works fine on Windows 10 host OS's as well including Steam streaming, RDP, encoding, transcoding, etc.

 

---------------------------------------------------------------------
How To Use:
---------------------------------------------------------------------
Run easy_vm.exe from the install directory or unzipped folder;
default location is (C:\Easy GPU VM Share\).  There is also an
installer version on .iso that you can mount, and it'll install the
program and create a desktop shortcut for you.

For more advanced users, you can edit-use the .bat file directly

titled:  "setup_vm.bat" located within the same directory.

 

Click on YES to allow the app to make changes to your device.

----------------------------------
OPTION 1 - Installing a new VM:
----------------------------------

  • Insert your Virtual Machine Name (will also be your NETBIOS name).
  • Insert the path to your Windows 11/10 iso file to install.
  • Choose which version of iso you're installing (Pro or IoT).
  • Insert the virtual HDD/SSD Size in GB (just put in the number).
  • Insert FIXED amount of RAM to use for this VM (dynamic does NOT work).
  • Insert CPU Core count to use for the VM.
  • Type in (exactly as done in Hyper-V Switch manager) the network name.
  • Insert the save path for the VM's virtual HDD / SSD file (no quotes).
  • Insert default / initial username to be created (local account).
  • Insert default / initial password to be created (if any).
  • Auto Login to the virtual machine enable on startup?
  • Note: (Type "TRUE" or "FALSE" no quotes or capitalization needed).
  • Sit back and wait for the install process to finish.

 

-------------------------------------------------

How to UPDATE your Graphics Card OR Driver?
-------------------------------------------------

Driver Only:

  • Download latest driver on host system and install driver.
  • Run Easy GPU VM Share and choose option 2.

 

New Graphics Card (and driver assumed):

  • Download intended new driver on the host system.
  • Insert new GPU with the system off of course.
  • Note: (If necessary due to dead hardware, reverse if needed.)
  • Boot up host system with new GPU installed and driver downloaded.
  • Give host system a reboot, just in case because new hardware.
  • Install new driver on the host system as normal.
  • Run Easy GPU VM Share and choose option 2.


Credits:
Source scripts were found at github.  I do not own any rights to these scripts, only the bat files, icons, and exe files I've created and compiled for this collection.

 

Original source material for the .ps1 scripts were used from:

https://github.com/jamesstringerparsec/Easy-GPU-PV

 

Would be interested to hear from anybody who could help create a better GUI for this too!  If you can, please let me know at ExtremeHW.

 

DO NOT COPY, DUPLICATE, OR SHARE THIS PROGRAM WITHOUT EXTREMEHW'S EXPLICIT PERMISSION (OR PIO'S).  OTHERWISE THE SOFTWARE IS PRESENTED AS IS, 100% FREE, OPEN SOURCE, ENJOY IT PLEASE AND SPREAD THE WORD! THANK YOU.

 


DOWNLOAD LINKS:

Zip File - Portable Apps style (just unzip / copy / paste):
https://drive.google.com/file/d/1PaAw1miQ5WIEwNy8LfZaba4Cq5W0lLU_/view?usp=sharing

ISO File - Installer included to copy to default directory and creates shortcut:

https://drive.google.com/file/d/1WZNJ9BfUgzk7SbktZDQTzZyEVYuxd2au/view?usp=sharing

 

 


Screenshots:


Installation work flow choosing Option 1 (Installing a brand new VM):
image.png.00b2e44794db8e69a3cfe88372b3f23f.png

Update Drivers work flow choosing Option 2 (updating drivers / installing a new card):
image.png.ebbfc932d716db5689062af69a2de6a1.png

Three VM's all sharing resources together to utilize my 16GB Intel Arc A770 (tested with GTX 760 and newer and RX 6500XT and newer too):
WK2ntO7gSB.thumb.jpg.311c0b6cd8a613a7ce930b29774d0cde.jpg

 

  • Respect 4
  • Agreed 1

null

Owned

 Share

CPU: Ryzen 7800 x3d
MOTHERBOARD: Gigabyte B650 Aorus Elite AX
RAM: 64GB Patriot Viper DDR5 @ 6200, 28-36-34-70, 1.50v
PSU: Seasonic Focus Gold 1000w
GPU: Sapphire Pulse RX 9070 XT
SOUNDCARD: Asus Xonar DGX
OPTICAL: USB Pioneer DVD-RW + Lightscribe
SSD/NVME: Corsair MP600 Mini 2TB
Full Rig Info
Link to comment
Share on other sites

  • 4 weeks later...
Administrators
  On 05/05/2025 at 17:02, Odyn said:

Maaaaaaaan I really wish I saw this earlier. I spent a few hours in powers(hell) getting my GPU to passthrough to my VM. I'll try it on my next attempt! 🙂

Expand  

Well, I spent about a week+ working on this app, so I DON'T have to spend hours every time. 🙂

You can actually go in there and edit the script or the text file in the data directory too, so you can change your own "default directories" in the "app" (batch file) so you don't have to type your directory each time.  I think my current version has a changed default directory of D:\Hyper-V\ instead.  Otherwise I haven't made any changes, and this script + batch file is doing all the heavy lifting on my VM server. 

  • Thanks 1

null

Owned

 Share

CPU: Ryzen 7800 x3d
MOTHERBOARD: Gigabyte B650 Aorus Elite AX
RAM: 64GB Patriot Viper DDR5 @ 6200, 28-36-34-70, 1.50v
PSU: Seasonic Focus Gold 1000w
GPU: Sapphire Pulse RX 9070 XT
SOUNDCARD: Asus Xonar DGX
OPTICAL: USB Pioneer DVD-RW + Lightscribe
SSD/NVME: Corsair MP600 Mini 2TB
Full Rig Info
Link to comment
Share on other sites

  • 2 weeks later...
Administrators

So, according to AI tools, this GPU sharing tool I created MIGHT not work correctly setting an incredibly LOW GPU usage percentage.  I was planning on setting up some more VM's on my server box with a low percentage, like 5% GPU usage, so that way they could at least use the GPU for desktop things.

So, with that said, I'm going to work on a re-write of the script in the next few weeks.  I'd like to see this program at a point where it'll happily allocate any GPU in a VM, with as little as a 5% setting.  So we'll see if I get it there.

As is:
This app has been tested with an Intel Arc A770 on Windows 11, and works correctly with large allocation splits like 40%, 50%, etc.  Smaller usage percentages have NOT been tested, nor has any other cards (although the script was written generically with the 16GB Arc A770 installed, it does not call the Intel card specifically).

  • Respect 1

null

Owned

 Share

CPU: Ryzen 7800 x3d
MOTHERBOARD: Gigabyte B650 Aorus Elite AX
RAM: 64GB Patriot Viper DDR5 @ 6200, 28-36-34-70, 1.50v
PSU: Seasonic Focus Gold 1000w
GPU: Sapphire Pulse RX 9070 XT
SOUNDCARD: Asus Xonar DGX
OPTICAL: USB Pioneer DVD-RW + Lightscribe
SSD/NVME: Corsair MP600 Mini 2TB
Full Rig Info
Link to comment
Share on other sites

Administrators

Corrected some issues with the original coding.  Appears that no matter what I try to do, Hyper-V or the drivers or something appears to NOT listen to the limits I'm setting in the software.  As such, I removed the GPU Partition Percentage options I had before, as they weren't doing anything at all.

This program splits your GPU EVENLY among VM's.  If there's no GPU load at all, your VM will have 100% of the GPU's capabilities.  If 2 VM's are fighting for resources, each gets 50%.  And so on.

Updated OP with all new finalized information and installer downloads, new screenshots, and readme.

This is possibly final "enough" version for me to release.  Hope you guys enjoy it!  Seems to be working solidly for me and I've tested it on a GTX 760 2GB, GTX 960 4GB, GTX 1060 6GB, GTX 1080Ti 11GB, Intel Arc A770 16GB (was stuttery but worked, possibly REBAR issues), AMD RX 6500 XT 4GB and 8GB, RX 580 8GB, RX 7900GRE, RX 7900 XTX, and RX 9070 XT.  So far, I have found absolutely no combination of cards or drivers that this program does NOT work in.  Only tested in Windows 11.  

Released.

  • Respect 2

null

Owned

 Share

CPU: Ryzen 7800 x3d
MOTHERBOARD: Gigabyte B650 Aorus Elite AX
RAM: 64GB Patriot Viper DDR5 @ 6200, 28-36-34-70, 1.50v
PSU: Seasonic Focus Gold 1000w
GPU: Sapphire Pulse RX 9070 XT
SOUNDCARD: Asus Xonar DGX
OPTICAL: USB Pioneer DVD-RW + Lightscribe
SSD/NVME: Corsair MP600 Mini 2TB
Full Rig Info
Link to comment
Share on other sites

Administrators

Updated OP:

Confirmed working in Windows 10 and 11 host environments both (Pro and IoT versions).

Parsec on Windows 10 hosts seems to be a known issue though from other people's reporting on the same script style I'm using.  I do not know of a solution other than use Windows 11 host if you need Parsec.

Otherwise, this program / script / batch file whatever, seems to work exactly as I intended it to do. 🙂

I will have to update the batch file's default locations on everything to actual Windows Hyper-V default locations so that doesn't get confusing.  You can ofc always type in a "custom" location during the install process to match your Hyper-V configuration, but it can get confusing though if you're still using default settings and don't think about it.  So long as you're aware of that though (which I will update easily later on in another update), the program works great!

null

Owned

 Share

CPU: Ryzen 7800 x3d
MOTHERBOARD: Gigabyte B650 Aorus Elite AX
RAM: 64GB Patriot Viper DDR5 @ 6200, 28-36-34-70, 1.50v
PSU: Seasonic Focus Gold 1000w
GPU: Sapphire Pulse RX 9070 XT
SOUNDCARD: Asus Xonar DGX
OPTICAL: USB Pioneer DVD-RW + Lightscribe
SSD/NVME: Corsair MP600 Mini 2TB
Full Rig Info
Link to comment
Share on other sites

  • 2 weeks later...
Administrators

One "bug" I'm aware of:  File Pathing.

I will issue a correction to this in the next few days, but for RIGHT NOW, the software is still using my custom pathing to my VM folders and ISO directories.  I'll correct the default directories to actual Hyper-V defaults in the next few days and re-upload.  For right now, you can work around it by making note of your Hyper-V Hard Disk folder in Hyper-V's configuration, and pathing to it during the correct prompt during install.  This step will still apply if you're using a custom path in the future, my update will only correct this step so default pathing is the default location for my program.

I've used this software on 2 very wildly different systems so far and no issues.  Would love to hear feedback if it works for other people! 🙂

null

Owned

 Share

CPU: Ryzen 7800 x3d
MOTHERBOARD: Gigabyte B650 Aorus Elite AX
RAM: 64GB Patriot Viper DDR5 @ 6200, 28-36-34-70, 1.50v
PSU: Seasonic Focus Gold 1000w
GPU: Sapphire Pulse RX 9070 XT
SOUNDCARD: Asus Xonar DGX
OPTICAL: USB Pioneer DVD-RW + Lightscribe
SSD/NVME: Corsair MP600 Mini 2TB
Full Rig Info
Link to comment
Share on other sites

  • 2 weeks later...
Administrators

Latest July 8 Windows update broke this.  Not sure why, but this no longer works.

EDIT:
The updates work perfectly fine on the HOST system, its the VM's that are effected.

If you remove and prevent Windows from updating KB5062553 on the VM's, this still works.

null

Owned

 Share

CPU: Ryzen 7800 x3d
MOTHERBOARD: Gigabyte B650 Aorus Elite AX
RAM: 64GB Patriot Viper DDR5 @ 6200, 28-36-34-70, 1.50v
PSU: Seasonic Focus Gold 1000w
GPU: Sapphire Pulse RX 9070 XT
SOUNDCARD: Asus Xonar DGX
OPTICAL: USB Pioneer DVD-RW + Lightscribe
SSD/NVME: Corsair MP600 Mini 2TB
Full Rig Info
Link to comment
Share on other sites

  • 4 weeks later...
  On 12/07/2025 at 04:02, pio said:

Latest July 8 Windows update broke this.  Not sure why, but this no longer works.

EDIT:
The updates work perfectly fine on the HOST system, its the VM's that are effected.

If you remove and prevent Windows from updating KB5062553 on the VM's, this still works.

Expand  


Okay, scratch that update.

NEW UPDATE:
Windows released a NEW patch update, not sure what date.  But the above update has already been patched up and my application here works again same as it did before.  It's still not the best solution, but its the best I could come up with without using multiple GPU's in the system.

Not really sure what Microsoft was up to with their updates this month, jeez.  🤣

HOW TO FIX:
If you run into an update this month giving you an issue, uninstall the latest QUALITY update (KB5062553).  If its refusing to boot up, just power cycle it 3 times to get into recovery mode.  Go under the advanced section, uninstall updates, and uninstall the latest quality update.  Reboot, and it should be resolved, you'll get a new patch from July after that, and it should reboot one more time (after the latest patch / update), and you'll be golden again.

  • Respect 1

null

Owned

 Share

CPU: Ryzen 7800 x3d
MOTHERBOARD: Gigabyte B650 Aorus Elite AX
RAM: 64GB Patriot Viper DDR5 @ 6200, 28-36-34-70, 1.50v
PSU: Seasonic Focus Gold 1000w
GPU: Sapphire Pulse RX 9070 XT
SOUNDCARD: Asus Xonar DGX
OPTICAL: USB Pioneer DVD-RW + Lightscribe
SSD/NVME: Corsair MP600 Mini 2TB
Full Rig Info
Link to comment
Share on other sites

  19 hours ago, CoolGTX said:

Thank you for all of your hard work. 
I find this to be an interesting topic & project.

Expand  

Thank you!  It seems tons of people are using that same scripting that I used to make this, because that update broke things for a lot of people's GPGPU setups it seems lol.

null

Owned

 Share

CPU: Ryzen 7800 x3d
MOTHERBOARD: Gigabyte B650 Aorus Elite AX
RAM: 64GB Patriot Viper DDR5 @ 6200, 28-36-34-70, 1.50v
PSU: Seasonic Focus Gold 1000w
GPU: Sapphire Pulse RX 9070 XT
SOUNDCARD: Asus Xonar DGX
OPTICAL: USB Pioneer DVD-RW + Lightscribe
SSD/NVME: Corsair MP600 Mini 2TB
Full Rig Info
Link to comment
Share on other sites

This is an interesting project. Nice work @pio

 

I need something similar but for Linux. I have been using Linux as my primary operating system for a while now and only run Windows in a virtual machine when using Windows for a specific purpose at work is unavoidable. It runs pretty well because I allocate 8 of my 32 CPU threads and 16GB of 48GB of RAM to the VM, but you can tell it is a little bit anemic on the graphics side of things.

  • Thanks 1

null

Owned

 Share

CPU: Intel Core i9-14900KS
MOTHERBOARD: ASUSTeK ROG Maximum Z790 Apex
RAM: G.SKILL Trident Z5 48GB DDR5 @ 8600 - On Water
GPU: MSI RTX 4090 Suprim-X + Byski Block
PSU: Thermaltake Toughpower GF3 1650W
SSD/NVME: NVMe x9, SATA SSD x1, HDD x1
CPU COOLER: MO-RA 360, D5 x4, 5 Gal Reservoir, Hailea HC-500A
CASE: Lian Li O11 Dynamic XL EVO
Full Rig Info
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


×
×
  • Create New...

Important Information

This Website may place and access certain Cookies on your computer. ExtremeHW uses Cookies to improve your experience of using the Website and to improve our range of products and services. ExtremeHW has carefully chosen these Cookies and has taken steps to ensure that your privacy is protected and respected at all times. All Cookies used by this Website are used in accordance with current UK and EU Cookie Law. For more information please see our Privacy Policy