Hardware Barrier Scheduling for Conditional Thread Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional parallel processing architectures face inefficiencies in scheduling threads due to unnecessary synchronization at barrier instructions, where not all threads require synchronization, leading to delayed execution for threads that do not.

Innovation Solution

A system and method for scheduling conditional barriers, where threads determine participation in a barrier instruction, allowing only participating threads to proceed serially after the barrier, while non-participating threads can continue execution without waiting.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional barrier instructions are used to synchronize all threads, then thread synchronization is ensured, but execution efficiency deteriorates because threads that do not require synchronization are unnecessarily delayed

Engineering Contradiction:
Improvethread synchronizationVSAvoidexecution efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments threads into participating and non-participating groups based on their synchronization requirements. By determining which threads actually need to wait at each barrier instruction, the system divides the thread population into two segments: those that must synchronize and those that can proceed independently. This segmentation allows the barrier mechanism to selectively synchronize only the necessary threads rather than forcing all threads to wait, thereby resolving the contradiction between ensuring synchronization reliability and maintaining execution efficiency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements partial action by allowing only the minimum necessary threads to participate in the barrier synchronization. Instead of requiring all threads to wait at every barrier instruction, the system identifies and schedules only the subset of threads that actually need to synchronize at each specific barrier point. This partial participation approach maintains the essential synchronization function while eliminating unnecessary waiting for threads that do not require it, thus improving overall execution efficiency without compromising synchronization reliability where needed.

Inventive Principle:
Principle #16Partial or excessive action

2Reliability

If all threads are serialized at every barrier instruction, then synchronization is maintained, but processing speed deteriorates due to unnecessary delays

Engineering Contradiction:
ImprovesynchronizationVSAvoidprocessing speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The patent introduces dynamic behavior to the barrier scheduling mechanism by determining, at runtime, which threads actually need to participate in each barrier instruction. Rather than using a static approach where all threads are automatically serialized at every barrier, the system dynamically identifies the minimal set of participating threads based on their synchronization requirements. This dynamic adjustment allows the system to maintain strict synchronization for threads that need it while allowing faster execution for threads that can proceed without waiting, thus resolving the contradiction between synchronization reliability and processing speed.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent applies local quality by treating different threads differently at each barrier instruction based on their individual synchronization needs. Instead of applying uniform serialization to all threads, the system identifies which threads have local synchronization requirements and applies the barrier constraint only to those specific threads. Threads without synchronization needs are allowed to proceed independently. This localized differentiation maintains necessary synchronization for affected threads while preserving processing speed for unaffected threads.

Inventive Principle:
Principle #3Local quality

3Reliability

If threads wait for all threads to reach the barrier before executing subsequent instructions, then synchronization is ensured, but time consumption increases

Engineering Contradiction:
ImprovesynchronizationVSAvoidtime consumption
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent implements preliminary action by determining in advance which threads will participate in each barrier instruction before scheduling execution. The system analyzes thread requirements and pre-identifies the subset of threads that need to synchronize at each barrier point. By preparing this classification beforehand, the scheduler can then efficiently group only the necessary threads for synchronization while allowing other threads to proceed without waiting. This preliminary determination of participating threads reduces the time threads would otherwise spend waiting for unnecessary synchronization, thus resolving the contradiction between ensuring synchronization reliability and minimizing time consumption.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9448803B2System and method for hardware scheduling of conditional barriers and impatient barriers
Publication Date: 2016.09.20 NVIDIA CORP
  • US9448803B2 patent drawing
  • US9448803B2 patent drawing
  • US9448803B2 patent drawing

AI summary

A method and a system are provided for hardware scheduling of barrier instructions. Execution of a plurality of threads to process instructions of a program that includes a barrier instruction is initiated, and when each thread reaches the barrier instruction during execution of program, it is determined whether the thread participates in the barrier instruction. The threads that participate in the barrier instruction are then serially executed to process one or more instructions of the program that follow the barrier instruction. A method and system are also provided for impatient scheduling of barrier instructions. When a portion of the threads that is greater than a minimum number of threads and less than all of the threads in the plurality of threads reaches the barrier instruction each of the threads in the portion is serially executed to process one or more instructions of the program that follow the barrier instruction.