NVIDIA vGPU doesn’t actually virtualize the GPU hardware itself; it partitions it.

Let’s see it in action. Imagine a single NVIDIA A100 GPU. With vGPU, we can carve this up into multiple virtual GPUs (vGPUs). A user on a VM can then be assigned one of these vGPUs, getting dedicated performance without needing a physical GPU per user.

Here’s a typical setup:

Host Server:

  • NVIDIA A100 GPU
  • NVIDIA AI Enterprise (or a compatible vGPU licensing server)
  • ESXi, KVM, or Hyper-V hypervisor
  • NVIDIA vGPU drivers installed on the host

Virtual Machine:

  • Windows 10/11 or Linux guest OS
  • NVIDIA vGPU drivers installed within the VM
  • A vGPU profile assigned (e.g., NVIDIA-GRID-vWS-24GB)

When a VM boots and loads its vGPU driver, it communicates with the NVIDIA vGPU software running on the host. The host software, in turn, ensures that the VM is allocated a specific slice of the physical GPU’s resources – memory, compute units, and display controllers. This slice is presented to the VM’s guest OS as if it were a dedicated, physical GPU. The hypervisor manages the VM’s access to this allocated vGPU, ensuring isolation and scheduling.

This whole setup solves the problem of providing GPU acceleration to multiple users or applications running in virtualized environments without the cost and complexity of one physical GPU per user. It’s crucial for workloads like CAD, virtual desktop infrastructure (VDI), AI/ML development, and high-performance computing where GPU power is essential but needs to be shared efficiently.

The core concept is time-slicing and memory partitioning. The NVIDIA vGPU software, managed by the NVIDIA driver on the host, orchestrates access to the physical GPU. It schedules compute tasks from different VMs onto the GPU’s cores and manages the GPU’s memory, allocating dedicated chunks to each vGPU. This isn’t a full hardware virtualization; it’s a sophisticated software layer that abstracts and partitions the physical GPU’s capabilities.

When you configure a vGPU profile, say NVIDIA-GRID-vWS-16GB, you’re telling the system to reserve 16GB of the physical GPU’s VRAM for this vGPU and to allocate a proportional amount of the GPU’s compute resources. The hypervisor then presents this virtualized GPU to the VM. The guest OS sees it as a physical GPU and installs its corresponding driver. The vGPU driver in the guest OS then communicates with the host driver, and the host driver ensures that the VM’s requests are serviced by its allocated portion of the physical GPU.

A common pitfall is assuming the hypervisor handles the vGPU allocation directly. In reality, the NVIDIA vGPU driver on the host is the primary orchestrator of vGPU partitioning. The hypervisor’s role is to manage the VM’s access to the vGPU device that the host driver has presented, but the driver itself is responsible for the actual division of the physical GPU’s resources.

The next step is understanding how different vGPU profiles impact performance and density.

Want structured learning?

Take the full Gpu course →