Floating-Point Group Compression for Low-Overhead Data Transfer

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

High-performance computing systems face bottlenecks in data transfer and storage due to limited interface rates between processor cores and memory, particularly with vast amounts of floating-point data, necessitating computationally efficient compression techniques to reduce demands on computing resources.

Innovation Solution

The compression of floating-point numbers involves determining the maximum exponent of encoding groups, calculating exponent differences, and using a code table to select exponent tokens, while also compressing or encoding mantissas and signs to create a compressed data packet, which can be efficiently decompressed to reconstruct the original floating-point numbers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If floating-point data is compressed to reduce data transfer and storage demands, then data transfer efficiency and memory utilization are improved, but computational overhead increases

Engineering Contradiction:
Improvedata transfer efficiencyVSAvoidcomputational overhead
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The floating-point data is divided into encoding groups where each group shares a common maximum exponent value. This segmentation allows the exponent to be encoded once per group rather than once per value, reducing the number of computations required for compression while maintaining compression effectiveness.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent changes the representation parameters by using variable-length encoding for mantissas based on exponent values. Values with smaller exponents use fewer mantissa bits, while values with larger exponents use more bits. This parameter adaptation optimizes the balance between compression ratio and computational complexity.

Inventive Principle:
Principle #35Parameter changes

2Measurement precision

If more bits are used to represent floating-point numbers, then precision is maintained, but data transfer and storage capacity demands increase

Engineering Contradiction:
Improvefloating-point precisionVSAvoiddata volume
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

Different precision levels are applied locally based on the exponent value of each floating-point number. Values with smaller exponents use fewer mantissa bits (lower precision), while values with larger exponents use more bits (higher precision). This local adaptation maintains necessary precision for each value while reducing overall data volume.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent applies partial precision encoding where not all floating-point values receive the maximum available precision. Instead, each value receives precisely the amount of precision needed based on its exponent, avoiding excessive bit allocation for values that don't require full precision.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS8959130B2Compression of floating-point data in encoding groups
Publication Date: 2015.02.17 ALTERA CORP
  • US8959130B2 patent drawing
  • US8959130B2 patent drawing
  • US8959130B2 patent drawing

AI summary

Exponents, mantissas and signs of floating-point numbers are compressed in encoding groups. Differences between maximum exponents of encoding groups are encoded by exponent tokens selected from a code table. Each mantissa of an encoding group is encoded to a mantissa token having a length based on the maximum exponent. Signs are encoded directly or are compressed to produce sign tokens. Exponent tokens, mantissa tokens and sign tokens are packed in a compressed data packet. For decompression, the exponent tokens are decoded using the code table. The decoded exponent difference is added to a previous reconstructed maximum exponent to produce the reconstructed maximum exponent for the encoding group. The reconstructed maximum exponent is used to determine the length of the mantissa tokens that are decoded to produce the reconstructed mantissas for the encoding group. The reconstructed sign, reconstructed exponent and reconstructed mantissa are combined to form a reconstructed floating-point number.