Sparse Matrix Compression with Row Pointers for Fast Decompression

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Machine intelligence systems are computationally and energy intensive due to large data structures and immense discrete computations, leading to storage and memory management challenges, particularly with sparse data that encodes spatial information, and are difficult to parallelize, resulting in high resource requirements.

Innovation Solution

The development of methods and systems for rapid and efficient compression and decompression of sparse data using specialized data structures and clocked logic that evaluate data entries, extract sparse and non-sparse values, formulate row pointers, and store them in memory addresses, enabling rapid decompression and random access for efficient computation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If traditional ANNs store sparse data in conventional formats, then data storage space is occupied, but storage efficiency is low and memory management is difficult

Engineering Contradiction:
Improvestorage spaceVSAvoidstorage efficiency
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent segments sparse matrix data into three separate components: non-sparse values, column indices, and row pointers. This segmentation allows each component to be stored independently in optimized data structures (CSR format), improving storage efficiency while maintaining the ability to reconstruct the original sparse matrix for computation

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent changes the storage parameter from dense matrix format to sparse matrix format by storing only non-zero elements and their positions. This parameter change reduces the quantity of stored data while preserving the essential spatial information needed for machine intelligence computations

Inventive Principle:
Principle #35Parameter changes

2Productivity

If machine intelligence systems use large data structures for computations, then computational capability is enhanced, but resource requirements increase

Engineering Contradiction:
Improvecomputational capabilityVSAvoidresource requirements
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent extracts only the essential non-sparse data elements from the full data structure, storing them in optimized formats. This extraction reduces the quantity of stored data while preserving the computational capability needed for machine intelligence operations

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent transforms the storage problem from a two-dimensional dense matrix to a one-dimensional array with auxiliary index structures. This dimensional change allows more efficient packing of data in memory while maintaining random access capability through the row pointer and column index structures

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

3Productivity

If sparse data is compressed for storage, then storage efficiency is improved, but decompression speed may be reduced

Engineering Contradiction:
Improvestorage efficiencyVSAvoiddecompression speed
Core Design Contradiction:
ProductivityVSSpeed

Solution Approach 1:

The patent performs preliminary organization of sparse data into CSR format during the compression phase, arranging non-sparse values, column indices, and row pointers in optimized sequences. This preliminary action enables faster decompression because the data is already structured for efficient reconstruction without requiring complex processing during the decompression phase

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10938413B2Processing core data compression and storage system
Publication Date: 2021.03.02 TENSTORRENT AI ULC
  • US10938413B2 patent drawing
  • US10938413B2 patent drawing
  • US10938413B2 patent drawing

AI summary

Methods and systems regarding the rapid and efficient compression and decompression of sparse data are disclosed. One method for compressing a set of data from a sparse matrix includes, evaluating a sequence of data entries from the set of data, extracting a sequence of sparse data values from the sequence, extracting a sequence of non-sparse data value run lengths from the sequence, formulating a set of row pointers from the sequence, storing the sequence of sparse data values in a first set of memory addresses, and storing the sequence of non-sparse data value run lengths in a second set of memory addresses. The set of row pointers identify a set of rows of the sparse matrix in both the first and second sets of memory addresses. Rapid decompression can be conducted using the row pointers.