Multiply-Accumulate Circuit Permutation for Neural Network Efficiency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Artificial neural networks, such as convolutional neural networks, require significant computational effort and energy consumption due to their deep and complex topology, necessitating the reduction of costly and energy-intensive memory accesses in multiply-accumulate operations.
Innovation Solution
A multiply-accumulate circuit that forms product partial words from input words by selectively permuting the partial words of the first input word and adding them to an accumulation word, allowing for multiple uses of the first input word with different permutations to reduce memory access costs and increase efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If the first input word is used multiple times with different permutations in multiply-accumulate operations, then the efficiency of performing multiply-accumulate operations is increased and memory access costs are reduced, but the device complexity increases due to the need for permutation capabilities
Solution Approach 1:
The circuit incorporates a dynamic permutation mechanism that can selectively rearrange partial words of the first input word based on control signals. This dynamic reconfiguration allows the same hardware to adapt its data processing pattern without requiring multiple separate hardware paths, thereby improving productivity while controlling complexity through a unified configurable structure
Solution Approach 2:
The multiply-accumulate circuit is designed with universal permutation capabilities that can handle multiple operation patterns using the same hardware resources. The circuit can perform standard MAC operations, transposed MAC operations, and other variants by selectively enabling different permutation modes, making the device multi-functional without proportionally increasing complexity
2Loss of energy
If memory accesses are reduced by reusing the first input word with different permutations, then energy consumption is reduced, but the device complexity increases due to additional permutation logic
Solution Approach 1:
The circuit performs preliminary permutation of the first input word's partial words before the multiply-accumulate operation, based on pre-determined patterns. This preliminary arrangement enables subsequent operations to reuse the same data in different configurations without requiring repeated memory accesses, reducing energy consumption while using a dedicated permutation unit rather than general-purpose logic
Solution Approach 2:
A dedicated permutation unit acts as an intermediary component between the input registers and the multiplication/accumulation units. This specialized intermediary handles all permutation operations in a controlled manner, preventing the need for complex routing logic throughout the entire circuit and localizing the complexity to a single functional block
Data Source
AI summary
A multiply-accumulate circuit for processing numerical values that are present as input words, each of which is formed from at least two partial words. The circuit is configured, corresponding to a permutation selected from a plurality of permutation possibilities implemented by the multiply-accumulate circuit, to form product partial words as products of in each case one partial word of the first input word with one partial word of the second input word, wherein in the products, the partial words of the first input word are permutated relative to their original order corresponding to the selected permutation; and to add the product partial words with an accumulation word, which is formed from one or more partial words, to determine an updated accumulation word in which product partial words are in each case added to one of the one or more partial words of the accumulation word.


