Hypervisor GPU Scheduler for Virtualized Graphics Resource Allocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current solutions for using graphics processing unit (GPU) hardware in a Hypervisor virtual machine server environment do not allow efficient pre-emptive GPU hardware context switching based on load balancing algorithms or guest rendering patterns, leading to underutilization of host GPU resources due to lack of control over command buffer submission by the Hypervisor.

Innovation Solution

Implement a virtualization software that manages GPU resources through a GPU scheduler/Multi-GPU Manager, allowing the Hypervisor to gather performance data and dynamically allocate resources, enabling preemptive command buffer submission across multiple GPUs based on guest usage patterns and server management algorithms.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If guest software assumes it owns the GPU completely and sends command buffers without Hypervisor knowledge, then guest software operation is simplified, but host GPU resources are underutilized

Engineering Contradiction:
Improveguest software operationVSAvoidhost GPU utilization
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent introduces a Hypervisor as an intermediary layer between guest software and host GPU resources. The Hypervisor intercepts command buffers from guest software, analyzes them, and redirects them to appropriate GPUs based on load balancing algorithms and resource availability. This mediator approach maintains guest software simplicity while enabling efficient host GPU utilization through centralized control.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If Hypervisor controls command buffer submission to multiple host GPUs, then GPU resource utilization is improved, but system complexity increases

Engineering Contradiction:
ImproveGPU resource utilizationVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements feedback mechanisms where the Hypervisor continuously monitors GPU performance data, load metrics, and resource availability. Based on this feedback, the Hypervisor dynamically adjusts command buffer routing decisions and load balancing strategies. This feedback-driven approach enables efficient resource utilization while managing system complexity through adaptive control rather than static complex configurations.

Inventive Principle:
Principle #23Feedback

3Productivity

If preemptive GPU hardware context switching is implemented based on load balancing, then resource allocation efficiency is improved, but processing time overhead increases

Engineering Contradiction:
Improveresource allocation efficiencyVSAvoidprocessing time overhead
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent implements preliminary action by having the Hypervisor pre-analyze command buffers before submission to GPUs, identifying appropriate target GPUs based on predicted load conditions and resource availability. The Hypervisor also pre-establishes routing tables and load balancing policies, so that actual command buffer redirection requires minimal processing time. This preliminary preparation reduces the time overhead of preemptive context switching while maintaining efficient resource allocation.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10109099B2Method and apparatus for efficient use of graphics processing resources in a virtualized execution enviornment
Publication Date: 2018.10.23 INTEL CORP
  • US10109099B2 patent drawing
  • US10109099B2 patent drawing
  • US10109099B2 patent drawing

AI summary

An apparatus and method are described for an efficient multi-GPU virtualization environment. For example, one embodiment of an apparatus comprises: a plurality of graphics processing units (GPUs) to be shared by a plurality of virtual machines (VMs) within a virtualized execution environment; a shared memory to be shared between the plurality of VMs and GPUs executed within the virtualized graphics execution environment; the GPUs to collect performance data related to execution of commands within command buffers submitted by the VMs, the GPUs to store the performance data within the shared memory; and a GPU scheduler and/or driver to schedule subsequent command buffers to the GPUs based on the performance data.