Workitem Synchronization via Program Counter Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional workitem synchronization techniques, such as those in OpenCL, are inadequate for handling divergent control flows in heterogeneous computing systems, leading to inefficiencies and processing overheads, particularly when executing non-graphics processing tasks.

Innovation Solution

The introduction of explicit synchronization instructions in the instruction stream allows workitems with divergent control flows to synchronize without requiring active waiting, using program counters to manage execution and convergence points, enabling flexible synchronization across divergent paths.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional workitem synchronization techniques (e.g., OpenCL barriers) are used, then workitems can be synchronized, but processing overhead increases and efficiency decreases when handling divergent control flows

Engineering Contradiction:
Improvesynchronization capabilityVSAvoidprocessing efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the execution flow by maintaining separate program counters for each workitem. Instead of forcing all workitems to follow a single synchronized path, each workitem's program counter is independently tracked, allowing divergent control flows to be handled without requiring all workitems to wait at common barrier points. This segmentation enables more granular and efficient synchronization.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary actions by pre-calculating and storing program counter values for each workitem before execution. The system prepares synchronization points and tracks where each workitem should be at any given moment, allowing workitems to be synchronized based on pre-determined program counter values rather than requiring active waiting at barriers. This eliminates the need for spin locks and reduces processing overhead.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If active spin locks are used for synchronization, then workitems can be synchronized, but power consumption increases and performance decreases

Engineering Contradiction:
Improvesynchronization capabilityVSAvoidpower efficiency
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent replaces the mechanical spin lock mechanism with a software-based program counter tracking system. Instead of using hardware spin locks that require continuous active waiting and polling, the system uses software-managed program counters to track workitem execution progress and determine synchronization points. This substitution eliminates the need for continuous active waiting, significantly reducing power consumption and improving performance.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Productivity

If SIMD execution model is used, then parallel processing capability is improved, but flexibility for MIMD-style applications decreases

Engineering Contradiction:
Improveparallel processing capabilityVSAvoidthread behavior flexibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent introduces dynamic behavior to the SIMD execution model by allowing each workitem to have its own program counter that can be independently updated. This dynamic tracking enables workitems to follow different execution paths (MIMD-style behavior) while still being executed on SIMD hardware. The system dynamically adjusts which workitems are active based on their program counter values, providing flexibility for MIMD-style applications while maintaining SIMD parallel processing capability.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10467013B2Method and system for yield operation supporting thread-like behavior
Publication Date: 2019.11.05 ADVANCED MICRO DEVICES INC
  • US10467013B2 patent drawing
  • US10467013B2 patent drawing
  • US10467013B2 patent drawing

AI summary

A method, system, and computer program product synchronize a group of workitems executing an instruction stream on a processor. The processor is yielded by a first workitem responsive to a synchronization instruction in the instruction stream. A first one of a plurality of program counters is updated to point to a next instruction following the synchronization instruction in the instruction stream to be executed by the first workitem. A second workitem is run on the processor after the yielding.