GPU Compacting Engine Filters Padding in Compressed Graphics Streams

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The increasing data transfer between GPUs in applications like virtual reality, due to higher image resolution and refresh rates, leads to significant resource overhead and performance degradation, as existing block-based memory bandwidth compression methods do not effectively reduce the footprint of resource data for transfer.

Innovation Solution

Implementing a compacting engine in each GPU to filter out padding from compressed graphics streams, interleave metadata with the compacted data, and transfer only the valid data, thereby reducing the amount of data transferred between GPUs without compromising image quality.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If block-based memory bandwidth compression is used, then image quality is preserved, but the footprint of resource data for transfer is not reduced

Engineering Contradiction:
Improvedata transfer volumeVSAvoidimage quality
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The patent segments the compressed graphics stream into individual blocks and processes each block independently to identify and remove padding. This segmentation allows selective removal of non-essential padding data while preserving the essential compressed graphics content, thereby reducing transfer volume without compromising image quality.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent extracts and removes padding data from compressed graphics blocks before transfer. By identifying blocks containing only padding and excluding them from the transfer stream, the system reduces the data footprint while maintaining the integrity of the actual graphics content, thus resolving the contradiction between transfer volume and image quality.

Inventive Principle:
Principle #2Taking out (Extraction)

2Reliability

If image resolution and refresh rates are increased, then image quality is improved, but resource overhead for data transfer increases

Engineering Contradiction:
Improveimage qualityVSAvoidresource overhead
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent performs preliminary compaction of compressed graphics streams by removing padding blocks before transfer. This preliminary action reduces the data volume that needs to be transferred, thereby lowering the resource overhead and energy consumption associated with high-resolution and high-refresh-rate graphics transfers.

Inventive Principle:
Principle #10Preliminary action

3Quantity of substance

If padding is removed from compressed graphics streams, then data transfer volume is reduced, but device complexity increases

Engineering Contradiction:
Improvedata transfer volumeVSAvoidcompaction engine complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The compaction engine utilizes metadata that is already present in the compressed graphics stream to identify padding blocks. By leveraging existing metadata structures rather than requiring complex analysis algorithms, the system achieves padding removal with minimal additional device complexity while still reducing data transfer volume.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10319063B2System and method for compacting compressed graphics streams for transfer between GPUs
Publication Date: 2019.06.11 ATI TECHNOLOGIES ULC
  • US10319063B2 patent drawing
  • US10319063B2 patent drawing
  • US10319063B2 patent drawing

AI summary

In a processing system including a plurality of graphics processing units (GPUs), the GPUs transfer compressed graphics streams composed of blocks of graphics data to one another. Some blocks of a compressed graphics stream, or parts thereof, may contain both compressed graphics data and meaningless data (referred to as data structure padding, or padding) that is used to align the graphics data, and some blocks may contain only padding. Before transferring a compressed graphics resource from one GPU to another GPU, the sending GPU compacts the compressed graphics resource by filtering out padding from the compressed graphics stream prepared for the transfer.