Convolution Input Mapping to Reuse Repeated Data Entries
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Traditional AI accelerators require significant circuit area and computational power due to unrolling and expanding input parameters for each convolution step, leading to inefficient memory usage and energy consumption.
Innovation Solution
Implement a memory-efficient data unrolling scheme that reuses computations of repeated data entries across convolution steps, using an input mapping circuit to iteratively map data entries to weight registers, reducing memory accesses and improving efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If input parameters are unrolled and expanded into a vector form for each convolution step, then convolution computation can be performed, but a large amount of input registers are needed which increases circuit area and computational power consumption
Solution Approach 1:
The patent applies the discarding and recovering principle by reusing input data entries across multiple convolution steps. Instead of unrolling all input parameters for each step, the system retains and reuses input data that remains valid across successive convolution operations, thereby reducing the total number of input registers needed while maintaining convolution computation capability
Solution Approach 2:
The patent implements dynamics by making the input data management adaptive to the convolution stride. The system dynamically determines which input data entries need to be retained versus discarded based on the stride value, optimizing the balance between computational efficiency and register requirements for different convolution configurations
2Productivity
If input parameters are unrolled and expanded into a vector form for each convolution step, then convolution computation can be performed, but significant computational power is consumed
Solution Approach 1:
The patent reduces computational power consumption by recovering and reusing input data entries across multiple convolution steps. This eliminates the need to re-load and re-process the same input data repeatedly, thereby reducing the total computational workload and energy consumption while maintaining convolution computation capability
Solution Approach 2:
The patent implements continuity of useful action by maintaining input data in registers across successive convolution steps rather than continuously loading new data. This continuous retention and reuse of valid input data minimizes redundant computational operations and reduces overall energy consumption
3Reliability
If all input data entries are stored in input registers for each convolution step, then complete data availability is ensured, but memory bandwidth requirements and buffer dynamic energy consumption increase
Solution Approach 1:
The patent applies discarding and recovering by selectively retaining only the input data entries that are actually needed for current and future convolution steps. This approach ensures data availability for valid operations while discarding unnecessary data, thereby reducing memory bandwidth requirements and buffer dynamic energy consumption
Solution Approach 2:
The patent implements partial action by loading and retaining only the necessary portion of input data rather than all input data entries. This partial data retention strategy ensures sufficient data availability for convolution operations while minimizing memory bandwidth usage and energy consumption
Data Source
AI summary
Embodiment described herein provide systems, apparatuses and methods for convoluting a filter (“kernel”) to input data in the form of an input array by reusing computations of repeated data entries in the input array due to convolution movements from one convolution step to the next. In one embodiment, to compute a convolution of an input matrix and a filter matrix, instead of unrolling data entries from the input matrix of each convolution step into an input vector, only non-repeated new data entries at each convolution step may be added to the input vector. An input mapping circuit that implements an input parameter mapping matrix may then iteratively map data entries of the input vector to different weight registers that corresponds to weights in the filter matrix.


