Sparse Matrix Mask Compression for Faster Non-Zero Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional methods for storing and manipulating sparse matrices are inefficient due to the need for indirect addressing in dense-matrix structures, leading to slow processing and wasteful memory usage on zero-valued elements.

Innovation Solution

The implementation of a mask-based compression scheme that uses bitmasks to represent zero or non-zero elements, allowing for efficient packing and unpacking of data, reducing storage requirements and improving processing efficiency by eliminating unnecessary memory allocation for zero-valued elements.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If dense-matrix structures are used for storing sparse matrices, then the matrix can be stored in a standard format, but memory is wasted on zero-valued elements and processing speed decreases due to indirect addressing

Engineering Contradiction:
Improvememory storage efficiencyVSAvoidprocessing speed
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent extracts only the non-zero elements from the sparse matrix and stores them in a compressed format, eliminating the waste of memory on zero-valued elements. This is achieved by identifying and removing the zero elements, keeping only the essential data that contributes to computation.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent segments the sparse matrix storage into multiple components: a compressed data array containing only non-zero elements, and an index array that maps the compressed data back to their original positions. This segmentation allows efficient memory usage while maintaining the ability to access elements in their original context.

Inventive Principle:
Principle #1Segmentation

2Quantity of substance

If traditional CSR or CSC formats are used for sparse matrices, then storage is optimized, but indirect addressing is required for every scalar operation leading to slow processing

Engineering Contradiction:
Improvestorage efficiencyVSAvoidprocessing time
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The patent introduces an intermediary indexing mechanism that maps compressed array indices to original matrix positions. This intermediary layer enables direct addressing in the compressed format while maintaining the semantic meaning of the original matrix structure, eliminating the need for indirect addressing during operations.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent performs preliminary organization of data during the compression phase, arranging non-zero elements and their indices in an optimized structure. This preliminary action ensures that subsequent operations can proceed with direct addressing without requiring additional indirect lookup steps during computation.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11469772B2Method, system and program product for mask-based compression of a sparse matrix
Publication Date: 2022.10.11 HUANG JOSHUA
  • US11469772B2 patent drawing
  • US11469772B2 patent drawing
  • US11469772B2 patent drawing

AI summary

A method, system, and program product accesses chunks of data identifying data elements. A mask is used to identify a position of the data elements that have zero values and that have non-zero values. The data elements are processed based on the mask. For compression of data, data elements in chunks of data that have zero values and that have non-zero values are determined. A mask is used to identify a position of the data elements that have zero values and that have non-zero values. The data elements in the chunks of data having zero values are removed. The data elements having non-zero values are packed into the chunks to form the compressed data. For decompressing the data, zero-value data elements are added in positions in the chunks of data according to the mask to form uncompressed data.