GPU Self-Throttling via Timeline Callbacks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional systems face challenges in predicting GPU frame rendering times, leading to underutilization of the GPU due to reliance on CPU timelines, which are often too late to correct issues in preceding frames, resulting in inefficient resource management.

Innovation Solution

The implementation of GPU self-throttling techniques that utilize timing information from the GPU timeline by inserting callbacks to determine elapsed time for unpredictable work, allowing for dynamic decision-making to throttle optional/non-critical frame processing based on configurable thresholds, thereby optimizing workload distribution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If CPU timeline is used to time rendering and take corrective action, then timing control is achieved, but the corrective action is too late to fix preceding frames and GPU utilization is reduced

Engineering Contradiction:
Improvetiming correction latencyVSAvoidGPU utilization
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The GPU timeline self-monitors its own processing time by inserting callbacks that measure elapsed time for unpredictable work. The GPU makes self-correction decisions about throttling optional work based on its own performance data, eliminating the need for CPU intervention and enabling real-time adaptive workload management.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

Callbacks are inserted into the GPU timeline to measure actual processing time of unpredictable work. This feedback loop allows the system to compare expected versus actual processing time and dynamically adjust workload by throttling optional portions when necessary, creating a closed-loop control system.

Inventive Principle:
Principle #23Feedback

2Reliability

If worst case scenario is assumed for frame processing, then timing safety is ensured, but GPU is under-utilized much of the time

Engineering Contradiction:
Improvetiming safetyVSAvoidGPU utilization
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system dynamically adjusts the processing level based on actual measured performance. Instead of static worst-case assumptions, the GPU timeline adaptively determines whether to perform heavy or light processing by measuring elapsed time and comparing it against thresholds, optimizing GPU utilization while maintaining timing safety.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the processing parameters (heavy vs. light processing) based on measured elapsed time. When elapsed time exceeds the threshold, the system switches to light processing for optional portions; when under the threshold, heavy processing is performed, creating a parameter-adaptive system.

Inventive Principle:
Principle #35Parameter changes

3Manufacturing precision

If heavy processing is performed for all frames, then processing quality is maintained, but GPU resources are wasted when unpredictable work exceeds timing thresholds

Engineering Contradiction:
Improveprocessing qualityVSAvoidGPU resource waste
Core Design Contradiction:
Manufacturing precisionVSLoss of energy

Solution Approach 1:

The system performs full heavy processing only when necessary (when elapsed time is under threshold). When elapsed time exceeds the threshold, it applies partial action by throttling optional portions of the workload, reducing GPU resource consumption while maintaining acceptable processing quality for critical portions.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS8780120B2GPU self throttling
Publication Date: 2014.07.15 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8780120B2 patent drawing
  • US8780120B2 patent drawing
  • US8780120B2 patent drawing

AI summary

Techniques for GPU self throttling are described. In one or more embodiments, timing information for GPU frame processing is obtained using a timeline for the GPU. This may occur by inserting callbacks into the GPU processing timeline. An elapsed time for unpredictable work that is inserted into the GPU workload is determined based on the obtained timing information. A decision is then made regarding whether to “throttle” designated optional/non-critical portions of the work for a frame based on the amount of elapsed time. In one approach the elapsed time is compared to a configurable timing threshold. If the elapsed time exceeds the threshold, work is throttled by performing light or no processing for one or more optional portions of a frame. If the elapsed time is less than the threshold, heavy processing (e.g., “normal” work) is performed for the frame.