Intelligent GPU Scheduler for Virtualization Deadlock Prevention

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current GPU virtualization technologies face challenges in efficiently scheduling GPU commands across multiple virtual machines, leading to potential deadlocks and inefficiencies due to cross-buffer dependencies, which affect performance in computing systems.

Innovation Solution

The implementation of an intelligent GPU scheduler module that dynamically selects between per-ring and gang scheduling policies based on GPU command attributes and dependencies, allowing for context-switching and synchronization to avoid deadlocks while optimizing resource utilization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a fixed scheduling policy is used for GPU commands in virtualized environments, then the scheduling process is simple and deterministic, but it cannot adapt to cross-buffer dependencies leading to deadlocks and reduced performance

Engineering Contradiction:
Improvescheduling policy adaptabilityVSAvoidscheduler complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements dynamic scheduling policy selection that adapts to the specific characteristics of each GPU command submission. The scheduler evaluates command attributes such as buffer dependencies, virtual machine priorities, and resource availability to dynamically choose between different scheduling policies (e.g., round-robin, priority-based, deadline-monotonic). This dynamic adaptation resolves the contradiction by making the scheduler flexible enough to handle cross-buffer dependencies and avoid deadlocks while maintaining manageable complexity through systematic decision-making rules.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent incorporates feedback mechanisms where the scheduler continuously monitors system state including command buffer dependencies, virtual machine performance metrics, and GPU resource utilization. Based on this feedback, the scheduler adjusts scheduling policy selections in real-time to optimize performance and prevent deadlocks. The feedback loop enables the system to learn from past scheduling decisions and adapt to changing workload characteristics, resolving the contradiction between adaptability and complexity through data-driven decision making.

Inventive Principle:
Principle #23Feedback

2Productivity

If the scheduler evaluates all GPU commands from all virtual machines, then scheduling decisions are optimized for overall system performance, but the evaluation process becomes computationally expensive and time-consuming

Engineering Contradiction:
ImproveGPU command processing throughputVSAvoidscheduling decision time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent segments the GPU command evaluation process into hierarchical levels: virtual machine-level evaluation, command buffer-level evaluation, and individual command evaluation. This segmentation allows the scheduler to first filter and prioritize at the virtual machine level, then focus detailed evaluation only on relevant command buffers and commands. By dividing the evaluation workload into manageable segments, the system achieves optimized scheduling decisions without the full computational expense of evaluating every single command from every virtual machine simultaneously, thus resolving the contradiction between productivity and time loss.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements preliminary evaluation and filtering of GPU commands before final scheduling decisions. Virtual machines and command buffers are pre-assessed based on their dependency characteristics, priority levels, and resource requirements. Commands that can be safely executed without extensive evaluation are identified and scheduled quickly, while only those requiring complex dependency resolution undergo full evaluation. This preliminary action reduces the average scheduling decision time while maintaining overall system productivity by avoiding unnecessary full evaluations.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If cross-buffer dependencies are strictly enforced to prevent deadlocks, then system reliability improves, but scheduling flexibility decreases leading to reduced GPU utilization

Engineering Contradiction:
Improvedeadlock preventionVSAvoidGPU utilization efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent dynamically changes scheduling parameters such as priority levels, time quotas, and resource allocation based on the detected dependency characteristics of command buffers. When cross-buffer dependencies are identified, the scheduler adjusts parameters to maintain reliability (prevent deadlocks) while minimizing impact on productivity. For example, it may temporarily adjust priority assignments or time slicing parameters to allow safe progression of dependent commands without completely blocking GPU utilization. This parameter adaptation resolves the contradiction by maintaining reliability through controlled adjustments rather than rigid enforcement that would reduce productivity.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10970129B2Intelligent GPU scheduling in a virtualization environment
Publication Date: 2021.04.06 INTEL CORP
  • US10970129B2 patent drawing
  • US10970129B2 patent drawing
  • US10970129B2 patent drawing

AI summary

Technologies for scheduling workload submissions for a graphics processing unit (GPU) in a virtualization environment include a GPU scheduler embodied in a computing device. The virtualization environment includes a number of different virtual machines that are configured with a native graphics driver. The GPU scheduler receives GPU commands from the different virtual machines, dynamically selects a scheduling policy, and schedules the GPU commands for processing by the GPU.