GPU Global Barrier Synchronizes Thread Groups

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current graphics processing units (GPUs) lack a hardware-based mechanism for synchronizing multiple thread groups, requiring CPU intervention to ensure all thread groups complete before proceeding, which leads to inefficiencies and increased execution times.

Innovation Solution

Implementing a hardware global barrier within the GPU to synchronize thread groups, allowing concurrent execution and reducing the need for CPU intervention by notifying when all thread groups have completed their instructions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If CPU intervention is used to synchronize thread groups, then synchronization reliability is improved, but execution time increases and productivity decreases

Engineering Contradiction:
Improvesynchronization reliabilityVSAvoidexecution speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent introduces a global barrier mechanism as an intermediary between thread groups and the CPU. The barrier is implemented as a hardware-supported data structure that automatically tracks and synchronizes thread group completion status, eliminating the need for CPU intervention while maintaining reliable synchronization across all thread groups.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent replaces the software-based CPU intervention mechanism with a hardware-supported global barrier system. The barrier uses hardware-level counters and status flags to track thread group completion, substituting the mechanical CPU polling and synchronization operations with automated hardware-based tracking that operates transparently to the executing threads.

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

2Measurement precision

If CPU polling is used to check thread group completion, then synchronization accuracy is improved, but resource utilization decreases and energy consumption increases

Engineering Contradiction:
Improvesynchronization accuracyVSAvoidCPU energy consumption
Core Design Contradiction:
Measurement precisionVSUse of energy by moving object

Solution Approach 1:

The global barrier mechanism operates autonomously without requiring CPU polling or intervention. The system self-services by automatically tracking thread group completion through hardware-supported counters and status indicators, allowing the GPU to manage its own synchronization internally without consuming CPU resources or energy.

Inventive Principle:
Principle #25Self-service

3Stability of the object's composition

If all thread groups must complete before proceeding, then data consistency is improved, but execution time increases and productivity decreases

Engineering Contradiction:
Improvedata consistencyVSAvoidworkload processing speed
Core Design Contradiction:
Stability of the object's compositionVSProductivity

Solution Approach 1:

The global barrier is established and configured in advance before thread group execution begins. The barrier pre-establishes the synchronization point and data consistency requirements, allowing thread groups to execute concurrently without runtime checks or interruptions, thereby maintaining data consistency while maximizing parallel execution efficiency.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9916162B2Using a global barrier to synchronize across local thread groups in general purpose programming on GPU
Publication Date: 2018.03.13 INTEL CORP
  • US9916162B2 patent drawing
  • US9916162B2 patent drawing
  • US9916162B2 patent drawing

AI summary

Methods and systems may synchronize workloads across local thread groups. The methods and systems may provide for receiving, at a graphics processor, a workload from a host processor and receiving, at a plurality of processing elements, a plurality of threads that from one or more local thread groups. Additionally, the processing of the workload may be synchronized across the one or more thread groups. In one example, the global barrier determines that all threads across the thread groups have been completed without polling.