Streaming Wave Coalescer Spill-After Lane Swap

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The throughput of SIMD micro-architectures is hindered by divergent points in execution, which cause parallel lanes to become inactive, leading to reduced performance.

Innovation Solution

The implementation of a streaming wave coalescer (SWC) circuit that performs a spill-after operation when swapping lanes between waves, reducing the need for temporary data storage and minimizing latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional lane swapping is used, then thread migration between parallel lanes is achieved, but temporary data storage is required and latency increases

Engineering Contradiction:
Improvethread migration efficiencyVSAvoidlatency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by performing the spill operation after the lane swap is identified but before the actual data transfer begins. The system pre-determines which lanes need to be swapped and prepares the spill buffer allocation in advance, allowing the actual data migration to occur with minimal latency once the swap decision is made.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary mechanism where the spill buffer acts as a temporary holding area that enables lane swapping without requiring permanent temporary storage structures. The spill buffer is allocated dynamically and used only during the lane swap operation, eliminating the need for dedicated temporary storage resources and reducing overall latency.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If more temporary data storage is used, then lane swapping can be performed, but hardware resource efficiency decreases

Engineering Contradiction:
Improvelane swapping capabilityVSAvoidhardware resource usage
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies discarding and recovering by treating the spill buffer as a temporary resource that is allocated only when needed for lane swapping and then discarded after use. Instead of maintaining permanent temporary storage structures, the system recycles the spill buffer allocation after the lane swap operation completes, significantly reducing hardware resource usage and improving efficiency.

Inventive Principle:
Principle #34Discarding and recovering

Solution Approach 2:

The patent introduces dynamics by making the spill buffer allocation dynamic rather than static. The spill buffer is allocated and deallocated based on the actual needs of lane swap operations, allowing the hardware resources to be adapted dynamically to workload requirements rather than being reserved permanently, thus improving hardware resource efficiency.

Inventive Principle:
Principle #15Dynamics

3Productivity

If spill-before operation is used, then lane swapping is enabled, but more temporary data storage is required

Engineering Contradiction:
Improvelane swapping functionalityVSAvoidtemporary data storage
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent applies the other way round by inverting the traditional spill-before approach to a spill-after operation. Instead of spilling data before the lane swap and then reading it back, the system spills data after the lane swap has been identified, using the spill buffer only for the duration of the actual data transfer. This inversion significantly reduces the quantity of temporary data storage required.

Inventive Principle:
Principle #13The other way round (Inversion)

Data Source

PatentUS20250130811A1Spill-After Programming Model for the Streaming Wave Coalescer
Publication Date: 2025.04.24 ADVANCED MICRO DEVICES INC
  • US20250130811A1 patent drawing
  • US20250130811A1 patent drawing
  • US20250130811A1 patent drawing

AI summary

An apparatus and method for efficiently migrating the execution of threads between multiple parallel lanes of execution. In various implementations, a computing system includes multiple vector processing circuits of a compute circuit that executes multiple lanes of multiple waves. Each lane includes a key indicating a path of execution. When a lane of the multiple lanes of execution executes a stream wave coalescing (SWC) reorder instruction, a control circuit compares keys of waves that have previously executed the SWC reorder instruction. When the number of lanes with a matching key exceeds a threshold and after identifying at least this number of lanes to swap, the control circuit swaps continuation state information (live active state information) between lanes of an emitting wave that do not have a matching key and lanes of contributing waves that do have a matching key. The resulting (reordered) emitting wave executes more efficiently, which increases performance.