GPU Data Compression via Variable Block Concatenation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The primary bottleneck in GPU-to-GPU communication is the connection bandwidth of the network interface circuit (NIC) on GPUs, and existing data compression methods introduce additional latency and require extra compute power.

Innovation Solution

A graphics processing system where graphics processors connected by a network transfer compressed data, with a first graphics processor storing data blocks as compressed data in its local memory and concatenating variable-sized blocks into fixed-size packets for transfer to a second graphics processor, which can store or use the compressed data without decompression.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If data compression is performed for GPU-to-GPU communication, then connection bandwidth utilization is improved, but latency and power consumption increase due to compression and decompression operations

Engineering Contradiction:
Improveconnection bandwidth utilizationVSAvoidcommunication latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

Data is compressed in advance during rendering operations and stored in local memory before transfer. This preliminary compression eliminates the need for real-time compression during data transfer, thereby reducing communication latency while maintaining high bandwidth utilization.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The compression operation is extracted from the data transfer path and performed separately during rendering. This separates the compression function from the communication path, allowing data to be transferred directly without in-path compression delays.

Inventive Principle:
Principle #2Taking out (Extraction)

2Productivity

If data compression is performed for GPU-to-GPU communication, then connection bandwidth utilization is improved, but additional compute power is required for compression and decompression

Engineering Contradiction:
Improveconnection bandwidth utilizationVSAvoidcompute power consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The GPU's existing rendering pipeline performs compression as part of its normal operation when storing data in local memory. This self-service approach reuses already allocated compute resources for rendering, eliminating the need for separate dedicated compression hardware or additional compute power.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The GPU's rendering pipeline is made multi-functional by enabling it to perform both rendering and compression operations. This universal approach allows the same hardware resources to serve dual purposes, reducing overall power consumption without compromising compression capabilities.

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

3Productivity

If variable-sized compressed data blocks are transferred over network, then data efficiency is improved, but packet transmission complexity increases

Engineering Contradiction:
Improvedata transfer efficiencyVSAvoidpacket transmission complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

Compressed data is divided into variable-sized blocks that are independently transferable. Each block can be packaged into fixed-size packets with appropriate headers, allowing efficient network transmission while maintaining the benefits of variable-sized compressed data units through systematic segmentation.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS12282809B2Scale up and out compression
Publication Date: 2025.04.22 INTEL CORP
  • US12282809B2 patent drawing
  • US12282809B2 patent drawing
  • US12282809B2 patent drawing

AI summary

A graphics processing apparatus includes graphics processors connected by a network connection, where the graphics processors pass compressed data. A first graphics processor stores data blocks as compressed data in a memory. The compressed data has data blocks of variable size, where a size of a block of compressed data depends on a compression ratio of the block of compressed data. A second graphics processor also stores data blocks as compressed data. The first graphics processor concatenates a variable number of blocks of compressed data into a packet of fixed size to send to the second graphics processor. The packet has a variable number of blocks of compressed data depending on the compression ratios of the multiple blocks of compressed data.