Computation Engine Matrix Vector Mode Parallel Processing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Modern computing systems face performance and power efficiency issues when performing massive vector multiplications and outer product operations, particularly in battery-powered systems where general-purpose CPUs with vector instructions exhibit low performance and high power consumption.
Innovation Solution
A computation engine is designed to perform vector multiplications and outer product operations efficiently by specifying a matrix or vector mode, allowing for parallel computations and flexible operand locations, and supporting instructions like fused multiply-add and multiply-accumulate operations to enhance performance and reduce power consumption.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If general-purpose CPU with vector instructions is used to perform vector multiplications, then the system can handle diverse workloads, but the performance is very low and power consumption is very high
Solution Approach 1:
The computation engine is segmented into dedicated functional units including multiple vector processing units (VPUs) and matrix processing units (MPUs), each specialized for specific operation types. This segmentation allows simultaneous execution of different operation types in parallel, achieving high performance for vector multiplications while maintaining the ability to handle diverse workloads through configurable processing units.
Solution Approach 2:
The computation engine acts as an intermediary between the general-purpose CPU and memory systems, offloading computationally intensive vector and matrix operations from the CPU. The engine includes dedicated input memories (X and Y) and result memories (Z) that serve as intermediaries for data exchange, reducing memory access latency and improving overall system performance for machine learning workloads.
2Adaptability or versatility
If general-purpose CPU with vector instructions is used to perform vector multiplications, then the system can handle diverse workloads, but the power consumption is very high
Solution Approach 1:
The computation engine is segmented into dedicated functional units including multiple vector processing units (VPUs) and matrix processing units (MPUs), each specialized for specific operation types. This segmentation allows simultaneous execution of different operation types in parallel, achieving high performance for vector multiplications while maintaining the ability to handle diverse workloads through configurable processing units.
Solution Approach 2:
The computation engine acts as an intermediary between the general-purpose CPU and memory systems, offloading computationally intensive vector and matrix operations from the CPU. The engine includes dedicated input memories (X and Y) and result memories (Z) that serve as intermediaries for data exchange, reducing memory access latency and improving overall system performance for machine learning workloads.
3Productivity
If computation engine performs numerous computations in parallel, then the performance is high, but the device complexity increases
Solution Approach 1:
The computation engine employs universal processing units that can operate in multiple modes. The vector processing units (VPUs) can perform both vector operations and matrix operations depending on configuration, and the matrix processing units (MPUs) can handle different matrix dimension combinations. This multi-functionality allows the engine to achieve high performance through parallel processing while reducing the number of specialized units needed, thereby controlling complexity.
Solution Approach 2:
The engine handles different operation types by adding a configuration dimension rather than creating separate hardware paths. Instructions include mode bits that switch the processing units between vector and matrix operation modes, allowing the same physical units to serve multiple purposes. This dimensional approach to configurability enables high performance parallel processing without proportionally increasing device complexity.
Data Source
AI summary
In an embodiment, a computation engine is configured to perform vector multiplications, producing either vector results or outer product (matrix) results. The instructions provided to the computation engine specify a matrix mode or a vector mode for the instructions. The computation engine performs the specified operation. The computation engine may perform numerous computations in parallel, in an embodiment. In an embodiment, the instructions may also specify an offset with the input memories, providing additional flexibility in the location of operands. More particularly, the computation engine may be configured to perform numerous multiplication operations in parallel and to accumulate results in a result memory, performing multiply-accumulate operations for each matrix/vector element in the targeted locations of the output memory.


