How To Unlock NVIDIA Virtualization On GeForce GPUs With A Simple Software Hack

NVIDIA GeForce Graphics Card
One of the features supported by NVIDIA's line of professional graphics cards is GPU virtualization. It is a potentially handy feature in some environments, as it enables more than one person to tap into a single GPU, through virtualization software. The feature is not officially available on NVIDIA's consumer GPUs, but as it turns out, can enabled with a rather simple hack.

This is really more of a 'gee-whiz' kind of thing than a game changer in the land of consumer GPUs, as we reckon the vast majority of GeForce graphics card owners will not have a need for this. For those who do, however, there is the potential to save a lot of money by buying a consumer graphics card rather than a professional graphics card (Quadro or Tesla), if GPU virtualization is the main selling point (once the shortage is behind us, anyway).

It's also interesting because in today's landscape, working remotely is more prominent than it was before the pandemic.

"With vGPU software licenses, companies can use their on-premises NVIDIA GPUs to provide accelerated virtual infrastructure so people can work and collaborate from anywhere. Companies can also temporarily repurpose NVIDIA GPUs being used on other projects to support their remote workers," NVIDIA explains.

NVIDIA vGPU Device ID

The lack of support on consumer GPUs is entirely software based. However, GeForce owners who want to unlock GPU virtualization on their graphics card can grab the code at GitHub. It effectively replaces the graphics card's device ID with one from a supported GPU.

"In order to determine if a certain GPU supports the vGPU functionality the driver looks at the PCI device ID. This identifier together with the PCI vendor ID is unique for each type of PCI device. In order to enable vGPU support we need to tell the driver that the PCI device ID of the installed GPU is one of the device IDs used by a vGPU capable GPU," the release notes state.

This hack works on GP102, GP104, TU102, TU104, and GA102 GPUs, though there is a pretty big caveat—this does not work on Windows, just Linux with Kernel-based Virtual Machine (KVM) software running. That limits the potential appeal, though for Linux users who might need something like this, well, there you go.