Neural Network Pooling Kernel Decomposition for Memory Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

As neural networks process complex input data, they face inefficiencies due to excessive calculations and memory access frequency, leading to performance issues in miniaturization and commercialization, particularly in deep neural networks with complex architectures.

Innovation Solution

The method involves decomposing an original pooling kernel into 1-dimensional sub-pooling kernels, performing pooling operations on input feature maps using these sub-kernels, and storing intermediate results in a share line buffer for post-processing to obtain final pooling results, reducing redundant calculations and improving efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If pooling operations are performed using original pooling kernels on input feature maps, then accurate pooling results are obtained, but computational overhead and memory access frequency increase excessively

Engineering Contradiction:
Improvepooling result accuracyVSAvoidcomputational efficiency
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The original pooling kernel is decomposed into multiple sub-pooling kernels (e.g., row kernels and column kernels). Instead of applying one large kernel, the operation is segmented into sequential applications of smaller sub-kernels, reducing memory access frequency and computational overhead while maintaining the same pooling effect.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Intermediate pooling results are stored in a share line buffer after each sub-pooling operation. This preliminary storage allows subsequent sub-pooling kernels to reuse these results without重新 accessing the original input feature map, reducing redundant memory accesses and improving computational efficiency.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If pooling operations are performed using original pooling kernels on input feature maps, then complete pooling coverage is achieved, but memory access frequency becomes excessive

Engineering Contradiction:
Improvepooling operation completenessVSAvoidmemory access energy
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The share line buffer stores intermediate pooling results from previous sub-pooling operations. When subsequent sub-pooling kernels need to process overlapping regions, they can retrieve these pre-computed results from the buffer instead of重新 accessing memory, significantly reducing memory access frequency and associated energy consumption.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Multiple sub-pooling operations are merged into a single pooling pass by sequentially applying sub-kernels and storing intermediate results in the share line buffer. This merging approach ensures complete pooling coverage while minimizing redundant memory accesses through result reuse.

Inventive Principle:
Principle #5Merging (Combining)

3Productivity

If sub-pooling kernels are used for pooling operations, then computational overhead is reduced, but device complexity increases

Engineering Contradiction:
Improvepooling operation speedVSAvoidkernel decomposition complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The pooling operation is segmented into multiple sequential steps using sub-pooling kernels. While this increases the number of operations, each sub-kernel is simpler and can be implemented more efficiently in hardware, with intermediate results cached in the share line buffer to offset the increased operational steps.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system dynamically manages the share line buffer to store and retrieve intermediate pooling results based on the current processing stage. This dynamic memory management optimizes the trade-off between increased operational steps and memory access efficiency, maintaining high throughput while handling the complexity of multiple sub-kernel applications.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS12175376B2Neural processing apparatus and method with neural network pool processing
Publication Date: 2024.12.24 SAMSUNG ELECTRONICS CO LTD
  • US12175376B2 patent drawing
  • US12175376B2 patent drawing
  • US12175376B2 patent drawing

AI summary

A processor-implemented method of a neural network includes obtaining intermediate pooling results, respectively corresponding to sub-pooling kernels obtained by decomposing an original pooling kernel, by performing a pooling operation on input pixels included in a current window in an input feature map with the sub-pooling kernels, obtaining a final pooling result corresponding to the current window by post-processing the intermediate pooling results, and determining an output pixel value of an output feature map, based on the final pooling result, wherein the current window is determined according to the original pooling kernel having been slid, according to a raster scan order, in the input feature map.