Self-tuning Thread Dispatch Policy for GPU Resource Contention

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current graphics processing systems face inefficiencies in thread dispatch due to fixed thread execution policies, which do not adapt effectively to varying hardware resource usage across frames, leading to suboptimal performance in graphics and compute operations.

Innovation Solution

A self-tuning thread dispatch policy that adjusts the number of threads dispatched based on the relative execution times and shared hardware resource usage of previous frames, optimizing thread execution for subsequent frames.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a fixed thread execution policy is used, then the system structure is simple and easy to implement, but the processing efficiency deteriorates when hardware resource usage varies across frames

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidthread dispatch policy complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The thread dispatch policy transitions from a fixed static configuration to a dynamic adaptive system that automatically adjusts thread dispatch parameters based on real-time hardware resource usage metrics. The system monitors resource utilization across frames and dynamically modifies thread dispatch policies to optimize processing efficiency for varying workload conditions.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system implements a feedback mechanism where execution time and hardware resource usage from previous frames are measured and fed back to adjust the thread dispatch policy for subsequent frames. This closed-loop control enables the system to learn from past performance and continuously optimize thread dispatch decisions based on actual hardware conditions.

Inventive Principle:
Principle #23Feedback

2Productivity

If the number of threads dispatched is increased to maximize parallel processing, then processing throughput improves, but hardware resource contention increases leading to diminishing returns

Engineering Contradiction:
Improveprocessing throughputVSAvoidhardware resource contention
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The system dynamically changes the parameter of thread dispatch count based on monitored hardware resource usage and execution time metrics. Instead of using a fixed or maximally aggressive thread count, the system adjusts this parameter adaptively to find the optimal balance between throughput and resource contention, preventing diminishing returns from excessive parallelism.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If thread dispatch policy is optimized for one frame, then performance improves for that frame, but the policy becomes ineffective when hardware resource usage patterns change in subsequent frames

Engineering Contradiction:
Improveframe performanceVSAvoidpolicy adaptability to changing conditions
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The thread dispatch policy is transformed from a static optimized configuration into a dynamic adaptive system that automatically adjusts to changing hardware resource usage patterns. The system continuously monitors resource utilization and execution metrics across frames, enabling the policy to adapt its parameters to match current workload conditions rather than being locked into a single optimized configuration.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

A feedback loop is established where execution time and hardware resource usage from each frame are measured and used to adjust the thread dispatch policy for the next frame. This enables the system to respond to changing workload patterns and hardware conditions, maintaining optimal performance across varying scenarios rather than being effective only for a single frame type.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS20230195520A1Self-tuning thread dispatch policy
Publication Date: 2023.06.22 INTEL CORP
  • US20230195520A1 patent drawing
  • US20230195520A1 patent drawing
  • US20230195520A1 patent drawing

AI summary

Self-tuning thread dispatch policies are described herein. According to one example, a self-tuning thread dispatch policy uses the relative execution time for GPU engines from previous frames to modify the thread dispatch policy for a subsequent frame. In one example, a graphics processing device includes command processing circuitry to receive commands for a render engine and a compute engine of the GPU to render and process frames of an application. The graphics processing device also includes circuitry to determine the usage of shared hardware resources by the render engine and the compute engine for one or more frames of the application. The number of threads to dispatch to the shared hardware resources for a next frame can then be adjusted for the render engine or the compute engine based on the usage of the shared hardware resources for the previous one or more frames.