Hardware Pooling Unit for CNN Computational Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing neural network architectures have neglected the improvement of pooling layers, which are computationally intensive, leading to underutilization of computational resources and increased overall computational cost.

Innovation Solution

The implementation of a pooling unit that reformats output data from a matrix processor into a grid format, allowing for direct application of pooling functions such as average or max pooling, thereby reducing the need for intermediate steps and enhancing computational efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional pooling layers are used in neural networks, then the network can perform feature extraction and down-sampling, but computational resources are underutilized and computational cost increases

Engineering Contradiction:
Improvecomputational efficiencyVSAvoidcomputational cost
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent merges the pooling operation with the convolutional neural network architecture by integrating a pooling unit that processes data directly from the convolutional layer output. This integration eliminates the need for separate, standalone pooling operations and allows the pooling function to be performed as part of the forward propagation process, thereby improving computational efficiency and reducing overall computational cost

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The pooling unit performs pooling operations in advance during the forward propagation process, before the data reaches subsequent layers. By preparing the pooled output data during the natural flow of computation, the system avoids the need for separate post-processing steps and reduces the computational burden on later layers

Inventive Principle:
Principle #10Preliminary action

2Reliability

If pooling layers are implemented with traditional methods, then feature maps can be generated, but intermediate computation steps are required increasing overall computation time

Engineering Contradiction:
Improvefeature map generationVSAvoidcomputation time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent extracts the essential pooling function from traditional multi-step implementations and implements it as a dedicated pooling unit that operates directly on convolutional layer outputs. This extraction allows the pooling operation to be performed in a single, optimized step without requiring multiple intermediate computation passes, thereby reducing computation time while maintaining reliable feature map generation

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent replaces traditional software-based pooling implementations with a hardware-accelerated pooling unit that is integrated into the neural network processing architecture. This substitution of the computational mechanism enables faster processing by leveraging dedicated hardware resources for the pooling operation, significantly reducing computation time compared to general-purpose processors

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS12307350B2Systems and methods for hardware-based pooling
Publication Date: 2025.05.20 TESLA INC
  • US12307350B2 patent drawing
  • US12307350B2 patent drawing
  • US12307350B2 patent drawing

AI summary

Described herein are systems and methods that utilize a novel hardware-based pooling architecture to process the output of a convolution engine representing an output channel of a convolution layer in a convolutional neural network (CNN). The pooling system converts the output into a set of arrays and aligns them according to a pooling operation to generate a pooling result. In certain embodiments, this is accomplished by using an aligner that aligns, e.g., over a number of arithmetic cycles, an array of data in the output into rows and shifts the rows relative to each other. A pooler applies a pooling operation to a combination of a subset of data from each row to generate the pooling result.