An experimental open-source project called virtio-nvgpu is attempting to give KVM virtual machines shared access to an Nvidia graphics processor without translating every graphics command or dedicating the entire card to one guest. Its developers published implementation details and early benchmark results on September 24, while emphasizing that the software is not yet production-ready.
The design forwards Nvidia kernel-driver operations between a Linux guest and the host at the driver ABI layer. Nvidia’s unmodified user-space libraries run inside the guest, where applications can use Vulkan and NVENC. The developers say command submission then occurs through mapped memory, so the normal rendering loop does not require a virtual-machine boundary crossing for every draw call.
The intended use is headless streaming. A compositor in a guest renders and combines frames on the shared GPU, encodes them, and sends compressed video elsewhere. The host retains the card, distinguishing the approach from VFIO passthrough, which generally assigns a GPU to one virtual machine. The project also differs from API-level translation systems that serialize graphics calls for replay by the host.
In tests reported by the project, a synthetic headless Vulkan workload running in one guest on an RTX 3060 came within 2% of bare-metal performance when frames required more than roughly two milliseconds. Four guests running together divided the card’s throughput almost evenly and produced a combined frame rate close to the single-guest result. The developers also reported simultaneous H.264 encoding from the four guests.
Those numbers are narrow evidence, not a general performance claim. They came from one card, one synthetic workload and specified driver versions, with no comparison against another hypervisor. Nvidia’s kernel-driver ABI is not stable, so virtio-nvgpu uses explicit compatibility profiles and refuses versions outside supported ranges.
Important isolation work is unfinished. The planned architecture places real device file descriptors and ioctl execution in a sandboxed helper for each guest, but that helper has not been implemented; the backend currently performs those operations inside the virtual-machine monitor process. That limitation, together with the experimental status and driver coupling, makes the current release a development prototype.
Even so, the project demonstrates a possible middle ground between command translation and full-device passthrough. If its security model and compatibility mature, the approach could be useful for game streaming or other multi-tenant GPU workloads that need Nvidia’s own user-space stack inside each guest. Broader hardware testing and completion of the isolation helper will be important before operators can assess that potential.



