GPU Thread Dispatching for Parallelism Bottlenecks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional GPU thread dispatching methods, such as wavefront dispatching, often result in reduced parallelism due to spatial thread dependencies, leading to a computing penalty where dependent threads must wait for associated threads to finish execution before starting, limiting the interval between their executions.

Innovation Solution

The proposed solution involves dispatching associated threads followed by threads without dependencies, and then dependent threads on the earlier dispatched associated threads, thereby increasing the interval between dependent and associated thread executions, enhancing parallelism.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If wavefront dispatching is used to execute threads, then threads without dependencies are executed first, but dependent threads experience reduced parallelism and must wait for associated threads to finish

Engineering Contradiction:
ImproveparallelismVSAvoidwaiting time for dependent threads
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by identifying and dispatching associated threads (threads that other threads depend on) before dispatching the dependent threads themselves. This allows the dependent threads to be ready for execution as soon as their dependencies are satisfied, minimizing idle waiting time and maximizing parallelism utilization.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements dynamic thread dispatching by continuously tracking the execution status of threads and adjusting the dispatch order based on real-time dependency information. The system dynamically identifies which threads are ready to execute by checking if their associated threads have completed, allowing flexible adaptation to the actual execution progress rather than following a fixed wavefront pattern.

Inventive Principle:
Principle #15Dynamics

2Stability of the object's composition

If dependent threads are dispatched last in wavefront dispatching, then dependency ordering is maintained, but the interval between dependent and associated thread executions is limited

Engineering Contradiction:
Improvedependency orderingVSAvoidexecution interval
Core Design Contradiction:
Stability of the object's compositionVSProductivity

Solution Approach 1:

The system performs preliminary identification of dependency relationships between threads before execution begins. By pre-analyzing which threads depend on which associated threads, the system can plan an optimized dispatch sequence that maintains correct dependency ordering while maximizing the execution interval between associated and dependent threads.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent employs feedback mechanisms by continuously monitoring the completion status of associated threads and using this information to trigger the dispatch of dependent threads at the optimal moment. This feedback loop ensures that dependency ordering is maintained while minimizing idle time, as dependent threads are dispatched as soon as their prerequisites are satisfied.

Inventive Principle:
Principle #23Feedback

Data Source

PatentEP3230945B1Thread dispatching for graphics processors
Publication Date: 2024.09.11 INTEL CORP
  • EP3230945B1 patent drawingFigure 1
  • EP3230945B1 patent drawingFigure 2
  • EP3230945B1 patent drawingFigure 3~4

AI summary

Techniques to dispatch threads of a graphics kernel for execution to increase the interval between dependent threads and the associated are disclosed. The dispatch interval may be increased by dispatching associated threads, followed by threads without any dependencies, followed by threads dependent on the earlier dispatched associated threads. As such, the interval between dependent threads and their associated threads can be increased, leading to increased parallelism.