Systolic Array Parallelism via Multiple Accumulate Busses

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Systolic arrays used in artificial neural networks face challenges in achieving high inference throughput while minimizing power consumption and latency, as increasing clock speed leads to increased power consumption and cooling requirements, limiting performance improvements.

Innovation Solution

The implementation of multiple busses within the columns and rows of a systolic array allows for increased parallelism and reduced latency, enabling the use of lower-cost, lower-power processing elements by enabling sequence skipping and parallel accumulation, which decreases the overall path length of calculations and allows for longer latency operations without increasing overall latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If clock speed is increased to achieve high inference throughput, then processing speed is improved, but power consumption increases

Engineering Contradiction:
Improveinference throughputVSAvoidpower consumption
Core Design Contradiction:
SpeedVSUse of energy by moving object

Solution Approach 1:

The systolic array is divided into multiple independent compute blocks, each with its own accumulate bus. This segmentation allows parallel processing of multiple data streams simultaneously, increasing throughput without requiring higher clock speeds. Each block operates independently at lower frequencies while collectively achieving high overall throughput.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces parallelism along the data dimension by implementing multiple accumulate busses within each column. Instead of increasing speed along a single processing path, multiple simultaneous paths are created, allowing data to flow through parallel accumulation channels. This dimensional expansion of data flow paths increases throughput without proportionally increasing power consumption.

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

2Loss of time

If clock speed is increased to reduce latency, then processing speed is improved, but cooling requirements increase

Engineering Contradiction:
ImprovelatencyVSAvoidcooling requirements
Core Design Contradiction:
Loss of timeVSTemperature

Solution Approach 1:

By segmenting the accumulation function across multiple busses, the patent reduces the critical path length within each compute block. Data can be accumulated in parallel across these segmented paths, reducing the time required for each operation without requiring higher clock speeds, thereby reducing heat generation and cooling requirements.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The multiple accumulate busses enable continuous data flow and accumulation operations without idle waiting periods. Data streams can be processed continuously through parallel paths, reducing overall latency without requiring speed increases that would generate more heat.

Inventive Principle:
Principle #20Continuity of useful action

3Productivity

If multiple busses are implemented to increase parallelism, then throughput is improved, but device complexity increases

Engineering Contradiction:
Improveinference throughputVSAvoidsystolic array structure
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

Each compute block is designed as a universal unit that can handle multiple data streams through its multiple accumulate busses. The same compute block structure is replicated across the array, with each block serving multiple functions by processing different data streams in parallel. This multi-functionality increases throughput without requiring fundamentally different block designs.

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

Solution Approach 2:

The patent changes the parameter of accumulate bus quantity from one to multiple within each column. This parameter change enables parallel accumulation operations, increasing throughput. The complexity increase is managed by maintaining regular, repetitive block structures that can be systematically instantiated.

Inventive Principle:
Principle #35Parameter changes

4Loss of time

If multiple busses are implemented to enable sequence skipping, then latency is reduced, but manufacturing complexity increases

Engineering Contradiction:
Improvecalculation path lengthVSAvoidsystolic array fabrication
Core Design Contradiction:
Loss of timeVSEase of manufacture

Solution Approach 1:

The calculation path is segmented into multiple parallel accumulation paths, each handled by a separate bus. This segmentation allows data to skip intermediate steps by accumulating directly through the appropriate bus, reducing the effective path length. The segmented structure is manufactured using standard repeating block patterns.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent uses replication of identical compute block templates, each containing the same set of accumulate busses. This copying approach simplifies manufacturing by allowing the same design to be repeatedly instantiated across the array, reducing fabrication complexity despite the increased internal parallelism.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS11232062B1Parallelism within a systolic array using multiple accumulate busses
Publication Date: 2022.01.25 AMAZON TECH INC
  • US11232062B1 patent drawing
  • US11232062B1 patent drawing
  • US11232062B1 patent drawing

AI summary

Systems and methods are provided to enable parallelized multiply-accumulate operations in a systolic array. Each column of the systolic array can include multiple busses enabling independent transmission of input partial sums along the respective bus. Each processing element can include a plurality of interconnects to receive a plurality of inputs corresponding to the multiple busses. Each processing element of a given columnar bus can receive an input from a prior element of the given columnar bus at an active bus position and perform arithmetic operations on the input. Each processing element can further receive a plurality of inputs at passive bus positions and provide the plurality of inputs to subsequent processing elements without the plurality of inputs being processed by the processing element. Use of columnar busses can enable parallelization to increase speed or enable increased latency at individual processing elements.