GPU Scheduler Dynamic Time Allocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern GPUs face challenges in efficiently scheduling multiple graphics-rich processes on a single GPU, leading to performance issues like frame rate drops due to insufficient processing time allocation, where one process exceeding its time allocation can negatively impact others, and existing scheduling methods fail to effectively prioritize and penalize such processes.

Innovation Solution

A GPU scheduler is introduced that dynamically allocates processing time based on the ratio of requested times, penalizes processes that exceed their allocated time by reducing their future allocations, and prioritizes tasks to ensure each process receives sufficient time, preventing performance degradation for other processes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a single GPU processes multiple games or graphics-rich processes simultaneously, then the GPU utilization is improved and more applications can run, but the processing time allocation becomes insufficient leading to frame rate drops and performance degradation

Engineering Contradiction:
ImproveGPU utilizationVSAvoidframe rate stability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements a dynamic scheduling system that adjusts the time allocation for each process based on real-time performance monitoring. The scheduler continuously monitors frame rates and processing times, dynamically reallocating GPU time slots to maintain minimum frame rate requirements while maximizing overall GPU utilization across multiple concurrent processes.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system employs feedback mechanisms where the scheduler monitors the actual performance of each process (frame rates, processing completion times) and uses this information to adjust future scheduling decisions. When a process fails to meet its minimum frame rate requirement, the system detects this through feedback and reallocates additional time to that process in subsequent cycles, ensuring performance stability.

Inventive Principle:
Principle #23Feedback

2Duration of action of moving object

If one process exceeds its allocated processing time, then that process can complete its tasks, but other processes are penalized and their frame rates drop

Engineering Contradiction:
Improveprocessing time completionVSAvoidother processes frame rate
Core Design Contradiction:
Duration of action of moving objectVSProductivity

Solution Approach 1:

The scheduler monitors whether processes complete within their allocated time slots and uses this feedback to adjust future allocations. When a process exceeds its time allocation, the system detects this overrun and compensates by allocating additional time to affected processes in subsequent scheduling cycles, ensuring that no process is permanently penalized for another's excessive usage.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system dynamically changes the time allocation parameter for each process based on observed behavior. Processes that consistently exceed their time allocations have their allocated time increased, while processes that complete early may have their time reduced or reallocated, creating a flexible system that adapts to actual workload requirements rather than enforcing rigid time limits.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If the GPU allocates sufficient processing time to each process to maintain minimum frame rates, then performance stability is improved, but the total processing capacity is exceeded and the system cannot handle all processes simultaneously

Engineering Contradiction:
Improveminimum frame rate guaranteeVSAvoidtotal processing capacity
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements dynamic time slot allocation that adjusts based on process priority, historical performance, and current system load. High-priority processes or those struggling to meet minimum frame rates receive larger time allocations, while well-performing processes receive smaller allocations, allowing the system to guarantee minimum performance levels while maximizing total processing capacity utilization.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the time allocation parameter dynamically based on multiple factors including process priority levels, observed frame rate performance, and overall system utilization. This allows the GPU to handle more processes than would be possible with fixed equal-time allocation, as resources are continuously redistributed to match actual needs and priorities.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS9947068B2System and method for GPU scheduling
Publication Date: 2018.04.17 ELECTRONIC ARTS INC
  • US9947068B2 patent drawing
  • US9947068B2 patent drawing
  • US9947068B2 patent drawing

AI summary

A computer-implemented method, apparatus and computer program product for scheduling tasks, the method comprising: receiving a request from a context for processing a frame by a Graphic Processing Unit (GPU); allocating frame processing time for the context in association with the frame; receiving a command buffer associated with the frame; subject to a pending command buffer collection being empty, submitting the command buffer for processing by the GPU; determining priorities for all command buffers in the pending command buffer collection, including a priority for the command buffer; if the highest priority command buffer is the command buffer, submitting the command buffer for processing; otherwise adding the command buffer to the pending command buffer collection, wherein the frame processing time allocated for the context is reduced by an amount of time related to a time a previous frame associated with the context exceeded its allocated processing time.