Thread Group Divergence Optimization in Graphics Processors

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing graphics processing systems face inefficiencies in processing divergent threads due to branch instructions and predicated instructions, leading to reduced throughput and increased latency.

Innovation Solution

The technology optimizes divergent processing by grouping execution threads into thread groups and using an execution thread issuing circuit to determine whether active threads from different thread groups use different execution lanes, allowing simultaneous execution across multiple lanes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If threads are processed sequentially in lockstep within a thread group, then instruction fetch and scheduling resources can be shared, but execution lanes are underutilized when divergent processing occurs

Engineering Contradiction:
Improveinstruction fetch and scheduling resourcesVSAvoidexecution lane utilization
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent segments thread groups into multiple sub-groups based on divergence characteristics. Each sub-group is processed independently on separate execution lanes, allowing parallel execution of divergent threads while maintaining resource sharing within each sub-group. This segmentation resolves the contradiction by enabling both resource efficiency and lane utilization.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension of processing by allowing different thread groups to be processed simultaneously on different execution lanes rather than strictly sequentially. This dimensional change in the processing architecture enables parallel execution of divergent threads across multiple lanes while maintaining the lockstep execution model within each lane.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Loss of energy

If divergent threads are processed by restricting active lanes to only those needed by the subset of threads, then resource consumption is reduced, but throughput decreases

Engineering Contradiction:
Improveresource consumptionVSAvoidthroughput
Core Design Contradiction:
Loss of energyVSProductivity

Solution Approach 1:

The patent segments the thread group into multiple sub-groups based on their divergence patterns. Each sub-group is assigned to a separate execution lane, allowing all lanes to remain active simultaneously processing different sub-groups. This eliminates the need to restrict lane activity while maintaining efficient resource usage within each lane.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent merges multiple sub-group processing operations across different execution lanes into a unified processing framework. By coordinating the execution of multiple sub-groups across multiple lanes, the system achieves high throughput while maintaining efficient resource consumption through the segmented approach.

Inventive Principle:
Principle #5Merging (Combining)

3Productivity

If multiple thread groups with divergent processing are executed simultaneously, then throughput increases, but resource contention increases

Engineering Contradiction:
ImprovethroughputVSAvoidresource contention
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments thread groups into sub-groups that are processed on dedicated execution lanes, reducing resource contention by isolating resource usage within each lane. This segmentation allows multiple thread groups to execute simultaneously with minimal interference between them.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary analysis of thread group divergence characteristics before execution, organizing threads into sub-groups that will be processed on specific lanes. This preliminary organization prevents resource contention during execution by pre-assigning resources based on predicted usage patterns.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS12223325B2Apparatus and method of optimizing divergent processing in thread groups preliminary class
Publication Date: 2025.02.11 ARM LTD
  • US12223325B2 patent drawing
  • US12223325B2 patent drawing
  • US12223325B2 patent drawing

AI summary

A data processor is disclosed in which groups of execution threads comprising a thread group can execute a set of instructions in lockstep, and in which a plurality of execution lanes can perform processing operations for the execution threads. In response to an execution thread issuing circuit determining whether a portion of active threads of a first thread group and a portion of active threads of a second thread group use different execution lanes of the plurality of execution lanes, the execution thread issuing circuit issuing both the portion of active threads of a first thread group and a portion of active threads of a second thread group for execution. This can have the effect of increasing data processor efficiency, thereby increasing throughput and reducing latency.