Blog
GPU Virtualization for Shared On-Premises AI Infrastructure
How to use MIG, vGPU, and time-slicing techniques to maximize GPU utilization and enable multi-team access to shared on-premises AI compute resources.
The GPU Utilization Problem in Enterprise AI
Most enterprise on-premises GPU clusters operate at surprisingly low average utilization. Individual teams request dedicated GPUs for their workloads, those GPUs sit idle between inference bursts or training runs, and the organization pays for expensive hardware that spends most of its time doing nothing. Utilization rates of 15-30% are common in environments without virtualization.
GPU virtualization solves this by allowing multiple workloads to share a single physical GPU safely, with isolation guarantees that prevent one team's workload from affecting another's performance or accessing their memory space. The technology has matured significantly, and modern NVIDIA GPUs offer multiple approaches depending on your isolation requirements, workload characteristics, and hardware generation.
Choosing the right virtualization strategy requires understanding the tradeoffs between isolation strength, scheduling flexibility, and performance overhead. There is no single best approach; most production environments use a combination of techniques matched to different workload types.
Multi-Instance GPU (MIG): Hardware-Level Partitioning
Multi-Instance GPU, available on NVIDIA A100, A30, H100, and newer architectures, partitions a single physical GPU into up to seven independent instances at the hardware level. Each instance gets dedicated compute units, memory bandwidth, and L2 cache. A fault in one instance cannot affect another because the isolation is enforced by the GPU hardware itself.
MIG is ideal for inference workloads that need guaranteed performance but do not require an entire GPU. A single H100 can be partitioned to serve seven different models simultaneously, each with predictable latency characteristics that are unaffected by what the other partitions are doing. This makes MIG well-suited for SLA-bound production inference where latency consistency matters more than raw throughput.
The tradeoff is rigidity. MIG partitions must be configured statically and cannot be resized without stopping all workloads on the GPU. The partition sizes follow fixed profiles (1g, 2g, 3g, 4g, 7g on H100), so you cannot create arbitrary splits. Planning MIG allocations requires understanding your workload memory and compute requirements in advance.
In practice, configure MIG profiles during maintenance windows based on workload demand patterns from the previous period. Reserve larger profiles (3g or 4g) for latency-sensitive production models, and use smaller profiles (1g or 2g) for development, testing, or low-traffic internal services.
vGPU: Hypervisor-Mediated Sharing
NVIDIA vGPU (Virtual GPU) uses a hypervisor layer to present virtual GPU devices to virtual machines. Each VM sees what appears to be a dedicated GPU, but the physical GPU is shared across multiple VMs through time-division multiplexing managed by the NVIDIA vGPU software.
vGPU's primary advantage is integration with existing virtualization infrastructure. If your organization already runs VMware vSphere, KVM, or Citrix Hypervisor, vGPU extends the same management paradigm to GPU resources. IT teams can allocate GPU capacity through familiar tooling, apply the same security policies, and manage GPU resources alongside CPU and memory in unified orchestration.
The overhead is measurable: expect 5-15% performance reduction compared to bare-metal access, depending on workload characteristics and contention levels. For inference workloads, this overhead is usually acceptable. For large-scale training runs that need every available FLOP, vGPU adds cost without proportional benefit.
vGPU licensing adds operational cost beyond the hardware. Factor this into your total cost of ownership calculations. For pure AI inference clusters, MIG or time-slicing may be more cost-effective. vGPU makes the most sense when GPU workloads coexist with traditional virtualized infrastructure and unified management is a priority.
Time-Slicing: Kubernetes-Native GPU Sharing
Time-slicing is the simplest form of GPU sharing and requires no special hardware features. The NVIDIA device plugin for Kubernetes can expose a single GPU as multiple virtual devices, and the GPU scheduler rotates between workloads using temporal multiplexing. Each workload gets periodic exclusive access to the full GPU.
The appeal of time-slicing is simplicity and flexibility. It works on any NVIDIA GPU, requires only a configuration change in the device plugin, and integrates natively with Kubernetes resource requests. You can oversubscribe a GPU by any factor, allowing ten or twenty pods to share a single device.
The significant downside is the absence of memory isolation. All workloads sharing a time-sliced GPU share the same memory space. A workload that allocates excessive GPU memory will cause out-of-memory errors for other tenants. There is also no performance isolation: a computationally intensive workload will starve other workloads of time slices.
Time-slicing works well for development and testing environments where teams need occasional GPU access for experimentation and the consequences of interference are low. It is not suitable for production inference with SLA requirements. Pair time-slicing with resource quotas and monitoring to detect and evict workloads that consume disproportionate resources.
Designing a Multi-Tier Virtualization Strategy
Production environments benefit from combining these approaches in a tiered architecture. Tier 1 uses MIG for production inference workloads with strict latency SLAs. Tier 2 uses vGPU or MIG for staging and pre-production validation. Tier 3 uses time-slicing for development, experimentation, and batch processing.
Implement this through Kubernetes node pools or labels. Tag GPU nodes with their virtualization tier and use node affinity rules to schedule workloads appropriately. A production inference deployment targets MIG-partitioned nodes, while a developer's notebook server is scheduled on time-sliced nodes.
Capacity planning changes significantly with virtualization. Instead of counting physical GPUs, plan in terms of effective GPU-fractions available per tier. A cluster of eight H100 GPUs with MIG at 4g profiles provides 16 effective inference slots in Tier 1. The same eight GPUs time-sliced at 4x oversubscription provide 32 development slots in Tier 3. This arithmetic drives hardware procurement decisions.
Monitor utilization at the partition level, not the physical GPU level. A GPU that shows 60% utilization overall might have one MIG partition at 95% and another at 25%. Partition-level metrics drive rebalancing decisions and reveal whether your profiles match actual workload requirements.
Operational Considerations and Governance
GPU virtualization introduces governance challenges that must be addressed through policy and tooling. Define a clear allocation model: which teams get guaranteed MIG partitions, how time-slice priorities are managed, and what happens when demand exceeds capacity.
Implement a request workflow where teams declare their GPU requirements (memory, compute, isolation level, duration) and a platform team or automated system matches requests to appropriate virtualization tiers. This prevents the common failure mode where every team requests dedicated GPUs "just in case" and utilization collapses.
Set up chargeback or showback based on actual consumption at the partition level. When teams see the cost of their reserved MIG partitions versus their actual utilization, behavior changes. Idle reservations get released, batch jobs get scheduled during off-peak hours, and the organization gets more value from the same hardware.
Plan for GPU driver and firmware updates carefully. MIG reconfiguration requires draining all partitions on a GPU, and vGPU updates may require VM migration or downtime. Build these maintenance operations into your change management process and maintain enough spare capacity that individual GPUs can be taken offline without service impact.
Featured image by Andrey Matveev on Unsplash.