Inline Decompression of Stack-Compressed Sparse Data Blocks
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Neural networks with many zeros, such as those using rectified linear unit (ReLU) activation functions or pruned recurrent neural networks, face challenges in efficiently processing and storing sparse data, leading to increased memory usage and bandwidth requirements.
Innovation Solution
A technique for efficiently compressing and decompressing data with many zeros by using a compression engine to remove zero words and generate metadata for mapping non-zero words, allowing for offline compression and hardware-based decompression, which can be applied to neural networks and other sparse data environments.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If data is stored in uncompressed format, then processing is straightforward, but memory usage and bandwidth requirements increase significantly
Solution Approach 1:
The data is divided into blocks, and each block is independently compressed and processed. The compression engine processes data in manageable segments rather than treating the entire dataset as one unit, allowing for efficient memory management and parallel processing of multiple blocks simultaneously.
Solution Approach 2:
Zero words are extracted and removed from the data blocks during compression, leaving only non-zero words to be stored and transmitted. This extraction principle directly reduces memory usage by eliminating redundant zero values while maintaining the essential information in the compressed representation.
2Quantity of substance
If compression is applied to reduce memory usage, then storage efficiency improves, but decompression processing time increases
Solution Approach 1:
Compression is performed in advance during data preparation or offline processing, converting the data to a compressed format before storage or transmission. This preliminary compression action allows the system to store and transfer compressed data efficiently, with decompression only needed when the data is actually accessed or processed.
Solution Approach 2:
The compressed data structure is designed to enable self-service decompression where the decompression process can efficiently reconstruct the original data using the stored compression metadata and map information, minimizing the need for complex external processing during decompression.
3Loss of energy
If zero words are removed during compression, then bandwidth requirements decrease, but data structure complexity increases
Solution Approach 1:
A map metadata structure serves as an intermediary between the compressed data and the original uncompressed format. This map contains information about the positions and values of non-zero words, enabling efficient reconstruction of the original data while maintaining a relatively simple compressed storage format that reduces bandwidth requirements.
4Productivity
If hardware-based decompression is implemented, then processing speed improves, but device complexity and cost increase
Solution Approach 1:
The decompression operation is implemented using hardware circuits instead of software-based processing. This substitution of mechanical/computational approach with dedicated hardware logic enables parallel processing and significantly faster decompression speeds, as the hardware can simultaneously reconstruct multiple data blocks without the overhead of software interpretation and execution.
Data Source
AI summary
Techniques and apparatuses to decompress data that has been stack compressed is described. Stack compression refers to compression of data in one or more dimensions. For uncompressed data blocks that are very sparse, i.e., data blocks that contain many zeros, stack compression can be effective. In stack compression, uncompressed data block is compressed into compressed data block by removing one or more zero words from the uncompressed data block. A map metadata that maps the zero words of the uncompressed data block is generated during compression. With the use of the map metadata, the compressed data block can be decompressed to restore the uncompressed data block.


