Sparse Matrix Multiplication Processor Using Index Tuples

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing processors are inefficient in performing matrix multiplication, especially with sparse matrices, as they waste time, memory bandwidth, and power due to the presence of zero elements in the matrices.

Innovation Solution

A processor architecture is introduced that includes a vector unit capable of executing index tuples in parallel, generating result values by multiplying input vector elements with kernel weights, and adding these results to accumulators, optimized for sparse matrices by encoding non-zero elements and their indices into a binary format called Sparse Matrix Compiled Object (SMCO).

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional processors perform matrix multiplication by processing all elements including zeros, then complete matrix operations are achieved, but computational overhead and resource utilization increase significantly

Engineering Contradiction:
Improvematrix multiplication efficiencyVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent extracts and processes only the non-zero elements of the sparse matrix by using index tuples to identify positions of non-zero kernel weights. This extraction principle eliminates unnecessary processing of zero elements, directly reducing computational overhead and power consumption while maintaining correct matrix multiplication results.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent applies partial action by performing matrix multiplication operations only on the necessary non-zero elements rather than all elements. The index tuples enable the processor to selectively compute only the partial products that contribute to the final result, avoiding excessive computation on zero elements and improving overall efficiency.

Inventive Principle:
Principle #16Partial or excessive action

2Productivity

If traditional processors perform matrix multiplication by processing all elements including zeros, then complete matrix operations are achieved, but time consumption increases

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

Solution Approach 1:

The patent extracts only the non-zero elements using index tuples that store the positions of non-zero kernel weights. By extracting and processing only these essential elements, the computation time is significantly reduced compared to processing the entire matrix including all zero elements.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent performs preliminary action by pre-computing and storing index tuples that identify the positions of non-zero kernel weights before the actual matrix multiplication. This preliminary organization of data enables faster access and processing during the multiplication operation, reducing overall computation time.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If traditional processors perform matrix multiplication by processing all elements including zeros, then complete matrix operations are achieved, but memory bandwidth utilization increases

Engineering Contradiction:
Improvematrix multiplication throughputVSAvoidmemory bandwidth
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent extracts only the non-zero kernel weights and their positions using index tuples, thereby reducing the quantity of data that needs to be transferred between memory and processor. This extraction approach significantly reduces memory bandwidth utilization compared to loading and processing entire matrix rows including zero elements.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent applies partial action by loading and processing only the necessary non-zero kernel weights rather than all kernel weights. This selective processing reduces the volume of data transferred through memory bandwidth, improving system efficiency and reducing memory subsystem load.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS20250173393A1Sparse matrix multiplication
Publication Date: 2025.05.29 XMOS
  • US20250173393A1 patent drawing
  • US20250173393A1 patent drawing
  • US20250173393A1 patent drawing

AI summary

A processor and method for efficiently implementing matrix multiplication. The processor comprises: a first register (vC) for storing elements of an input vector (X); a second register (vB) for storing a plurality of index tuples, each index tuple comprising at least an input index addressing an element of the input vector (X) in the first register (vC); an output register (vA) comprising a plurality of accumulators for storing elements of an output vector (V); a vector unit configured to execute each index tuple in the second register (vB) in parallel by, for each index tuple: i) generating a respective result value by multiplying the element of the input vector (X) in the first register (vC) addressed by the input index of that index tuple by a corresponding kernel weight in a memory; and ii) adding the result value for that index tuple to one of the accumulators in the output register (vA).