Systolic Array Outer-Product Matrix Multiplication

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computational architectures face inefficiencies in performing high-speed parallel computations for large-scale matrix multiplications, particularly in convolutions used in neural networks, due to limitations in data processing and accumulation operations.

Innovation Solution

A systolic array of processing elements arranged in a grid, equipped with multipliers and accumulators, performs concurrent multiply and accumulate operations, with synchronization logic loading vectors from memory and transferring data through accumulators for efficient computation and output of outer products of matrices.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a systolic array with multiple accumulators per processing element is used, then computation speed and parallelism are improved, but device complexity and power consumption increase

Engineering Contradiction:
Improvecomputation speedVSAvoiddevice complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The systolic array is divided into processing elements arranged in a grid, where each processing element handles specific computations independently. This segmentation enables parallel processing of matrix multiplication operations while maintaining manageable complexity at each node.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Accumulator logic is extracted from individual processing elements and implemented as shared external resources. This separation allows processing elements to focus on multiplication operations while accumulators handle summation, improving computational efficiency without increasing per-element complexity.

Inventive Principle:
Principle #2Taking out (Extraction)

2Productivity

If more accumulators are provided in each processing element, then accumulation operations become faster, but physical size and power consumption increase

Engineering Contradiction:
Improveaccumulation speedVSAvoidphysical size
Core Design Contradiction:
ProductivityVSWeight of stationary object

Solution Approach 1:

External accumulators serve multiple processing elements simultaneously, acting as shared resources for accumulation operations. This multi-functionality enables fast accumulation across the array without requiring dedicated accumulators in each processing element, reducing overall physical size.

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

Solution Approach 2:

External RAM structures act as intermediary accumulation resources between processing elements and output. This mediation enables efficient data accumulation and transfer without requiring large on-chip memory in each processing element, reducing power consumption and physical footprint.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Use of energy by stationary object

If data is transferred through accumulators in external RAM, then power consumption is reduced, but data access time may increase

Engineering Contradiction:
Improvepower consumptionVSAvoiddata access time
Core Design Contradiction:
Use of energy by stationary objectVSLoss of time

Solution Approach 1:

The external RAM accumulators are designed to continuously receive and process data from multiple processing elements without idle cycles. This continuous operation maintains high throughput while using energy-efficient external memory, preventing time losses despite the external location of accumulators.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS10713214B1Hardware accelerator for outer-product matrix multiplication
Publication Date: 2020.07.14 INTEL OVERSEAS FUNDING CORP
  • US10713214B1 patent drawing
  • US10713214B1 patent drawing
  • US10713214B1 patent drawing

AI summary

Computational apparatus includes a systolic array of processing elements, each including a multiplier and first and second accumulators. In each of a sequence of processing cycles, the processing elements perform the following steps concurrently: Each processing element, except in the first row and first column of the array, receives first and second operands from adjacent processing elements in a preceding row and column of the array, respectively, multiplies the first and second operands together to generate a product, and accumulates the product in the first accumulator. In addition, each processing element passes a stored output data value from the second accumulator to a succeeding processing element along a respective column of the array, receives a new output data value from a preceding processing element along the respective column, and stores the new output data value in the second accumulator.