Sparse Matrix Loading for Faster Row-Wise Matrix Multiplication

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data operation technologies face challenges in performing matrix-to-matrix multiplication efficiently and quickly, particularly in large-scale operations such as those required for 3D graphic acceleration, wireless network data, and biographical data, which are critical for improving the performance of machine learning applications.

Innovation Solution

A data operation device and method that utilizes a memory to store sparse matrices, a vector unit for row-wise product-based matrix multiplication, and a memory load unit to load specific vector data based on non-zero elements, optimizing the matrix multiplication process.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional matrix multiplication methods are used, then the operation can be performed with standard algorithms, but the processing speed and efficiency are insufficient for large-scale operations

Engineering Contradiction:
Improvematrix multiplication speedVSAvoidoperation time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent segments the second matrix into multiple blocks (first block, second block, third block, fourth block) corresponding to different data types. This allows parallel processing of different data types simultaneously, improving matrix multiplication speed while reducing overall operation time through concurrent execution of multiple processing streams

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension of processing by organizing matrix data into multi-dimensional blocks with different data types (e.g., first data type, second data type, third data type, fourth data type). This dimensional organization enables the vector processing unit to handle multiple data types in parallel, significantly enhancing processing throughput for large-scale matrix operations

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

2Productivity

If all vector data is loaded into the vector unit, then complete matrix rows can be processed, but memory access time and energy consumption increase

Engineering Contradiction:
Improveprocessing throughputVSAvoidmemory access energy
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent extracts and processes only the necessary blocks of the second matrix that correspond to non-zero elements in the first sparse matrix. By identifying which blocks contain relevant data and loading only those into the vector unit, the system reduces memory access energy consumption while maintaining processing throughput for sparse matrix operations

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent implements partial loading of matrix data by selectively loading only the required blocks into the vector unit based on the sparsity pattern of the first matrix. This partial action approach avoids the energy cost of loading entire matrix rows, achieving efficient processing by performing exactly the necessary computations without redundant memory accesses

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS20250232004A1Data operation method and data operation device supporting the same
Publication Date: 2025.07.17 REBELLIONS INC
  • US20250232004A1 patent drawing
  • US20250232004A1 patent drawing
  • US20250232004A1 patent drawing

AI summary

A data operation device is disclosed. The data operation device comprises at least one memory configured to store a first data set represented as a first sparse matrix and a second data set represented as a second matrix, a vector unit configured to perform a row-wise product-based matrix multiplication operation based on the first sparse matrix and the second matrix and output a third data set represented as a third matrix, and a memory load unit configured to load into the vector unit first vector data associated with a row of the first sparse matrix from the first data set, and second vector data associated with a row of the second matrix that corresponds to an order of non-zero vector elements included in the first vector data from the second data set.