Dynamic GPU Scheduling for Virtual Machine Deadlock Prevention

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

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

Innovation Solution

A dynamic GPU scheduler module that selects between per-ring and gang scheduling policies based on command buffer dependencies, allowing for intelligent switching between policies to avoid deadlocks and optimize resource usage, ensuring efficient execution of GPU commands across virtual machines.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If per-ring scheduling policy is used to improve GPU command execution efficiency, then productivity increases, but cross-buffer dependencies cause deadlocks and reliability deteriorates

Engineering Contradiction:
ImproveGPU command execution efficiencyVSAvoiddeadlock prevention
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system dynamically switches between per-ring scheduling and gang scheduling policies based on detected cross-buffer dependencies. When dependencies are detected, the scheduler transitions to gang scheduling to prevent deadlocks; when no dependencies exist, it uses per-ring scheduling for maximum efficiency. This dynamic adaptation resolves the contradiction by adjusting the scheduling behavior in real-time according to system state.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The scheduling policy parameter is changed from static to dynamic, allowing the system to select between different scheduling modes (per-ring vs. gang) based on the presence of cross-buffer dependencies. This parameter change enables the system to optimize for either productivity or reliability depending on current workload characteristics.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If gang scheduling policy is used to prevent deadlocks through coordinated buffer management, then reliability improves, but resource utilization efficiency deteriorates due to reduced parallelism

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

Solution Approach 1:

The system uses dynamic policy selection to apply gang scheduling only when cross-buffer dependencies are detected, rather than using it continuously. This allows the system to maintain high resource utilization efficiency by using per-ring scheduling for independent buffers while switching to gang scheduling only when necessary for deadlock prevention.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The scheduling policy parameter is adjusted based on the detection of cross-buffer dependencies, enabling the system to optimize for reliability when needed and for productivity when possible, thereby resolving the contradiction between deadlock prevention and resource utilization efficiency.

Inventive Principle:
Principle #35Parameter changes

3Device complexity

If a single scheduling policy is used to simplify system complexity, then device complexity decreases, but adaptability to different workload patterns deteriorates

Engineering Contradiction:
Improvescheduling system simplicityVSAvoidworkload pattern adaptability
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The system implements dynamic policy selection that automatically adapts to different workload patterns by detecting cross-buffer dependencies and selecting appropriate scheduling policies. This dynamic approach provides adaptability to various workload characteristics while maintaining relatively simple system architecture through automated decision-making.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The scheduler performs self-service by automatically detecting cross-buffer dependencies and selecting appropriate scheduling policies without external intervention. This self-adaptation mechanism provides versatility across different workload patterns while keeping the system architecture simple, as the scheduler autonomously manages its own policy selection.

Inventive Principle:
Principle #25Self-service

Data Source

PatentEP3866007B1Intelligent GPU scheduling in a virtualization environment
Publication Date: 2024.07.10 INTEL CORP
  • EP3866007B1 patent drawingFigure 1
  • EP3866007B1 patent drawingFigure 2~3
  • EP3866007B1 patent drawingFigure 4

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.