Scalable Element-by-Vector Data Processing Apparatus
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing data processing techniques fail to scale effectively for large vectors when performing arithmetic operations, such as matrix multiplies, which require combining a single element with an entire vector.
Innovation Solution
A data processing apparatus and method that utilize register storage circuitry, decoder circuitry, and processing circuitry to perform element-by-vector operations by specifying a first source register, a second source register, and an index, allowing for scalable operations by replicating the selected data element across data groups within the registers.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If existing vector by scalar SIMD instructions are used to perform arithmetic operations, then the operation can be performed using standard instructions, but the technique does not scale well to large vectors
Solution Approach 1:
The patent segments large vectors into multiple data groups, where each data group contains a subset of vector elements. The instruction operates on one data group at a time, with the segment index specifying which data group to process. This segmentation enables the instruction to scale to arbitrarily large vectors by simply increasing the number of data groups rather than changing the fundamental instruction structure or increasing overall instruction complexity.
2Speed
If traditional vector operations are used to combine a single element with an entire vector, then the operation can be performed, but the latency is higher compared to grouped operations
Solution Approach 1:
The patent applies partial action by operating on data groups rather than entire vectors in a single step. Each instruction processes a partial subset (one data group) of the full vector, completing the operation more quickly with reduced latency. Multiple partial operations can then be chained to process the entire vector, achieving both low latency for each operation and high overall throughput.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A data processing apparatus, a method of operating a data processing apparatus, a non-transitory computer readable storage medium, and an instruction are provided. The instruction specifies a first source register, a second source register, and an index. In response to the instruction control signals are generated, causing processing circuitry to perform a data processing operation with respect to each data group in the first source register and the second source register to generate respective result data groups forming a result of the data processing operation. Each of the first source register and the second source register has a size which is an integer multiple at least twice a predefined size of the data group, and each data group comprises a plurality of data elements. The operands of the data processing operation for each data group are a selected data element identified in the data group of the first source register by the index and each data element in the data group of the second source register. A technique for element-by-vector operation which is readily scalable as the register width grows.