Transpose Circuitry in Programmable Compute Engine

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Neural network accelerators face inefficiencies due to the need for transpose operations, which consume processing cycles and introduce latency by using the processing engine array for data rearrangement, especially when preparing tensors for subsequent computations.

Innovation Solution

Integrating transpose circuitry into the compute engine's datapath allows for on-the-fly tensor transposition before processing, eliminating the need for the processing engine array and reducing memory usage by avoiding intermediate transposed tensor storage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Shape

If the processing engine array is used to perform transpose operations for data rearrangement, then the tensor data can be properly organized for subsequent computations, but processing cycles are consumed and latency is introduced

Engineering Contradiction:
Improvedata layoutVSAvoidprocessing latency
Core Design Contradiction:
ShapeVSLoss of time

Solution Approach 1:

The patent divides the transpose operation into two independent segments: a dedicated transpose circuit handles data rearrangement while the processing engine array simultaneously performs computational operations on different data. This segmentation eliminates the sequential dependency where computation must wait for transpose completion, thereby reducing processing latency while achieving proper data organization.

Inventive Principle:
Principle #1Segmentation

2Shape

If the processing engine array is used to perform transpose operations, then data can be rearranged, but processing cycles are consumed that could be used for meaningful computations

Engineering Contradiction:
Improvedata layoutVSAvoidcomputational throughput
Core Design Contradiction:
ShapeVSProductivity

Solution Approach 1:

The patent separates the transpose function from the computation function by introducing a dedicated transpose circuit. This allows the processing engine array to maintain full productivity by performing computational operations without being diverted to transpose operations, while the transpose circuit independently handles data rearrangement tasks.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediate buffer memory structure that decouples the transpose operation from the computation operation. The transpose circuit writes rearranged data to the buffer while the processing engine array reads original data for computation, enabling parallel execution and eliminating resource contention.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Shape

If transpose operations are performed using the processing engine array, then data layout can be changed, but memory bandwidth is consumed for reading and writing tensor data

Engineering Contradiction:
Improvedata layoutVSAvoidmemory bandwidth
Core Design Contradiction:
ShapeVSQuantity of substance

Solution Approach 1:

The patent introduces an intermediate buffer memory structure that decouples the transpose operation from the computation operation. The transpose circuit writes rearranged data to the buffer while the processing engine array reads original data for computation, enabling parallel execution and eliminating resource contention.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS12008368B2Programmable compute engine having transpose operations
Publication Date: 2024.06.11 AMAZON TECH INC
  • US12008368B2 patent drawing
  • US12008368B2 patent drawing
  • US12008368B2 patent drawing

AI summary

A technique to execute transpose and compute operations may include retrieving a set of machine instructions from an instruction buffer of a data processor. The instruction buffer has multiple entries, and each entry stores one machine instruction. A machine instruction from the set of machine instructions is executed to transpose a submatrix of an input tensor and perform computations on column elements of the submatrix. The machine instruction combines the transpose operation with computational operations into a single machine instruction.