Vertex Attribute Compression for GPU Memory Bandwidth Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional computer graphics processing units (GPUs) face inefficiencies in handling and processing vertex attribute data, leading to high memory bandwidth usage and power consumption due to the lack of effective compression techniques for positional and non-positional attributes.

Innovation Solution

A method is introduced that compresses and decompresses vertex attributes using techniques like run-length encoding, zero-run encoding, and Golomb-Rice coding, separating attributes into parts based on their format and applying tailored compression methods to reduce memory bandwidth and improve GPU performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of energy

If vertex attribute data is stored in traditional uncompressed format, then memory access is simple and fast, but memory bandwidth usage is high and power consumption increases

Engineering Contradiction:
Improvepower consumptionVSAvoidcompression mechanism complexity
Core Design Contradiction:
Loss of energyVSDevice complexity

Solution Approach 1:

The vertex attribute data is segmented into multiple parts based on format type (floating-point format with sign/exponent/mantissa parts, or fixed-point format with sign/integer/fractional parts). Different compression techniques are applied to different parts, allowing selective optimization that balances compression effectiveness with implementation complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent changes the representation parameters of vertex attribute data by applying format-specific compression techniques. For floating-point formats, it transforms exponent and mantissa representations using differential encoding and Golomb-Rice coding. For fixed-point formats, it applies similar transformations to integer and fractional parts, thereby reducing the bit width required to store the same information.

Inventive Principle:
Principle #35Parameter changes

2Quantity of substance

If vertex attribute data is compressed using multiple encoding techniques, then memory bandwidth is reduced, but processing complexity increases

Engineering Contradiction:
Improvememory bandwidthVSAvoidcompression processing complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

Different compression techniques are applied locally to different parts of the attribute data based on their format characteristics. Sign parts use run-length encoding, exponent parts use zero-run encoding combined with Golomb-Rice coding, and mantissa/integer/fractional parts use Golomb-Rice coding. This localized approach optimizes compression for each data component while keeping the overall system manageable.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The compression process is performed preliminarily in the frontend pipe of the GPU before data is stored in memory. By pre-compressing the vertex attribute data during the vertex shader stage, the system eliminates the need for compression during later rendering stages, thereby reducing overall processing complexity while achieving memory bandwidth reduction.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If traditional GPU architecture is used without compression, then processing is simpler, but off-chip memory traffic is high

Engineering Contradiction:
ImproveGPU performanceVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The compression operation is performed preliminarily in the frontend pipe before data leaves the GPU chip. By compressing vertex attribute data before it is written to off-chip memory, the system reduces the volume of data that needs to be transferred, thereby improving GPU productivity while simultaneously reducing power consumption associated with memory traffic.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces a compression mechanism as an intermediary component between the vertex shader and memory storage. This intermediary compresses the data in real-time during the vertex processing stage, allowing the rest of the GPU pipeline to operate with compressed data formats, thereby improving overall system efficiency without requiring fundamental architectural changes.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11748839B2Efficient fast random access enabled geometry attribute compression mechanism
Publication Date: 2023.09.05 SAMSUNG ELECTRONICS CO LTD
  • US11748839B2 patent drawing
  • US11748839B2 patent drawing
  • US11748839B2 patent drawing

AI summary

A graphics pipeline of a graphics processing unit includes a compressor that receives one or more attributes (positional and non-positional) of a vertex that is output from a vertex shader. The compressor determines a format of the one or more attributes, and separates each attribute into parts based on the format of the attribute. The compressor compresses each respective part of the attribute based on a type of the part. The compressed parts of the attribute are stored in an attribute storage.