CNN Layer Partitioning With Bias Accumulation for Faster Inference

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In convolutional neural networks, dividing the network model into multiple pieces for processing increases the need for additional hardware resources and processing time due to the necessity of integrating convolution results and applying activation functions, especially when using hardware with multi-stage memory configurations.

Innovation Solution

The method involves dividing a convolutional neural network layer into sublayers in the channel direction, performing convolution processing on each sublayer, cumulatively adding convolution results with a bias using an adder, and inputting the final addition result to an activation function, thereby reducing hardware resource usage and processing time.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Volume of stationary object

If the network model is divided into multiple pieces for processing, then the memory size required can be reduced, but additional adder circuits and processing time are needed for integration

Engineering Contradiction:
Improvememory sizeVSAvoidhardware resources
Core Design Contradiction:
Volume of stationary objectVSDevice complexity

Solution Approach 1:

The patent merges the integration function into the existing adder circuit by having it accumulate convolution results across multiple processing steps. Instead of adding separate integration circuits, the adder circuit performs dual functions: adding bias values and accumulating convolution results from divided network pieces, thereby reducing hardware complexity while maintaining memory efficiency

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The adder circuit is designed to perform multiple functions: it adds bias values to convolution results and also accumulates convolution results from multiple divided pieces of the network model. This multi-functionality eliminates the need for separate integration circuits, resolving the contradiction between memory reduction and hardware complexity

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Volume of stationary object

If the network model is divided into multiple pieces for processing, then the memory size required can be reduced, but processing time increases due to sequential reading and addition

Engineering Contradiction:
Improvememory sizeVSAvoidprocessing time
Core Design Contradiction:
Volume of stationary objectVSLoss of time

Solution Approach 1:

The adder circuit continuously accumulates convolution results as they are generated from processing divided network pieces, without requiring sequential reading and processing. This continuous accumulation eliminates idle time and maintains steady processing flow, reducing overall processing time while keeping memory requirements low

Inventive Principle:
Principle #20Continuity of useful action

3Productivity

If all convolution results are read from external memory for integration, then processing can be completed, but processing time increases

Engineering Contradiction:
Improveprocessing completionVSAvoidprocessing time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system maintains running accumulation of convolution results in the adder circuit during the processing of divided network pieces. This preliminary accumulation eliminates the need for subsequent reading and addition operations, as the final accumulated value is already available when all pieces are processed, significantly reducing processing time

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS20250390717A1Inference processing device, inference processing method and inference processing program
Publication Date: 2025.12.25 NT T INC
  • US20250390717A1 patent drawing
  • US20250390717A1 patent drawing
  • US20250390717A1 patent drawing

AI summary

An inference processing device includes: a division unit that divides a layer of a convolutional neural network into a plurality of sublayers in a channel direction; a convolution unit that executes convolution processing for each of the sublayers to output a convolution result; an addition unit that adds an intermediate value obtained by cumulatively adding convolution results up to a previous sublayer to the convolution result with an adder for adding a bias to the convolution result every time the convolution processing is executed, and outputs an addition result; and an activation unit that inputs, to an activation function, the addition result obtained by adding the convolution result of a last sublayer on which the convolution processing has been executed last.