Neural Network Convolution Processing via Input Feature Map Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current neural network technologies face inefficiencies in processing convolution operations due to the need for repeated reading of input feature maps and overlapping regions, which increases computational time and memory bandwidth usage.

Innovation Solution

A neural network apparatus and method that generates output feature maps by performing operations between input feature maps and kernels, where output values are accumulated at specific positions based on weight positions in the kernel, allowing for skipping of zero weights and continuous stream-reading of compressed input feature maps to reduce redundant operations and memory access.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If repeated reading of input feature maps is performed for convolution operations, then complete convolution processing is achieved, but computational time and memory bandwidth usage increase

Engineering Contradiction:
Improveconvolution operation completenessVSAvoidcomputational time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the input feature map into multiple regions and processes each region independently through separate operation units. This segmentation allows parallel processing of different regions, reducing the total computational time while maintaining complete convolution processing. Each operation unit handles a specific region without needing to repeatedly read the entire input feature map.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary actions by pre-loading and storing different regions of the input feature map in separate buffers before convolution processing begins. This preliminary storage eliminates the need for repeated reading during the convolution operation, as all necessary data is already available in memory when processing starts.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If repeated reading of input feature maps is performed for convolution operations, then complete convolution processing is achieved, but memory bandwidth usage increases

Engineering Contradiction:
Improveconvolution operation completenessVSAvoidmemory bandwidth usage
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The input feature map is divided into multiple regions that are processed in parallel by different operation units. Each region is loaded once into dedicated buffers, eliminating repeated memory accesses. This segmentation strategy significantly reduces memory bandwidth usage while ensuring complete convolution processing across all regions.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent creates a universal buffer structure that can store multiple regions of the input feature map simultaneously, serving all operation units. This multi-functional buffer system allows all regions to be accessed from a single memory load, reducing overall memory bandwidth consumption compared to each operation unit loading its own data separately.

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

3Reliability

If all weights of the kernel are processed, then complete convolution operation is achieved, but computational complexity increases

Engineering Contradiction:
Improveconvolution operation completenessVSAvoidcomputational complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies partial action by selectively processing only the necessary weights and regions required for the convolution operation. Rather than uniformly processing all possible combinations, the system processes each region with its required kernel weights in parallel, reducing overall computational complexity while maintaining complete convolution coverage across the entire input feature map.

Inventive Principle:
Principle #16Partial or excessive action

4Productivity

If multiple operation units process different regions in parallel, then processing speed increases, but system complexity increases

Engineering Contradiction:
Improveprocessing speedVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system is segmented into multiple independent operation units, each handling a specific region of the input feature map. This segmentation enables parallel processing that increases productivity while keeping each individual operation unit relatively simple. The modular architecture manages system complexity by distributing functionality across identical, replicated units rather than requiring a single complex processing system.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent changes the parameter of spatial distribution by assigning different spatial regions to different operation units. This parameter change allows parallel processing to occur without increasing the computational complexity within each unit, as each unit maintains the same simple convolution logic applied to its assigned region. The complexity is distributed rather than concentrated.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS12056591B2Method and apparatus for processing convolution operation in neural network
Publication Date: 2024.08.06 SAMSUNG ELECTRONICS CO LTD
  • US12056591B2 patent drawing
  • US12056591B2 patent drawing
  • US12056591B2 patent drawing

AI summary

Provided are a method of performing a convolution operation between a kernel and an input feature map based on reuse of the input feature map, and a neural network apparatus using the method. The neural network apparatus generates output values of an operation between each of weights of a kernel and an input feature map, and generates an output feature map by accumulating the output values at positions in the output feature map that are set based on positions of the weights in the kernel.