Pop Count Neural Network Multiply Accumulator
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Deep learning neural networks with low bit-precision suffer from inefficiencies in power consumption and processing speed due to repetitive multiplication operations with the same result values, leading to high energy and area costs in hardware.
Innovation Solution
A computation method that generates one-hot encoding codes for multiplication results, performs pop-counts, and accumulates results using constant multipliers or shifters, reducing repetitive operations by classifying and processing multiplications based on repetition probability.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Use of energy by moving object
If low bit-precision computation is used, then power consumption and hardware area are reduced, but processing speed deteriorates due to repetitive multiplication operations
Solution Approach 1:
The patent performs preliminary classification of multiplication operations by result value types before execution. By pre-grouping operations with identical results and generating one-hot encoding codes in advance, the system avoids redundant computation during the actual processing phase, thereby improving processing speed while maintaining low bit-precision efficiency
Solution Approach 2:
The patent merges multiple identical multiplication operations into a single operation by grouping them according to their result values. Operations with the same result are combined and executed once with a count multiplier, reducing the total number of operations and improving processing speed without increasing power consumption
2Area of stationary object
If low bit-precision computation is used, then hardware area is reduced, but processing speed deteriorates due to repetitive multiplication operations
Solution Approach 1:
The system performs preliminary classification and grouping of multiplication operations before execution. By pre-organizing operations into groups based on result values and generating one-hot encoding codes in advance, the hardware avoids redundant computation paths during processing, improving speed without requiring additional hardware area
Solution Approach 2:
The patent segments the computation process into distinct phases: classification phase (grouping operations by result value), encoding phase (generating one-hot codes), and execution phase (performing consolidated multiplications). This segmentation allows efficient resource utilization and improves processing speed within the same hardware area
3Measurement precision
If conventional repetitive multiplication operations are performed, then computation accuracy is maintained, but power consumption increases due to lack of optimization for repeated result values
Solution Approach 1:
The patent changes the computational parameters by introducing result value type classification and one-hot encoding. Instead of performing each multiplication independently, the system transforms the computation into a parameterized form where identical result operations share the same computational path, reducing power consumption while preserving accuracy through proper accumulation
Solution Approach 2:
The patent merges operations that produce identical results into a single consolidated operation. By grouping multiplications with the same result value and executing them once with an accumulated count, the system reduces redundant computational activity and power consumption while maintaining the same computational accuracy through proper summation
Data Source
AI summary
The present invention relates to a pop count-based deep learning neural network computation method, a multiply accumulator, and a device thereof. The computation method according to an exemplary embodiment of the present invention is a computation method for a deep learning neural network, including a step of generating one-hot encoding codes according to the type of first multiplication result values for a multiplication (first multiplication) of weights (W) and input values (A); a step of performing a pop-count for each generated code; and a step of accumulating result values for a constant multiplication (second multiplication) between each type of the first multiplication result value and each count value of the pop-count which are different constant values.


