Neural Network Hardware Acceleration with Stochastic Resource Allocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Neural networks require significant computational resources and power due to the high complexity of multiply-and-accumulate (MAC) arithmetic units, which are major consumers of processing power and physical area in digital hardware accelerators, especially in applications like real-time object detection and segmentation in video streams.

Innovation Solution

A digital hardware circuit with a mixed array of multipliers and adders that routes input pairs to appropriate multiplier units based on estimated product magnitude, using small multipliers for smaller products and large multipliers for larger products, along with a sorting unit to efficiently process activation-weight pairs, reducing power consumption and chip area.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If fully accurate multiplication of larger values is supported, then computation accuracy is improved, but chip area and power consumption increase

Engineering Contradiction:
Improvecomputation accuracyVSAvoidchip area
Core Design Contradiction:
Measurement precisionVSArea of stationary object

Solution Approach 1:

The patent applies local quality by implementing different multiplier types (accurate and approximate) within the same array, allowing each multiplier to have properties tailored to its specific computational needs. Some multipliers provide full accuracy while others provide approximate computation, optimizing the trade-off between accuracy and area for different locations in the array.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The system dynamically selects between accurate and approximate multipliers based on the characteristics of the input values being processed. The selection is not static but adapts to the specific computational requirements of each operation, allowing the system to optimize between accuracy and area consumption in real-time.

Inventive Principle:
Principle #15Dynamics

2Measurement precision

If fully accurate multiplication of larger values is supported, then computation accuracy is improved, but power consumption increases

Engineering Contradiction:
Improvecomputation accuracyVSAvoidpower consumption
Core Design Contradiction:
Measurement precisionVSUse of energy by stationary object

Solution Approach 1:

Different multipliers within the array have different power consumption characteristics tailored to their function. Approximate multipliers consume less power than accurate multipliers, and the system selectively activates the appropriate type based on computational needs, optimizing overall power usage.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The system dynamically adjusts power consumption by selecting between accurate and approximate multipliers based on the specific computational requirements of each operation, allowing power usage to adapt to the actual accuracy needs of the neural network computation.

Inventive Principle:
Principle #15Dynamics

3Productivity

If a large array of MAC units is used to support high computational load, then productivity is improved, but device complexity increases

Engineering Contradiction:
Improvecomputational load capacityVSAvoiddevice complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces heterogeneity into the MAC unit array by implementing different types of multipliers (accurate and approximate) with different complexity characteristics. This allows the system to achieve high computational throughput while managing complexity through strategic placement of different unit types.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The system dynamically routes computational tasks to appropriate MAC units based on their capabilities and the requirements of the specific operation, allowing the system to optimize between productivity and complexity management through adaptive task allocation.

Inventive Principle:
Principle #15Dynamics

4Measurement precision

If high-precision floating-point circuits are used, then measurement precision is improved, but use of energy increases

Engineering Contradiction:
ImproveprecisionVSAvoidpower consumption
Core Design Contradiction:
Measurement precisionVSUse of energy by stationary object

Solution Approach 1:

The patent implements a mixed-precision architecture where different parts of the computation use different precision levels. Not all multipliers use full floating-point precision; instead, approximate integer arithmetic is used where sufficient, reducing power consumption while maintaining adequate precision for the application.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The system changes the precision parameter dynamically, switching between full-precision floating-point and lower-precision integer representations based on the specific computational requirements. This allows the system to optimize power consumption by using lower precision when full precision is not necessary.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11704543B2Neural network hardware acceleration with stochastic adaptive resource allocation
Publication Date: 2023.07.18 SAMSUNG ELECTRONICS CO LTD
  • US11704543B2 patent drawing
  • US11704543B2 patent drawing
  • US11704543B2 patent drawing

AI summary

A digital circuit for accelerating computations of an artificial neural network model includes a pairs selection unit that selects different subsets of pairs of input vector values and corresponding weight vector values to be processed simultaneously at each time step; a sorting unit that simultaneously processes a vector of input-weight pairs wherein pair values whose estimated product is small are routed with a high probability to small multipliers, and pair values whose estimated product is greater are routed with a high probability to large multipliers that support larger input and output values; and a core unit that includes a plurality of multiplier units and a plurality of adder units that accumulate output results of the plurality of multiplier units into one or more output values that are stored back into the memory, where the plurality of multiplier units include the small multipliers and the large multipliers.