GPU CTA Synchronization via Atomic Semaphore Arrays

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional methods for synchronizing cooperative thread arrays (CTAs) on graphics processing units (GPUs) rely on interrupts, which can lead to performance bottlenecks due to repetitive interrupt traffic, constraining the maximum throughput of advanced algorithms.

Innovation Solution

A method using atomic add operations and semaphore arrays to synchronize CTAs without processor interrupts, ensuring all threads within a CTA have completed computations before proceeding to the next phase, thereby eliminating the need for interrupt-driven synchronization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If interrupt-based synchronization is used for CTAs, then synchronization reliability is improved, but system performance deteriorates due to repetitive interrupt traffic

Engineering Contradiction:
Improvesynchronization reliabilityVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts the synchronization function from the interrupt-based system and implements it using atomic operations within the GPU's parallel processing architecture. The atomic add operation to increment the semaphore counter and the atomic compare-exchange operation to check for completion are executed directly by the thread array without involving the CPU interrupt system, thereby eliminating repetitive interrupt traffic while maintaining synchronization reliability.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces a semaphore counter as an intermediary data structure that mediates synchronization between CTAs. Instead of using CPU interrupts as the intermediary mechanism, the semaphore counter allows threads to coordinate their execution progress through atomic operations, reducing the need for CPU intervention and improving overall system performance.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If multiple CTA synchronization checkpoints are implemented, then algorithm correctness is improved, but interrupt traffic increases

Engineering Contradiction:
Improvealgorithm correctnessVSAvoidinterrupt traffic volume
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent extracts the synchronization checkpoint mechanism from the interrupt-driven model and implements it using atomic operations. Each synchronization point uses an atomic add operation to increment a semaphore counter and an atomic compare-exchange operation to verify completion, allowing multiple checkpoints to be established without generating proportional interrupt traffic.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent enables continuous synchronization operations within the GPU's parallel processing stream. By using atomic operations that can be executed continuously by the thread array without CPU intervention, the system maintains multiple synchronization checkpoints while avoiding the disruptive nature of repetitive interrupts, thus reducing interrupt traffic volume.

Inventive Principle:
Principle #20Continuity of useful action

3Loss of time

If interrupt service time is reduced through OS improvements, then synchronization efficiency is improved, but the fundamental constraint of interrupt-based synchronization remains

Engineering Contradiction:
Improveinterrupt service timeVSAvoidmaximum throughput
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The patent substitutes the mechanical interrupt-based synchronization system with a software-based atomic operation system. Instead of relying on hardware interrupts and OS-level interrupt handling, the synchronization is achieved through atomic read-modify-write operations executed directly by the GPU's parallel processing units, eliminating the fundamental constraint of interrupt service time.

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

Solution Approach 2:

The patent implements self-service synchronization where the thread arrays perform their own synchronization operations using atomic instructions. The threads autonomously check the semaphore counter and proceed when the completion condition is met, without requiring external interrupt service from the OS, thereby eliminating the throughput constraint imposed by interrupt handling overhead.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS8473948B1Method for synchronizing independent cooperative thread arrays running on a graphics processing unit
Publication Date: 2013.06.25 NVIDIA CORP
  • US8473948B1 patent drawing
  • US8473948B1 patent drawing
  • US8473948B1 patent drawing

AI summary

One embodiment of the present invention sets forth a technique for synchronizing the execution of multiple cooperative thread arrays (CTAs) implementing a parallel algorithm that is mapped onto a graphics processing unit. An array of semaphores provides synchronization status to each CTA, while one designated thread within each CTA provides updated status for the CTA. The designated thread within each participating CTA reports completion of a given computational phase by updating a current semaphore within the array of semaphores. The designated thread then polls the status of the current semaphore until all participating CTAs have reported completion of the current computational phase. After each CTA has completed the current computational phase, all participating CTAs may proceed to the next computational phase.