CNN Buffer Addressing for Collision-Free Convolution Throughput
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing hardware accelerators for Convolutional Neural Networks (CNNs) face challenges in maintaining consistent data input rates and maximizing data throughput due to varying input data dimensionality across layers, leading to inefficiencies and decreased processing speed.
Innovation Solution
An adaptable addressing scheme is implemented for input data buffers that dynamically allocates memory based on the dimensionality of input data and filter data for each layer, minimizing bank collisions and optimizing data throughput.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a fixed addressing scheme is used for input data buffers, then data retrieval is simple and fast for some layers, but data throughput becomes inconsistent across layers with different dimensionality
Solution Approach 1:
The patent implements a dynamic addressing scheme that adapts to different layer dimensionalities in CNNs. The buffer addressing is adjusted based on the specific dimensions of input data and filter data for each layer, allowing consistent data throughput across varying layer requirements while managing complexity through structured adaptation rules.
2Reliability
If data is buffered to maintain consistent input rates, then processing stability is improved, but memory access efficiency decreases due to bank collisions
Solution Approach 1:
The patent segments the buffer into multiple banks and implements a addressing scheme that distributes data access across different banks based on layer dimensionality. This segmentation reduces bank collisions by directing different data streams to different memory banks, thereby maintaining processing stability while improving memory access efficiency.
3Productivity
If hardware accelerators process high rates of input data, then CNN performance is improved, but power consumption increases
Solution Approach 1:
The patent optimizes power consumption by dynamically adjusting buffer addressing parameters based on layer dimensionality and data throughput requirements. This parameter adaptation ensures high processing performance is maintained only when necessary, reducing unnecessary memory access operations and associated power consumption during CNN execution.
Data Source
Figure 1~3
Figure 4~6(f)
Figure 7(a)~7(c)
AI summary
A method of storing input data for a layer of a convolutional neural network, CNN, in a buffer comprising NB banks for processing. Each bank has a plurality of words. The method comprising: receiving input data comprising input data values to be processed in a layer of the CNN, the input data comprising P planes each with X columns and Y rows; identifying a value, WordsPerLine, that indicates a number of words of each bank that will be required to store a row of the input data; determining an address in the buffer in which each of the input data values are to be stored based on the WordsPerLine and a filter width m or a filter height N of a filter to be applied to the input data; and storing the received input data values at the determined addresses in the buffer for retrieval for processing in the layer.