Unified Memory Visibility Ordering for CPU-GPU Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing computing systems face challenges in efficiently scheduling and managing the combined use of CPUs and GPUs for unified computing operations, particularly in reordering visibility orders of operations across shared memory, which hampers overall system performance.

Innovation Solution

A method is introduced to reorder the visibility order of operations in a computer arrangement with GPU and CPU threads accessing shared memory, determining the class of each operation and permitting reordering based on these classes to ensure proper visibility in shared memory, thereby enabling unified memory model operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If separate memory systems are used for CPU and GPU, then each processor can have dedicated memory access, but system complexity increases and coordination between processors becomes more difficult

Engineering Contradiction:
Improvesystem performanceVSAvoidmemory system complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent merges the memory systems of CPU and GPU into a unified shared memory space. This allows both processors to access the same memory without requiring complex inter-memory coordination, thereby reducing system complexity while maintaining high productivity through efficient resource sharing.

Inventive Principle:
Principle #5Merging (Combining)

2Reliability

If visibility order of operations is maintained strictly, then correctness of memory access is ensured, but scheduling flexibility is reduced and performance is hampered

Engineering Contradiction:
Improvememory access correctnessVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent introduces dynamic visibility ordering where the memory model can adaptively determine the visibility order of operations based on the class of operations and scheduling context. This allows the system to maintain correctness for critical operations while permitting reordering for performance-optimized operations, thus achieving both reliability and productivity.

Inventive Principle:
Principle #15Dynamics

3Productivity

If unified memory model is implemented, then resource utilization is optimized, but challenges in scheduling and QoS guarantees between processes increase

Engineering Contradiction:
Improveresource utilizationVSAvoidscheduling complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments memory operations into different classes (e.g., read operations, write operations, atomic operations) with distinct visibility ordering requirements. This segmentation allows the scheduling system to apply different policies to different operation classes, simplifying the overall scheduling complexity while maintaining high resource utilization through unified memory access.

Inventive Principle:
Principle #1Segmentation

4Productivity

If operation reordering is permitted, then system performance is improved, but ensuring correct visibility of operations across different processors becomes more difficult

Engineering Contradiction:
Improvesystem performanceVSAvoidvisibility correctness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent applies local quality by assigning different visibility ordering characteristics to different memory operations based on their class. Critical operations maintain strict visibility ordering to ensure correctness, while non-critical operations allow reordering for performance optimization. This localized differentiation enables both improved performance and maintained reliability.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS8984511B2Visibility ordering in a memory model for a unified computing system
Publication Date: 2015.03.17 ATI TECHNOLOGIES ULC
  • US8984511B2 patent drawing
  • US8984511B2 patent drawing
  • US8984511B2 patent drawing

AI summary

Provided is a method of permitting the reordering of a visibility order of operations in a computer arrangement configured for permitting a first processor and a second processor threads to access a shared memory. The method includes receiving in a program order, a first and a second operation in a first thread and permitting the reordering of the visibility order for the operations in the shared memory based on the class of each operation. The visibility order determines the visibility in the shared memory, by a second thread, of stored results from the execution of the first and second operations.