XNOR Processor Inner Products for Non-Binarized Arrays
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing binary logic units, such as XNOR units, cannot directly perform inner products involving non-binarized arrays, limiting their applicability in complex calculations like convolution operations in neural networks and filter applications to digital signals.
Innovation Solution
The method decomposes non-binarized arrays into binarized arrays using a predetermined vector basis, allowing XNOR units to calculate inner products by representing elements as binary values, and then reconstructing the final output from the results of these binarized operations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If binary logic units (XNOR units) are used to perform inner products, then computational efficiency is improved, but the ability to handle non-binarized arrays is lost
Solution Approach 1:
The non-binarized array is decomposed into multiple binarized arrays, each representing a specific bit position or weight component. This segmentation allows the binary logic unit to process each binarized array separately using efficient XNOR operations, while the results are later recombined to reconstruct the full precision result.
Solution Approach 2:
The precision parameter of the input array is dynamically adjusted by decomposing it into multiple lower-precision binarized arrays. This parameter transformation enables the binary logic unit to operate at its optimal binarized precision while still representing the original higher-precision data through weighted combinations of multiple binarized components.
2Adaptability or versatility
If additional hardware is added to support non-binarized inner products, then versatility is improved, but device complexity increases
Solution Approach 1:
The binary logic unit is enhanced with decomposition and recombination logic that enables it to handle both binarized and non-binarized arrays using the same core XNOR-based computational engine. This multi-functionality allows a single hardware unit to perform multiple types of inner product operations without requiring separate dedicated hardware for each data type.
Solution Approach 2:
Binarized arrays serve as intermediary representations that bridge the gap between the binary logic unit's native binarized operation capability and the need to process non-binarized data. The decomposition process creates these intermediary binarized arrays that can be processed by the existing binary logic unit, avoiding the need for complex direct non-binarized processing hardware.
3Measurement precision
If non-binarized arrays are processed directly, then precision is maintained, but computational speed decreases
Solution Approach 1:
The precise non-binarized array is segmented into multiple binarized arrays, each capturing a portion of the precision information. The binary logic unit efficiently computes inner products for each binarized array in parallel or sequential fashion, and the results are recombined with appropriate weights to reconstruct the full precision result, achieving both speed and precision.
Solution Approach 2:
Instead of processing the entire non-binarized array in a single slow operation, the method performs multiple partial computations on binarized sub-arrays. Each partial computation is fast due to binary logic optimization, and the accumulation of these partial results achieves the complete precise result through efficient parallel or pipelined execution.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Techniques for determining an inner product between a non-binarized first array and a second array using a binary logic unit (201) are provided. The first array is decomposed into a plurality of binarized arrays by determining a respective binarized vector representation of each element of the first array in a vector basis having a set of basis vectors. Each binarized array comprises the binarized values corresponding to the same basis vector from each of the binarized vector representations. The binary logic unit (201) is used to determine a respective result equal to the inner product of the second array and each respective one of the plurality of binarized arrays. The results are combined into an output by summing the results each weighted by the respective basis vector of the binarized array used to generate that result.