Strided Dot Product Computation Engine for LSTM Power Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

General-purpose processors, even with vector instructions, exhibit low performance and high power consumption on workloads that require massive computations, such as those used in LSTM algorithms, which is particularly problematic for battery-powered systems like mobile devices.

Innovation Solution

A computation engine offloads work from the processor and efficiently performs computations like dot products by using strided operations, where a subset of vector elements are selected for the dot product operation, reducing unnecessary computations and improving performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If general-purpose processors perform dot product computations using vector instructions, then the computations can be executed, but the performance is very low and power consumption is very high

Engineering Contradiction:
Improvecomputation performanceVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The computation engine is segmented from the general-purpose processor, creating a dedicated hardware unit for specific computational tasks. This segmentation allows the computation engine to be optimized for specific operations like dot products and LSTM workloads, achieving high performance with lower power consumption compared to general-purpose processors

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The computation engine acts as an intermediary between the processor and memory systems, handling computationally intensive tasks. It receives data from memory, performs optimized computations using dedicated hardware circuits, and returns results to the processor, thereby offloading work from the general-purpose processor and improving overall system efficiency

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If all vector elements are processed in dot product operations, then complete computation is achieved, but unnecessary computations increase power consumption and reduce efficiency

Engineering Contradiction:
Improvecomputation completenessVSAvoidpower consumption
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The computation engine extracts and processes only the necessary subset of vector elements based on stride parameters. By taking out only the required elements for computation and skipping unnecessary ones, the system achieves energy efficiency while maintaining computation reliability for the needed data points

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system performs partial action by processing only the necessary portion of vector elements rather than all elements. The stride mechanism allows selective processing of elements at specific intervals, avoiding excessive computation on unnecessary data while ensuring all required computations are performed

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10990401B2Computation engine with strided dot product
Publication Date: 2021.04.27 APPLE INC
  • US10990401B2 patent drawing
  • US10990401B2 patent drawing
  • US10990401B2 patent drawing

AI summary

In an embodiment, a computation engine may perform dot product computations on input vectors. The dot product operation may have a first operand and a second operand, and the dot product may be performed on a subset of the vector elements in the first operand and each of the vector elements in the second operand. The subset of vector elements may be separated in the first operand by a stride that skips one or more elements between each element to which the dot product operation is applied. More particularly, in an embodiment, the input operands of the dot product operation may be a first vector having second vectors as elements, and the stride may select a specified element of each second vector.