Systolic Array Fine-Grained Sparsity Computation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Systolic arrays face inefficiencies when performing matrix multiplications on sparse weight matrices, as many processing elements perform unnecessary computations with zero values, leading to wasted capacity and increased power consumption, and storage of these matrices requires significant memory for zero values.

Innovation Solution

The architecture is optimized by decomposing sparse weight matrices into constrained fine-grained sparse matrices, which are stored without zero values and loaded into a systolic array in a compressed form, allowing processing elements to select appropriate input elements based on metadata, thereby minimizing rows used and reducing power consumption.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If sparse weight matrices are stored and processed in conventional form, then complete matrix data is available, but significant memory is consumed for zero values and processing elements waste capacity performing unnecessary computations

Engineering Contradiction:
Improvecomputational efficiencyVSAvoidmemory consumption
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent extracts only the non-zero values from sparse weight matrices and stores them in a compressed format with metadata indicating their positions. This eliminates the need to store zero values in memory, significantly reducing memory consumption while maintaining the ability to perform matrix multiplication operations.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent segments the weight matrix into non-zero values and zero values, processing only the non-zero values through the systolic array. The metadata provides information about the positions of non-zero values, allowing the system to reconstruct the full matrix behavior without processing zero values, thus improving computational efficiency.

Inventive Principle:
Principle #1Segmentation

2Reliability

If all processing elements perform matrix multiplication operations, then complete computations are executed, but power consumption increases due to unnecessary operations with zero values

Engineering Contradiction:
Improvecomputational completenessVSAvoidpower consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent applies local quality by enabling processing elements to selectively operate on non-zero values based on metadata information. Each processing element can identify whether its corresponding weight value is non-zero and adjust its operation accordingly, performing multiplication only when necessary and skipping operations when the weight is zero, thus reducing power consumption while maintaining computational reliability.

Inventive Principle:
Principle #3Local quality

3Ease of operation

If conventional matrix storage is used, then all data is readily accessible, but memory bandwidth is wasted loading zero values into the systolic array

Engineering Contradiction:
Improvedata accessibilityVSAvoidmemory bandwidth utilization
Core Design Contradiction:
Ease of operationVSLoss of energy

Solution Approach 1:

The patent performs preliminary action by pre-processing the weight matrix to identify and separate non-zero values from zero values before loading into the systolic array. The metadata is prepared in advance to indicate the positions of non-zero values, allowing the system to load only the necessary non-zero values and their position information, eliminating wasted memory bandwidth on zero values while maintaining ease of operation through the metadata guidance.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS12182695B1Fine-grained sparsity computations in systolic array
Publication Date: 2024.12.31 AMAZON TECH INC
  • US12182695B1 patent drawing
  • US12182695B1 patent drawing
  • US12182695B1 patent drawing

AI summary

A systolic array can implement an architecture tailored to perform matrix multiplications on sparse matrices. Each processing element in the systolic array may include a register configured to store a value, and a multiplexor configured to select an input element from multiple input data buses based on metadata associated with the value. Each processing element may also include a multiplier configured to multiply the selected input element with the value to generate a multiplication result, and an adder configured to add the multiplication result to a partial sum input to generate a partial sum output.