Relaxed Memory Consistency for GPU Parallel Execution Bottlenecks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Graphics processing units (GPUs) face performance bottlenecks and high power consumption due to enforced memory consistency and pass group ordering, which restricts parallel execution of graphics instructions and increases memory traffic.

Innovation Solution

Implementing relaxed memory access ordering with explicit software controls, allowing compute tasks to be performed mid-render without accessing shared memory, and using a flexible local image block data structure to facilitate mid-render compute operations, while synchronizing pixel resources using explicit instructions to reduce memory traffic and power consumption.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If memory consistency and pass group ordering are enforced, then reliability is improved, but productivity deteriorates due to restricted parallel execution and performance bottlenecks

Engineering Contradiction:
Improvememory consistencyVSAvoidparallel execution performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent changes the memory ordering parameter from strict sequential consistency to relaxed consistency models. It introduces memory order attributes (e.g., sequentially consistent, acquire-release, relaxed) that can be specified by developers to control the degree of ordering enforcement, allowing parallel execution to proceed without unnecessary serialization while maintaining required consistency guarantees.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent segments memory access ordering requirements into different scopes and levels. It divides the memory hierarchy into multiple levels (L1 cache, L2 cache, system memory) and applies different ordering constraints to different segments. This allows fine-grained control where strict ordering is applied only where necessary while permitting out-of-order execution in other segments to improve parallelism.

Inventive Principle:
Principle #1Segmentation

2Reliability

If hardware enforcement of memory consistency is implemented, then reliability is improved, but use of energy deteriorates due to considerable power consumption

Engineering Contradiction:
Improvememory consistencyVSAvoidpower consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent shifts the responsibility of memory consistency management from hardware enforcement to software control. Developers explicitly specify memory order attributes in their code, and the compiler translates these into appropriate synchronization instructions. This eliminates the need for complex hardware monitoring and enforcement mechanisms, significantly reducing power consumption while maintaining consistency where required.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent introduces software-controllable memory order parameters that allow the system to dynamically adjust consistency enforcement based on application requirements. By using compiler directives and intrinsic functions, the system can enable or disable hardware enforcement mechanisms as needed, reducing power consumption when strict consistency is not required while maintaining reliability when it is.

Inventive Principle:
Principle #35Parameter changes

3Adaptability or versatility

If device memory is used for sharing data between compute tasks and pixel rendering, then adaptability is improved, but use of energy deteriorates due to substantial power consumption from memory access

Engineering Contradiction:
Improvedata sharing capabilityVSAvoidpower consumption
Core Design Contradiction:
Adaptability or versatilityVSUse of energy by moving object

Solution Approach 1:

The patent merges compute tasks and pixel rendering tasks into the same execution context, allowing them to share local memory resources. By enabling compute tasks to execute mid-render and access local image blocks directly, the system eliminates the need for data to be written to and read from device memory, reducing memory traffic and power consumption while maintaining data sharing capability between compute and render operations.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent introduces local memory as an intermediary between device memory and processing elements. By using local image blocks in local memory as a buffer and sharing mechanism, the system reduces direct accesses to power-consuming device memory. The local memory serves as a low-power intermediary that enables data sharing between compute tasks and pixel rendering without requiring substantial device memory traffic.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Reliability

If pass groups are traditionally ordered with older pass groups completing before younger pass groups, then reliability is improved, but productivity deteriorates due to performance bottleneck and significant power consumption

Engineering Contradiction:
Improvepass group orderingVSAvoidrendering performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent makes pass group ordering dynamic rather than static. Instead of enforcing a fixed completion order, the system allows pass groups to be executed and accessed in flexible orders based on data dependencies and synchronization requirements. Synchronization primitives like fences and barriers provide the necessary ordering guarantees only where required, while permitting out-of-order execution elsewhere to improve rendering performance and reduce power consumption.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11430174B2Memory consistency in memory hierarchy with relaxed ordering
Publication Date: 2022.08.30 APPLE INC
  • US11430174B2 patent drawing
  • US11430174B2 patent drawing
  • US11430174B2 patent drawing

AI summary

Techniques are disclosed relating to specifying memory consistency constraints. In some embodiments, an instruction may specify, for a memory operation, a type of memory consistency and a scope at which to enforce the type of consistency. For example, these fields may specify whether to sequence memory accesses relative to the operation at one or more of multiple different cache levels based on the type of memory consistency and the scope.