Aperture Compression for Multi-GPU Memory Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-GPU systems, there is a lack of efficient data transfer mechanisms between GPUs due to the limited PCI Express bus aperture, which restricts memory-to-memory transfers and lacks support for multiple independent data streams with distinct rules, leading to performance bottlenecks and synchronization penalties.

Innovation Solution

A hardware-based aperture compression system that uses dynamic base addresses and tags to enable addressing large memory spaces through a limited bus aperture, allowing multiple independent data streams with selective ordering and prioritization, and transparently managing memory requests across GPUs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If memory is mapped into system bus space for efficient transfers, then data transfer efficiency is improved, but the aperture size limits the addressable memory space

Engineering Contradiction:
Improvedata transfer efficiencyVSAvoidaddressable memory space
Core Design Contradiction:
ProductivityVSArea of stationary object

Solution Approach 1:

The system segments the large memory space into multiple aperture windows, each accessible through a separate stream. Multiple streams (stream 0, stream 1, etc.) allow different aperture windows to be active simultaneously, enabling access to memory regions beyond the single aperture limit while maintaining efficient mapped access.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent adds a stream dimension to the traditional single-aperture model. By introducing multiple independent streams with their own aperture windows, the system transforms the limited single-dimension aperture into a multi-dimensional address space that can accommodate larger total memory while maintaining efficient mapped transfers.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Reliability

If strictly ordered reads and writes are enforced on the system bus, then data integrity is improved, but synchronization penalties increase

Engineering Contradiction:
Improvedata integrityVSAvoidsynchronization penalties
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system applies different ordering rules to different streams locally. Each stream can be configured with its own ordering semantics (ordered or unordered), allowing the system to enforce strict ordering only where needed for data integrity while allowing unordered access in other streams to reduce synchronization overhead.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The ordering rules are made dynamic and configurable per stream rather than being fixed globally. This allows the system to adapt the level of ordering enforcement based on the specific requirements of each data stream, balancing data integrity requirements against synchronization performance.

Inventive Principle:
Principle #15Dynamics

3Area of stationary object

If software programmable offsets are used to provide windows into larger memory space, then addressable memory space is improved, but the approach fails when a single chunk of memory exceeds the window size

Engineering Contradiction:
Improveaddressable memory spaceVSAvoidhandling large memory chunks
Core Design Contradiction:
Area of stationary objectVSAdaptability or versatility

Solution Approach 1:

The system segments large memory regions into multiple aperture windows that can be accessed through different streams. When a memory chunk exceeds the window size, it can be divided across multiple streams, each handling a portion within its aperture window, thus solving the limitation of software offsets.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces stream identifiers and aperture window management as intermediaries between the CPU/GPUs and the large memory space. These intermediaries coordinate access to memory regions that exceed single aperture windows, enabling efficient handling of large memory chunks without requiring the entire space to fit in one window.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Productivity

If multiple GPUs transfer data over the system bus, then data transfer capability is improved, but the limited PCI Express bus aperture restricts memory-to-memory transfers

Engineering Contradiction:
Improvedata transfer capabilityVSAvoidbus aperture
Core Design Contradiction:
ProductivityVSArea of stationary object

Solution Approach 1:

The system segments the bus aperture into multiple virtual windows, one for each stream. This allows multiple GPUs to simultaneously utilize the same physical bus aperture through different virtual windows, effectively multiplying the usable aperture space and enabling more efficient memory-to-memory transfers across multiple GPUs.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent makes the bus aperture universal by allowing it to serve multiple purposes simultaneously through different streams. The same physical aperture can be used for multiple memory regions and multiple GPU pairs at the same time, increasing the overall data transfer capability without requiring additional physical bus resources.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS8134569B2Aperture compression for multiple data streams
Publication Date: 2012.03.13 ADVANCED MICRO DEVICES INC
  • US8134569B2 patent drawing
  • US8134569B2 patent drawing
  • US8134569B2 patent drawing

AI summary

A hardware-based aperture compression system permits addressing large memory spaces via a limited bus aperture. Streams are assigned dynamic base addresses (BAR) that are maintained in registers on sources and destinations. Requests for addresses lying between BAR and BAR plus the size of the bus aperture are sent with BAR subtracted off by the source and added back by the destination. Requests for addresses outside that range are handled by transmitting a new, adjusted BAR before sending the address request.