Memory Synchronization Domains for Parallel Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing thread synchronization methods in parallel processing compute architectures, such as the use of MEMBAR instructions, can force unnecessary synchronization of threads across memory synchronization domains, leading to inefficiencies and performance reductions.

Innovation Solution

A computer-implemented method for synchronizing threads that determines when a first thread has executed a memory barrier instruction and identifies the memory apertures accessed by threads within a specific domain. It generates a memory barrier command that only references the accessed memory apertures within that domain, excluding other domains, and transmits this command to the relevant memory apertures.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a MEMBAR.SYS instruction is executed to synchronize threads at system scope, then all memory references from all threads become visible to other clients, but unrelated threads are forced to synchronize unnecessarily causing performance degradation

Engineering Contradiction:
Improvethread synchronization correctnessVSAvoidMEMBAR instruction performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the memory synchronization process by introducing memory synchronization domains that partition threads into distinct groups. Each domain maintains its own synchronization state and memory aperture references, allowing selective synchronization within domains rather than forcing system-wide synchronization for all threads. This segmentation enables thread D to remain in a different domain and avoid unnecessary synchronization when thread B executes MEMBAR.SYS.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies local quality by making synchronization behavior domain-specific rather than uniform across all threads. Each memory synchronization domain has its own characteristics regarding which memory apertures are accessed and which threads are involved. This allows the system to tailor synchronization operations to the specific needs of each domain, synchronizing only the relevant memory apertures for threads in the same domain rather than forcing all threads to synchronize at system scope.

Inventive Principle:
Principle #3Local quality

2Reliability

If threads synchronize at system scope when any thread executes MEMBAR.SYS, then transitive synchronization is achieved across all threads, but unnecessary synchronization of unrelated threads increases interference and slows down memory traffic

Engineering Contradiction:
Improvetransitive synchronizationVSAvoidsynchronization time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent divides threads into separate memory synchronization domains, which segments the transitive synchronization process. Instead of requiring all threads to synchronize simultaneously at system scope, threads within the same domain can synchronize independently through their domain's memory apertures. This segmentation reduces the total synchronization time by parallelizing the process across multiple domains while still achieving transitive synchronization where needed.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies partial action by synchronizing only the memory apertures that are actually accessed by threads within a specific domain, rather than synchronizing all memory apertures across all threads. This selective synchronization approach reduces unnecessary synchronization overhead and time loss while maintaining the necessary transitive synchronization properties for threads that do interact through shared memory apertures.

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If the GPU conservatively flushes all memory references at system scope, then all threads are synchronized, but memory traffic interference increases and performance decreases

Engineering Contradiction:
Improvememory visibilityVSAvoidinterconnect bandwidth
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent implements local quality by making memory aperture references domain-specific. Each memory synchronization domain tracks which memory apertures its threads access and generates MEMBAR commands that reference only those specific apertures. This eliminates unnecessary memory traffic to apertures that are not accessed by threads in the same domain, reducing interconnect bandwidth consumption while maintaining correct memory visibility for relevant threads.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent extracts the unnecessary synchronization operations by removing references to memory apertures that are not accessed by threads in the current domain. When generating a MEMBAR command, the system extracts and includes only the memory aperture references that are actually needed for threads in the same domain, eliminating redundant synchronization traffic to other apertures and reducing overall interconnect bandwidth usage.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS12340259B2Thread synchronization across memory synchronization domains
Publication Date: 2025.06.24 NVIDIA CORP
  • US12340259B2 patent drawing
  • US12340259B2 patent drawing
  • US12340259B2 patent drawing

AI summary

Various embodiments include a parallel processing computer system that provides multiple memory synchronization domains in a single parallel processor to reduce unneeded synchronization operations. During execution, one execution kernel may synchronize with one or more other execution kernels by processing outstanding memory references. The parallel processor tracks memory references for each domain to each portion of local and remote memory. During synchronization, the processor synchronizes the memory references for a specific domain while refraining from synchronizing memory references for other domains. As a result, synchronization operations between kernels complete in a reduced amount of time relative to prior approaches.