Floating-Point Group Compression for Low-Overhead Data Transfer
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Measurement precision
If more bits are used to represent floating-point numbers, then precision is maintained, but data transfer and storage capacity demands increase
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.
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.
Data Source
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.


