Compressed Sparse Matrix Transpose via Pattern Numbers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional methods for matrix operations in artificial neural networks are inefficient in terms of data storage and processing power, particularly when dealing with sparse matrices, as they require decompression and recompression during transposition, which is data-intensive and computationally costly.

Innovation Solution

The method involves representing a compressed sparse matrix as a set of compressed sparse submatrices in a logical space, using pattern numbers as metadata instead of indices, and generating a compressed transpose without decompressing the matrix, utilizing a look-up table to directly determine the transpose, thereby reducing data storage and processing requirements.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional methods are used for transposing compressed sparse matrices, then the transposition operation can be performed, but decompression and recompression are required which increases data storage requirements and computational cost

Engineering Contradiction:
Improvetransposition operation efficiencyVSAvoiddata storage requirements
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The compressed sparse matrix is divided into multiple compressed sparse submatrices arranged in a logical space. Each submatrix can be independently transposed using pattern numbers, avoiding the need to decompress and recompress the entire matrix. This segmentation enables efficient transposition while maintaining compression and reducing computational overhead.

Inventive Principle:
Principle #1Segmentation

2Loss of time

If conventional methods are used for transposing compressed sparse matrices, then the transposition operation can be performed, but decompression and recompression are required which increases computational cost

Engineering Contradiction:
Improveprocessing timeVSAvoidcomputational energy
Core Design Contradiction:
Loss of timeVSUse of energy by moving object

Solution Approach 1:

Pattern numbers are pre-computed and stored for each compressed sparse submatrix, representing the transposition pattern without requiring actual decompression. During transposition operations, these pre-computed pattern numbers are directly utilized to rearrange submatrices, eliminating the need for time-consuming decompression and recompression processes and reducing computational energy consumption.

Inventive Principle:
Principle #10Preliminary action

3Quantity of substance

If pattern numbers are used instead of indices, then data storage is reduced and processing is simplified, but a different data representation scheme is required

Engineering Contradiction:
Improvemetadata storageVSAvoiddata representation complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent transforms the traditional index-based metadata representation into a pattern number-based representation. Each compressed sparse submatrix is assigned a pattern number that encodes its transposition characteristics. This parameter change reduces metadata storage requirements and simplifies processing operations, as pattern numbers directly indicate how submatrices should be rearranged during transposition without requiring complex index calculations.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11249727B2Efficient matrix data format applicable for artificial neural network
Publication Date: 2022.02.15 NVIDIA CORP
  • US11249727B2 patent drawing
  • US11249727B2 patent drawing
  • US11249727B2 patent drawing

AI summary

Many computing systems process data organized in a matrix format. For example, artificial neural networks (ANNs) perform numerous computations on data organized into matrices using conventional matrix arithmetic operations. One such operation, which is commonly performed, is the transpose operation. Additionally, many such systems need to process many matrices and/or matrices that are large in size. For sparse matrices that hold few significant values and many values that can be ignored, transmitting and processing all the values in such matrices is wasteful. Thus, techniques are introduced for storing a sparse matrix in a compressed format that allows for a matrix transpose operation to be performed on the compressed matrix without having to first decompress the compressed matrix. By utilizing the introduced techniques, more matrix operations can be performed than conventional systems.