Floating-Point Compression Using Exponent-Difference Encoding
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
High-performance computing systems face bottlenecks in data transfer and storage due to limited rates of interfaces among 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 calculating exponent differences, encoding mantissas based on exponents, and optionally compressing signs, using a code table for exponent tokens and determining encoded mantissa bits, to form compressed data packets that can be efficiently stored and transferred.
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 compression method segments the floating-point numbers into distinct components (exponents and mantissas) and processes each component separately. This allows for targeted compression techniques to be applied to each segment, reducing overall computational overhead while maintaining data integrity and achieving efficient compression ratios.
2Quantity of substance
If compression algorithms are applied to floating-point data, then data storage capacity demands are reduced, but processing complexity increases
Solution Approach 1:
The compression algorithm changes the representation parameters of floating-point data by separating exponents and mantissas and applying different encoding strategies to each. This parameter transformation reduces the overall data size while managing processing complexity through systematic handling of each component.
3Speed
If floating-point data is transferred at high rates, then data processing speed is improved, but interface bandwidth requirements increase
Solution Approach 1:
The method extracts and separates the exponent and mantissa components of floating-point numbers, allowing for independent compression and optimization of each part. This extraction enables reduced data width transfers while maintaining processing speed, as the separated components can be handled more efficiently than complete floating-point representations.
Data Source
AI summary
Compression of exponents, mantissas and signs of floating-point numbers is described. Differences between exponents are encoded by exponent tokens selected from a code table. The mantissa is encoded to a mantissa token having a length based on the exponent. The signs are encoded directly or are compressed to produce fewer sign tokens. The exponent tokens, mantissa tokens and sign tokens are packed in a compressed data packet. Decompression decodes the exponent tokens using the code table. The decoded exponent difference is added to a previous reconstructed exponent to produce the reconstructed exponent. The reconstructed exponent is used to determine the length of the mantissa token. The mantissa token is decoded to form the reconstructed mantissa. The sign tokens provide the reconstructed signs or are decompressed to provide the reconstructed signs. The reconstructed sign, reconstructed exponent and reconstructed mantissa are combined to form a reconstructed floating-point number.


