Jump to content

Nvidia GPU Virtualization Hacked For GeForce Cards

Uttamattamakin
5 hours ago, igormp said:

Yes, it's just a PCI ID spoof, mostly. There's a discord server discussing the development which can be found in a random issue on the repo.

 

5 hours ago, Uttamattamakin said:

That clears up a lot. 

 

NVIDIA getting some money out of this they shouldn't have a problem.  I just which they would give us a reasonably priced and supported option. 

PCI ID spoofing has been how swapping quadro and geforce parts have been done historically as well. Calling it a hack is like calling using your older siblings drivers license as your own a hack to drive or drink. It only matters if you get caught. It's not a fake ID, just presenting the wrong one.

 

That said, it's all but certain it violates licenses and if you did this for a commercial effort, you're likely to get spanked for it hard. If you do this with your personal PC, it's pretty much a given that nVidia isn't going to chase you down because the drivers themselves don't report back telemetry to nVidia (that we know of.)

 

Link to comment
Share on other sites

Link to post
Share on other sites

5 hours ago, leadeater said:

There is, sorta, just be an academic institution and get academic pricing 😀

 

image.png.9f80603d9d7f4c6518352f9782beeaf8.png

 Finally be a adjunct prof might count for something. Hopefully.  

 

 

8 minutes ago, Kisai said:

 

PCI ID spoofing has been how swapping quadro and geforce parts have been done historically as well. Calling it a hack is like calling using your older siblings drivers license as your own a hack to drive or drink. It only matters if you get caught. It's not a fake ID, just presenting the wrong one.

 

There seems to be a bit more to  it than that thought.  I am not a computer engineer but if it were super simple it would've been done a while ago. 

 

8 minutes ago, Kisai said:

That said, it's all but certain it violates licenses and if you did this for a commercial effort, you're likely to get spanked for it hard. If you do this with your personal PC, it's pretty much a given that nVidia isn't going to chase you down because the drivers themselves don't report back telemetry to nVidia (that we know of.)

 

This is likely but what could Nvidia possibly due.  Sue people for not buying their non existent or barely existent cards?  

Link to comment
Share on other sites

Link to post
Share on other sites

29 minutes ago, Kisai said:

PCI ID spoofing has been how swapping quadro and geforce parts have been done historically as well. Calling it a hack is like calling using your older siblings drivers license as your own a hack to drive or drink. It only matters if you get caught. It's not a fake ID, just presenting the wrong one.

It is not that simple though, but the repo has a better explanation anyway.

FX6300 @ 4.2GHz | Gigabyte GA-78LMT-USB3 R2 | Hyper 212x | 3x 8GB + 1x 4GB @ 1600MHz | Gigabyte 2060 Super | Corsair CX650M | LG 43UK6520PSA
ASUS X550LN | i5 4210u | 12GB
Lenovo N23 Yoga

Link to comment
Share on other sites

Link to post
Share on other sites

14 hours ago, Uttamattamakin said:

This is likely but what could Nvidia possibly due.  Sue people for not buying their non existent or barely existent cards?  

Yes.

 

But historically, companies only go after license violations when either one or both things are true:

a) there is a significant amount of money in play

b) the company has bragged about their license violation in public

 

Like nearly every single copyright violation involving open source or fan-projects is due to someone seeing money in it and the company controlling the property shutting it down because it risks their business model.

 

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, ThatOneDunce said:

Doesn't GPU passthrough solve these problems though? At least, for an individual VM?

Yes, but then you can't use it on your host.

FX6300 @ 4.2GHz | Gigabyte GA-78LMT-USB3 R2 | Hyper 212x | 3x 8GB + 1x 4GB @ 1600MHz | Gigabyte 2060 Super | Corsair CX650M | LG 43UK6520PSA
ASUS X550LN | i5 4210u | 12GB
Lenovo N23 Yoga

Link to comment
Share on other sites

Link to post
Share on other sites

6 hours ago, Kisai said:

Yes.

Don't know what's with my spelling today.  Like due instead of do... anyway. 

Quote

But historically, companies only go after license violations when either one or both things are true:

a) there is a significant amount of money in play

b) the company has bragged about their license violation in public

 

Like nearly every single copyright violation involving open source or fan-projects is due to someone seeing money in it and the company controlling the property shutting it down because it risks their business model.

 

Yeah.  I don't see how this threatens their business model since they aren't providing a rea option for pro-sumers.  In fact looking at their Amper generation GPU's they seem to have done away with the name Quadro and they are all geared towards a data center. 

Then it occured to me, One household of gamers could perhaps share a single GPU and get an accelerated experience in their home without having to buy more than one GPU.  Like one of those virtual PC cloud services but on the home LAN.  That might cost Nvidia money. On the other hand it's not like ordinary people make that much of a margin for Nvidia.  

Link to comment
Share on other sites

Link to post
Share on other sites

On 4/10/2021 at 11:58 PM, Uttamattamakin said:

Abstract

Nvidia limits using one GPU as one or more virtual GPU's to its enterprise level products.  The ability exist in the silicon for GeForce but it is not enabled in the drivers.  Similar to how GeForce drivers would give error 43 when passed through in a VM.  However, we are not talking about passthrough but something similar to SR-IOV.  This allows one to use one GPU to run two separate operating systems by using hardware in the GPU to virtualize  a GPU.  That said logically there would be some limits to this from the nature of virtualization.   This is a hack so one must be comfortable with downloading code from github, patching kernel modules, etc.  That said, anyone who would really need this ability should be able to do this. 

 

Quotes

 

My thoughts

My first response is hallelujah! Now if I can get my hands on a compatible GPU then I can accomplish all of my work and game on my desktop computer.  If I can get my hands on one I could run CUDA code in Mathematica or Matlab or Python modeling various theoretical physics situations and kill the time by gaming.  I could run Windows for the use of Microsoft Office for presenting power point content to my class in the best possible way, then capture that window and send it out over Zoom or Blackboard Collaborate Ultra.  Not to mention using windows and Linux based tools at the same time for all purposes.  Then finally keeping everything stored redundantly on my raid array, and backed up with both online NAS and via external/removeable drives.  

 

There are a few problems though.  Number one is the fact that to use this one needs.

 

and

In terms of GPUs one would buy that would mean having according to VideoCardz:

Any* 10 series card 1060 or better.

Any* 20 series card 2070 Super or better. 

Any 30 series card 3080 or better. 

 

*Any such card with enough VRAM for this to make sense and enough horsepower to be more than a tech demo.  For example right now one can run CDUA code in WSL2.0 using Ubuntu for WSL 2 as a beta.  However, the performance is not great compare to bare metal, not even half.   

 

If one does not have two GPU's (or an IGP or APU processor) anyway then using one 1080Ti as the display out for Linux and also to virtualize a GPU for Windows would be very limited.   Basically using VGPU does not unlock more power.  Instead it would reduce the power by at least half.    Half of the VRam, half of the CUDA cores, half of everything.   So  a GTX 1080Ti or even 1080 that can hold its own in games in terms of rasterization performance would be as weak as a 980.  

 

For a card that is less than a 1080 this might not even be very functional for gaming.  Perhaps using it to virtualize Windows to run office apps alone this will work.  It would be like having a GT level card for your VM. 

 

All of that said, while I can't risk it on my working computer during the school term I may try this out during the summer. If so then this would get me to computing nirvana. Since I have and will have a Ryzen APU to run my Linux desktop.  Thus the overall effect of virtualizing a Windows instance on my 1080 might be no different than running a game on it while also running a computation.   The only other way I could do this would be to build a new computer with enough expansion slots to get two dGPU's in addition to my APU.  So this will wave me from a lot of headache.  hallelujah, hallelujah, hallleeeeluuujah!.  

However this would not be for everyone.   

 

 

Sources

 Nvidia's Virtualization Unlocked On Gaming GPUs via Hack | Tom's Hardware

GitHub - DualCoder/vgpu_unlock: Unlock vGPU functionality for consumer grade GPUs. 

Getting started with CUDA on Ubuntu on WSL 2 | Ubuntu

The funniest thing is that even Intel has this feature before nvidia(gvt-g)

Link to comment
Share on other sites

Link to post
Share on other sites

2 hours ago, Uttamattamakin said:

Then it occured to me, One household of gamers could perhaps share a single GPU and get an accelerated experience in their home without having to buy more than one GPU.  Like one of those virtual PC cloud services but on the home LAN.  That might cost Nvidia money. On the other hand it's not like ordinary people make that much of a margin for Nvidia.  

Have you seen Steam Remote Play or nVidia gamestream? Seems like they wouldn't want anything competing with Geforce Now too.

 

On the other hand, there is certainly an application here where you could isolate linux virtual machines for running ML without needing multiple systems, and the resources could be returned to the host system when they're shut down.

Link to comment
Share on other sites

Link to post
Share on other sites

10 hours ago, WolframaticAlpha said:

The funniest thing is that even Intel has this feature before nvidia(gvt-g)

Too bad they apparently gave up on it 😞

FX6300 @ 4.2GHz | Gigabyte GA-78LMT-USB3 R2 | Hyper 212x | 3x 8GB + 1x 4GB @ 1600MHz | Gigabyte 2060 Super | Corsair CX650M | LG 43UK6520PSA
ASUS X550LN | i5 4210u | 12GB
Lenovo N23 Yoga

Link to comment
Share on other sites

Link to post
Share on other sites

(I don't have very much experience with virtualization)
would it be possible to use the GPU simultaniously in both the host and guest with this?
Just curious.

why no dark mode?
Current:

Watercooled Eluktronics THICC-17 (Clevo X170SM-G):
CPU: i9-10900k @ 4.9GHz all core
GPU: RTX 2080 Super (Max P 200W)
RAM: 32GB (4x8GB) @ 3200MTs

Storage: 512GB HP EX NVMe SSD, 2TB Silicon Power NVMe SSD
Displays: Asus ROG XG-17 1080p@240Hz (G-Sync), IPS 1080p@240Hz (G-Sync), Gigabyte M32U 4k@144Hz (G-Sync), External Laptop panel (LTN173HT02) 1080p@120Hz

Asus ROG Flow Z13 (GZ301ZE) W/ Increased Power Limit:
CPU: i9-12900H @ Up to 5.0GHz all core
- dGPU: RTX 3050 Ti 4GB

- eGPU: RTX 3080 (mobile) XGm 16GB
RAM: 16GB (8x2GB) @ 5200MTs

Storage: 1TB NVMe SSD, 1TB MicroSD
Display: 1200p@120Hz

Asus Zenbook Duo (UX481FLY):

CPU: i7-10510U @ Up to 4.3 GHz all core
- GPU: MX 250
RAM: 16GB (8x2GB) @ 2133MTs

Storage: 128GB SATA M.2 (NVMe no worky)
Display: Main 1080p@60Hz + Screnpad Plus 1920x515@60Hz

Custom Game Server:

CPUs: Ryzen 7 7700X @ 5.1GHz all core

RAM: 128GB (4x32GB) DDR5 @ whatever it'll boot at xD (I think it's 3600MTs)

Storage: 2x 1TB WD Blue NVMe SSD in RAID 1, 4x 10TB HGST Enterprise HDD in RAID Z1

Link to comment
Share on other sites

Link to post
Share on other sites

31 minutes ago, Mnky313 said:

(I don't have very much experience with virtualization)
would it be possible to use the GPU simultaniously in both the host and guest with this?
Just curious.

Yes, some people got it to work this way, but CUDA seems to be broken on the host when doing so.

FX6300 @ 4.2GHz | Gigabyte GA-78LMT-USB3 R2 | Hyper 212x | 3x 8GB + 1x 4GB @ 1600MHz | Gigabyte 2060 Super | Corsair CX650M | LG 43UK6520PSA
ASUS X550LN | i5 4210u | 12GB
Lenovo N23 Yoga

Link to comment
Share on other sites

Link to post
Share on other sites

13 hours ago, Kisai said:

Have you seen Steam Remote Play or nVidia gamestream? Seems like they wouldn't want anything competing with Geforce Now too.

True but steam in home streaming is using one GPU to service one gamer. 

 

I am thinking using one hardware GPU to service multiple gamers.   SO say one A6000 GPU services 2-6 gamers.  Virtual windows sessions for each gamer.  So the setup would have one powerful server.  Meanwhile anything able to run the remote session could be used.  That is Nvidia selling one $2500 A6000 instead of 2-6 $700 3080's 

13 hours ago, Kisai said:

 

On the other hand, there is certainly an application here where you could isolate linux virtual machines for running ML without needing multiple systems, and the resources could be returned to the host system when they're shut down.

That's a good one too. 

 

 

Link to comment
Share on other sites

Link to post
Share on other sites

Finally managed to get it working, now to fix CUDA on the host :old-smile:

myimage.thumb.png.ba7a84e25b84d9832aeb7a4510788196.png

FX6300 @ 4.2GHz | Gigabyte GA-78LMT-USB3 R2 | Hyper 212x | 3x 8GB + 1x 4GB @ 1600MHz | Gigabyte 2060 Super | Corsair CX650M | LG 43UK6520PSA
ASUS X550LN | i5 4210u | 12GB
Lenovo N23 Yoga

Link to comment
Share on other sites

Link to post
Share on other sites

20 hours ago, igormp said:

Finally managed to get it working, now to fix CUDA on the host :old-smile:

Awesome you are a braver man than me. 

 

Did you need to buy a license for NVidia GRID?  

What kind of VGPU is this? 
Details man... details. 

 

Also without CUDA being available to the host this takes a lot of the shine off the penny, at least for me. 

Link to comment
Share on other sites

Link to post
Share on other sites

2 minutes ago, James Evens said:

Might want to join the projects discord.

I do not see where it is listed on github I try searching on discord and find nothing. 

Link to comment
Share on other sites

Link to post
Share on other sites

17 minutes ago, Uttamattamakin said:

Did you need to buy a license for NVidia GRID?

No, currently using the 90-day free trial that some people have set up on their servers.

17 minutes ago, Uttamattamakin said:

What kind of VGPU is this? 

Spoofed my 2060 Super as a tesla T4.

 

18 minutes ago, Uttamattamakin said:

Also without CUDA being available to the host this takes a lot of the shine off the penny, at least for me.

Since I got display to work alongside vgpu, my next step will be to get cuda to work since I need it to work. After that I'll see if I can get the host driver to work with newer kernels.

FX6300 @ 4.2GHz | Gigabyte GA-78LMT-USB3 R2 | Hyper 212x | 3x 8GB + 1x 4GB @ 1600MHz | Gigabyte 2060 Super | Corsair CX650M | LG 43UK6520PSA
ASUS X550LN | i5 4210u | 12GB
Lenovo N23 Yoga

Link to comment
Share on other sites

Link to post
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

×