Sparse Matrix Compression Core for Rapid Random Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Machine intelligence systems are computationally and energy intensive due to large data structures and sparse data management challenges, which are difficult to parallelize and require significant storage and memory resources.

Innovation Solution

A method and system for efficiently compressing and decompressing sparse data using specialized data structures and clocked logic units, allowing rapid random access and storage of directed graph data in processing cores, including multi-dimensional tiles with headers and payloads that store metadata and digest information for efficient computation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If traditional ANNs store sparse data in conventional formats, then data can be readily retrieved for computation, but storage space requirements become excessively large

Engineering Contradiction:
Improvestorage spaceVSAvoiddata retrieval efficiency
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent segments sparse matrix data into three separate compressed structures: non-zero values, column indices, and row pointers. This segmentation allows efficient storage by only retaining meaningful data elements while enabling rapid retrieval through the pointer structures that organize the segmented data for computational access.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transforms the data storage parameters by converting dense matrix representations into compressed sparse formats. This parameter change reduces the quantity of stored data from O(m×n) to O(nnz) where nnz is the number of non-zero elements, while the row pointer and column index parameters enable efficient random access retrieval.

Inventive Principle:
Principle #35Parameter changes

2Quantity of substance

If sparse data is compressed using known methods, then storage requirements are reduced, but the ability to rapidly access and decompress data for computation is compromised

Engineering Contradiction:
Improvedata storage sizeVSAvoiddecompression speed
Core Design Contradiction:
Quantity of substanceVSSpeed

Solution Approach 1:

The patent performs preliminary organization of sparse data during the compression phase by pre-calculating and storing row pointer arrays and column index arrays. This preliminary action enables rapid decompression because the structure is already optimized for retrieval, eliminating the need for complex decompression algorithms and allowing direct access to non-zero elements during computation.

Inventive Principle:
Principle #10Preliminary action

3Ease of operation

If traditional memory structures are used for sparse data, then random access is possible, but memory bandwidth consumption increases significantly

Engineering Contradiction:
Improverandom access capabilityVSAvoidmemory bandwidth consumption
Core Design Contradiction:
Ease of operationVSUse of energy by moving object

Solution Approach 1:

The patent extracts only the essential non-zero data elements from the sparse matrix and stores them in a compact format, removing redundant zero elements. This extraction reduces memory bandwidth consumption by eliminating unnecessary data transfers while the column index and row pointer structures maintain random access capability to the extracted non-zero elements.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentEP3776869B1Processing core data compression and storage system
Publication Date: 2026.04.22 TENSTORRENT AI ULC
  • EP3776869B1 patent drawingFigure 1
  • EP3776869B1 patent drawingFigure 2
  • EP3776869B1 patent drawingFigure 3

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 decompressed can be conducted using the row pointers.