Arithmetic Operation Circuit for Convolutional Neural Networks
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The existing arithmetic operation circuits for convolutional neural networks (CNNs) are inefficient due to repeated operations involving feature maps and kernels, leading to increased processing time, especially when zero elements in coefficient matrices require wasteful arithmetic operations, resulting in prolonged overall processing times.
Innovation Solution
An arithmetic operation circuit that includes a control processor and multiple calculators, where non-zero elements in the coefficient matrix are assigned to calculators for parallel processing, allowing each multiplication to be handled as a unit of process, thereby leveling the workload among calculators and reducing overall processing time.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If the arithmetic operation is performed using all multiply-accumulate calculators including those with zero elements in the coefficient matrix, then parallel processing capability is utilized, but processing time increases due to wasteful arithmetic operations
Solution Approach 1:
The patent extracts and removes zero elements from the coefficient matrix before distributing to calculators. By taking out the harmful zero elements that cause wasteful arithmetic operations, only non-zero elements are processed, eliminating unnecessary computations while maintaining parallel processing efficiency
Solution Approach 2:
The patent applies local quality by differentiating treatment based on calculator workload. Each calculator is assigned a specific subset of non-zero elements from the coefficient matrix, ensuring that each calculator processes only the elements relevant to its assigned rows, thereby optimizing local processing efficiency
2Loss of time
If the coefficient matrix is expanded to one column to shorten process time, then the convolutional operation can be performed as matrix-vector multiplication, but the number of non-zero elements differs among rows causing uneven workload distribution
Solution Approach 1:
The patent segments the coefficient matrix into row-based groups and distributes each row's non-zero elements to specific calculators. This segmentation ensures that each calculator receives a manageable subset of operations, balancing the workload while maintaining the expanded matrix format for efficient convolutional computation
Solution Approach 2:
The patent introduces dynamic workload balancing by adjusting the distribution of non-zero elements based on row-specific characteristics. The control processor dynamically assigns operations to calculators considering the varying number of non-zero elements in each row, creating a flexible and adaptive workload distribution system
3Loss of energy
If only non-zero elements are processed by excluding zero elements from calculation, then wasteful arithmetic operations are eliminated, but the entire process time is determined by the row with the largest number of non-zero elements
Solution Approach 1:
The patent segments the processing task by dividing the coefficient matrix rows into groups and assigning them to different calculators. This segmentation ensures that no single calculator is overloaded with all non-zero elements from all rows, thereby balancing the total computational load and reducing the time determined by the most complex row
Solution Approach 2:
The patent changes the processing parameter from row-based sequential processing to distributed parallel processing across multiple calculators. By transforming the problem into a distributed system where each calculator handles a subset of rows, the overall process time is reduced while maintaining efficiency in processing only non-zero elements
Data Source
AI summary
An arithmetic operation method for a convolutional layer in a neural network includes: generating a coefficient matrix by converting a kernel used in the convolutional layer such that the coefficient matrix is associated with an input vector obtained by expanding, into one column, a feature map input to the convolutional layer; searching for non-zero elements included in the coefficient matrix; assigning multiplications of the non-zero elements included in the coefficient matrix and corresponding elements of the input vector to a plurality of calculators with each of the multiplications being handled as a unit of process, so as to level out the numbers of units of process among the calculators, each of the calculators being capable of performing a process in parallel with one another; and sequentially performing, by the calculators, the assigned multiplications, and sequentially adding, by the calculators, results of the multiplications to corresponding elements of an output vector.


