Multiply-Accumulate Circuit Permutation for Neural Network Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveefficiency of perform multiply-accumulate operationsVSAvoiddevice complexity
Core Design Contradiction:
ProductivityVSDevice complexity

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

Inventive Principle:
Principle #15Dynamics

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

Inventive Principle:
Principle #6Universality (Multi-functionality)

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

Engineering Contradiction:
Improveenergy consumptionVSAvoiddevice complexity
Core Design Contradiction:
Loss of energyVSDevice complexity

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

Inventive Principle:
Principle #10Preliminary action

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

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS20240296012A1Multiply-accumulate circuit and method for performing multiply-accumulate operations
Publication Date: 2024.09.05 ROBERT BOSCH GMBH
  • US20240296012A1 patent drawing
  • US20240296012A1 patent drawing
  • US20240296012A1 patent drawing

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.