Per-Channel Texture Compression for GPU Memory Bandwidth Limits

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional GPUs face performance and power issues due to the gap between computational throughput and memory bandwidth, exacerbated by the overhead of loading and managing texture data, particularly in applications with large numbers of intermediate textures.

Innovation Solution

Texture data is compressed on a per-channel basis using first-order difference equations, with channels stored in separate memory partitions and compressed independently, allowing for higher compression ratios by accounting for varying entropy and locality characteristics.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If texture data is stored in dedicated GPU memory, then texture values are available for mapping to primitives, but the amount of texture data that can be stored is limited due to small memory capacity

Engineering Contradiction:
Improvetexture data availabilityVSAvoidtexture data storage capacity
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The texture data is divided into multiple channels (e.g., red, green, blue, alpha) and each channel is compressed independently using per-channel compression. This segmentation allows the system to store more texture data in the limited GPU memory by reducing the overall memory footprint through channel-wise compression.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent changes the compression parameters by applying different compression strategies to different channels based on their entropy characteristics. High-entropy channels use different compression approaches than low-entropy channels, optimizing the balance between compression ratio and decompression speed to maximize storage capacity while maintaining data availability.

Inventive Principle:
Principle #35Parameter changes

2Quantity of substance

If texture data is loaded from disk on a page-by-page basis, then texture data can be populated in dedicated GPU memory, but significant overhead is incurred particularly when only a small subset of texture data is used

Engineering Contradiction:
Improvetexture data loadingVSAvoidtexture loading overhead
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

Texture data is organized and compressed by channels rather than by pages or tiles. This channel-based segmentation allows the GPU to load and decompress only the specific channels needed for the current rendering task, avoiding the overhead of loading entire pages when only partial data is required.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Texture channels are pre-compressed and stored in a channel-interleaved format in GPU memory. This preliminary organization allows for efficient random access to individual channels during rendering, eliminating the need to decode entire pages from disk and reducing loading overhead by having data ready in an optimally organized format.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If intermediate textures are created in large numbers during rendering, then visual details can be incorporated, but memory bandwidth is repeatedly consumed by pulling textures from memory

Engineering Contradiction:
Improveintermediate texture creationVSAvoidmemory bandwidth consumption
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

By organizing texture data into separate channels stored contiguously in memory, the system enables selective access to individual channels during intermediate texture operations. This segmentation reduces memory bandwidth consumption by allowing the GPU to fetch only the specific channel data needed for each rendering pass rather than loading entire texture pages.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent employs per-channel compression with channel-specific entropy coding parameters. This allows intermediate textures to be created and manipulated with reduced memory bandwidth requirements, as the compressed channel data can be efficiently processed and transformed without requiring full decompression and recompression cycles.

Inventive Principle:
Principle #35Parameter changes

4Productivity

If the gap between computational throughput and memory bandwidth is addressed by loading more texture data, then more texture details are available, but power consumption increases

Engineering Contradiction:
Improvecomputational throughputVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The channel-based texture organization allows the GPU to load and process only the specific channels required for the current frame or rendering pass. This segmentation reduces the total volume of data that needs to be transferred from memory, thereby reducing power consumption while maintaining the ability to achieve high computational throughput with the necessary data.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS12499582B2Compressing texture data on a per-channel basis
Publication Date: 2025.12.16 ADVANCED MICRO DEVICES INC
  • US12499582B2 patent drawing
  • US12499582B2 patent drawing
  • US12499582B2 patent drawing

AI summary

Sampling circuitry independently accesses channels of texture data that represent a set of pixels. One or more processing units separately compress the channels of the texture data and store compressed data representative of the channels of the texture data for the set of pixels. The channels can include a red channel, a blue channel, and a green channel that represent color values of the set of pixels and an alpha channel that represents degrees of transparency of the set of pixels. Storing the compressed data can include writing the compress data to portions of a cache. The processing units can identify a subset of the set of pixels that share a value of a first channel of the plurality of channels and represent the value of the first channel over the subset of the set of pixels using information representing the value, the first channel, and boundaries of the subset.