Matrix Multiply Cell Array With Width-Adaptive Dot Product Tiling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing matrix multiplication techniques are computationally intensive, particularly for large matrices, and there is a need for more efficient methods to accelerate these computations.

Innovation Solution

A matrix multiply engine is implemented with a first and second operand buffer and a cell array that computes dot products of multiple elements in an operating cycle, utilizing a cell array with accumulator circuitry to increase arithmetic intensity, and supports operand width-dependent patch thickness for efficient matrix multiplication.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional scalar multiplication operations are used for matrix multiplication, then computational accuracy is maintained, but computational intensity and processing time increase significantly

Engineering Contradiction:
Improvecomputational speedVSAvoidcomputational complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The matrix multiplication operation is segmented into smaller dot product computations that can be performed in parallel. Each cell in the cell array processes a specific portion of the matrix multiplication by computing dot products of column vectors, dividing the overall computational task into manageable segments that execute simultaneously

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Multiple scalar multiplication operations are merged into parallel dot product computations. The cell array combines multiple multiplication and addition operations into unified dot product calculations, increasing arithmetic intensity and reducing the total number of sequential operations required

Inventive Principle:
Principle #5Merging (Combining)

2Productivity

If operand width is decreased to improve arithmetic intensity, then processing efficiency increases, but the number of operations required increases

Engineering Contradiction:
Improvearithmetic intensityVSAvoidnumber of operations
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system dynamically adjusts the patch thickness TK based on the operand width. When operand width decreases, the patch thickness is increased to maintain optimal arithmetic intensity. This dynamic adaptation ensures that the cell array processes data efficiently across different precision levels

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patch thickness parameter TK is changed according to operand width to optimize performance. The system modifies this critical parameter to balance the trade-off between arithmetic intensity and operation count, ensuring efficient processing across different data types

Inventive Principle:
Principle #35Parameter changes

3Speed

If parallel processing is used to accelerate matrix multiplication, then processing speed increases, but hardware complexity increases

Engineering Contradiction:
Improveprocessing speedVSAvoidhardware complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The parallel processing architecture is segmented into multiple identical cells arranged in a grid. Each cell performs the same dot product computation independently, allowing for simple parallel execution without complex coordination logic between processing units

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The cell array provides a universal processing unit that can handle different matrix sizes and precision levels. Each cell is designed to perform the same function across multiple operations, simplifying the hardware design compared to specialized parallel processors

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS20260056737A1Matrix multiply engine
Publication Date: 2026.02.26 SIFIVE INC
  • US20260056737A1 patent drawing
  • US20260056737A1 patent drawing
  • US20260056737A1 patent drawing

AI summary

A matrix multiply engine can include a first operand buffer and a second operand buffer, each of which can store multiple operand elements arranged in rows and columns. A cell array can be formed of cells, where each cell includes a memory and accumulator circuitry to receive operand elements column-wise from each of the first operand buffer and the second operand buffer, to compute a dot product of the received operand elements, and to accumulate the dot product into a corresponding tile state element in the memory. Matrix elements of the operand matrices to be multiplied can be loaded row-wise into rows of the operand buffers and read column-wise into the cells. The number of elements for which a dot product is computed can be selected depending on operand element width.