Compute Unit Wavefront Sorting for SIMD Divergence Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Single-instruction multiple-data (SIMD) processors experience a slowdown due to divergent control flow, where different execution paths are serialized, leading to inefficiencies in parallel processing.

Innovation Solution

Reorganize execution items across wavefronts of a workgroup or within a wavefront by identifying control flow targets and sorting execution items based on these targets, reducing divergence by grouping similar paths together.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If execution items are executed in parallel using SIMD architecture, then processing throughput is improved, but control flow divergence causes serialization and reduces efficiency

Engineering Contradiction:
Improveprocessing throughputVSAvoidexecution time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by sorting execution items before they reach the divergent control flow point. The sorting is performed in advance based on predicted control flow targets, so that when divergence occurs, execution items with the same target are already grouped together in contiguous lanes. This pre-organization reduces the need for serialization during actual execution, maintaining parallel throughput while minimizing execution time loss.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent segments execution items into groups based on their control flow targets. By dividing the execution item stream into segments that share common control flow destinations, the system can process each segment in parallel without serialization. This segmentation allows different groups of execution items to follow different control paths simultaneously, resolving the contradiction between parallel throughput and execution time.

Inventive Principle:
Principle #1Segmentation

2Reliability

If control flow paths are serialized to handle divergence, then correctness is maintained, but processing efficiency deteriorates

Engineering Contradiction:
Improvecontrol flow correctnessVSAvoidparallel processing efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies dynamics by making the control flow behavior adaptive based on the sorted arrangement of execution items. The system dynamically determines which execution items can proceed in parallel versus which require serialization, based on their grouped control flow targets. This dynamic approach maintains correctness by properly handling divergence while maximizing parallel efficiency by allowing contiguous lanes with the same target to execute simultaneously.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent applies local quality by allowing different control flow behaviors for different groups of execution items. Execution items with the same control flow target maintain full parallelism, while items with different targets are serialized only when necessary. This localized optimization ensures correctness for each control path while preserving parallel efficiency where possible.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS20250362914A1Compute unit sorting for reduced divergence
Publication Date: 2025.11.27 ADVANCED MICRO DEVICES INC
  • US20250362914A1 patent drawing
  • US20250362914A1 patent drawing
  • US20250362914A1 patent drawing

AI summary

A method and apparatus for reducing divergence of control flow when executing multiple execution items in parallel are disclosed. The method comprises, at a point of divergent control flow, for each execution item, identifying a control flow target that designates a respective post-divergence code path; sorting the execution items in accordance with the identified control flow targets to obtain sorted execution-item groups; redistributing the execution items between distinct wavefronts of a workgroup or different time slots within a wavefront so that, within at least one wavefront or time slot, a greater proportion of the execution items share a common control flow target than prior to the redistribution; and continuing execution of the execution items after the point of divergent control flow using the redistributed execution items.