Just over one year ago NVIDIA posted open-source Linux GPU driver code for GPU virtualization “vGPU” support. That NVIDIA vGPU driver work was recently revised while still posted under a request for comments (RFC) flag.
It was only today while going through some new patches around Rust PCI config space read/write support that the new NVIDIA vGPU RFC patches were noted that had previously slipped under my radar.
Posted in early September was the second iteration of the RFC patches for NVIDIA GPU Virtualization support with intentions for the upstream Linux kernel.
“NVIDIA vGPU software enables powerful GPU performance for workloads ranging from graphics-rich virtual workstations to data science and AI, enabling IT to leverage the management and security benefits of virtualization as well as the performance of NVIDIA GPUs required for modern workloads. Installed on a physical GPU in a cloud or enterprise data center server, NVIDIA vGPU software creates virtual GPUs that can be shared across multiple virtual machines.
…
Each physical GPU can support several different types of virtual GPU (vGPU). vGPU types have a fixed amount of frame buffer, number of supported display heads, and maximum resolutions. They are grouped into different series according to the different classes of workload for which they are optimized. Each series is identified by the last letter of the vGPU type name.NVIDIA vGPU supports Windows and Linux guest VM operating systems. The supported vGPU types depend on the guest VM OS.”
For this upstream-friendly approach for NVIDIA vGPU, they have been working on getting vGPU support working with Nova as their modern Rust-based NVIDIA open-source Linux kernel driver currently under development.
Those interested can find the NVIDIA vGPU RFC v2 patches on the kernel mailing list.
NVIDIA also shared a demo video of the patches working under Windows 11 with two Linux vGPUs from one graphics card.