NVIDIA engineers have sent out an exciting set of Linux kernel patches for enabling NVIDIA vGPU software support for virtual GPU support among multiple virtual machines (VMs). In aiming for upstream-focused Linux support, this NVIDIA vGPU support is built around the adapted Nouveau driver with the code previously posted for splitting up the Nouveau/NVKM driver components.
A set of 29 patches under a “request for comments” flag were posted for adding vGPU support to the Nouveau NVKM driver code and then also introducing “vgpu_mgr” as a VFIO virtual GPU manager for NVIDIA GPUs. The NVIDIA vGPU approach is enterprise-focused and allows for splitting a physical GPU into virtual GPUs that can then each be assigned to multiple concurrently running virtual machines. Both Windows and Linux guest VMs are supported.
This upstream-focused code will work with NVIDIA Ada GPUs and newer.
NVIDIA engineer Zhi Wang has provided a sample video demonstration of the code in action:
As for NVIDIA’s plans around this new vGPU Linux kernel driver code, in response to one of the comments on the mailing list:
“This is intended to be a real product that customers would use, it is not a proof of concept. There is alot of demand for this kind of simplified virtualization infrastructure in the host side. The series here is the first attempt at making thin host infrastructure and Zhi/etc are doing it with an upstream-first approach.
From the VFIO side I would like to see something like this merged in nearish future as it would bring a previously out of tree approach to be fully intree using our modern infrastructure. This is a big win for the VFIO world.
As a commercial product this will be backported extensively to many old kernels and that is harder/impossible if it isn’t exclusively in C. So, I think nova needs to co-exist in some way.”
Those interested in learning more can see the detailed write-up as part of the RFC patch series laying out this NVIDIA vGPU code that hopes to work its way to the mainline Linux kernel.