GPU Semaphore Synchronization via Atomic Operations

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 reducing system overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional interrupt-based synchronization is used for CTAs, then synchronization can be achieved, but system performance deteriorates due to repetitive interrupt traffic

Engineering Contradiction:
Improvesynchronization reliabilityVSAvoidcomputational throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts the synchronization function from the interrupt-based system and implements it using atomic memory operations within the GPU's own memory hierarchy. The semaphore array is allocated in GPU memory and manipulated through atomic add operations, removing the need for CPU interrupts while maintaining synchronization reliability.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces a semaphore array as an intermediary data structure that mediates synchronization between CTAs. Instead of using interrupts as the intermediary mechanism, the semaphore array with atomic operations serves as the mediator, allowing CTAs to signal completion and wait for synchronization without involving the CPU interrupt system.

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 service time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent removes the interrupt service time component from synchronization checkpoints while retaining the multiple checkpoint capability. Each checkpoint uses atomic add operations on semaphore elements instead of generating interrupts, eliminating the time loss associated with interrupt handling while maintaining algorithm correctness.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent enables continuous computation within CTAs by using atomic memory operations that do not interrupt the computational flow. The synchronization checkpoints continue to provide correctness guarantees, but the useful computational action continues without interruption, as the atomic operations are executed within the GPU's parallel processing stream.

Inventive Principle:
Principle #20Continuity of useful action

3Productivity

If interrupt performance is improved through operating system design, then synchronization efficiency is enhanced, but device complexity increases

Engineering Contradiction:
Improvesynchronization efficiencyVSAvoidoperating system complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements self-service synchronization where the GPU handles its own synchronization needs through atomic memory operations without requiring operating system intervention. The GPU autonomously manages the semaphore array and coordinates between CTAs, eliminating the need for complex OS-level interrupt handling and driver code.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent replaces the mechanical interrupt system with a software-based atomic operation mechanism. Instead of relying on hardware interrupts and OS scheduling, the synchronization is achieved through atomic add operations that leverage the GPU's memory subsystem and instruction set, substituting a simpler, more direct mechanism for the complex interrupt pathway.

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

Data Source

PatentUS8370845B1Method for synchronizing independent cooperative thread arrays running on a graphics processing unit
Publication Date: 2013.02.05 NVIDIA CORP
  • US8370845B1 patent drawing
  • US8370845B1 patent drawing
  • US8370845B1 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.