Systolic Array Transposed Convolution Memory Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Transposed convolution operations in neural network processors require a large number of memory operations for generating dilated input and rotated weight data matrices, leading to efficiency degradation due to memory access latency.

Innovation Solution

A neural network processor configuration that includes a memory, systolic array, and controller, where the controller loads weight and input data elements into the systolic array to perform partial sums, avoiding the need for extensive memory copying and dilation operations by using a summation buffer to accumulate results and handle zero output elements efficiently.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional memory-based transposed convolution operations are used, then the operation can be performed with standard memory access patterns, but the number of memory operations increases significantly leading to efficiency degradation

Engineering Contradiction:
Improvetransposed convolution operation speedVSAvoidmemory access latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The transposed convolution operation is segmented into distinct functional units within the systolic array architecture. The array is divided into multiple processing elements that each handle specific computational tasks, allowing parallel processing of different portions of the input data matrix. This segmentation enables simultaneous computation of multiple output elements, reducing overall execution time and memory access requirements.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The systolic array acts as an intermediary computational structure between memory and the final output. Instead of directly accessing memory for each computation, data flows through the systolic array where intermediate calculations are performed in a pipelined manner. This intermediary structure buffers data flows and performs computations in between memory accesses, reducing the frequency and latency of memory operations.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If dilated input data matrix and rotated weight data matrix are generated through copying operations, then the transposed convolution can be performed correctly, but the device complexity and memory operations increase

Engineering Contradiction:
Improvetransposed convolution correctnessVSAvoidmemory copying and dilation operations
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

Instead of creating dilated input matrices and rotated weight matrices through copying and transformation operations, the systolic array inverts the approach by directly computing the transposed convolution using the original input and weight matrices. The computational pattern within the systolic array inherently produces the correct transposed convolution results without requiring explicit dilation or rotation steps, thereby reducing device complexity.

Inventive Principle:
Principle #13The other way round (Inversion)

Solution Approach 2:

The patent extracts the essential computational pattern of transposed convolution and implements it directly within the systolic array logic. Rather than extracting data into separate dilated and rotated matrices, the computation is performed in-place within the array structure, taking out only the necessary computational operations and eliminating the need for intermediate data transformation steps.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS11954583B2Transposed convolution using systolic array
Publication Date: 2024.04.09 AMAZON TECH INC
  • US11954583B2 patent drawing
  • US11954583B2 patent drawing
  • US11954583B2 patent drawing

AI summary

In one example, a neural network accelerator can execute a set of instructions to: load a first weight data element from a memory into a systolic array, the first weight data element having first coordinates; extract, from the instructions, information indicating a first subset of input data elements to be obtained from the memory, the first subset being based on a stride of a transposed convolution operation and second coordinates of first weight data element in a rotated array of weight data elements; based on the information, obtain the first subset of input data elements from the memory; load the first subset of input data elements into the systolic array; and control the systolic array to perform first computations based on the first weight data element and the first subset of input data elements to generate output data elements of an array of output data elements.