Pooling Unit for Deep Learning Acceleration

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Deep learning applications on embedded devices face challenges due to high processing power requirements and energy consumption, limiting the adoption of low-cost and energy-efficient solutions for recognition and classification tasks.

Innovation Solution

A convolutional neural network (CNN) architecture that includes a pooling unit with a stream filter, cropper, line buffer, padding control, column calculator, batch buffer, and un-pooling unit, optimized for efficient pooling operations to reduce data dimensionality and power consumption, enabling effective feature extraction and classification on embedded devices.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If deep learning algorithms are deployed on embedded devices, then recognition and classification performance is improved, but power consumption and processing requirements increase

Engineering Contradiction:
Improverecognition and classification performanceVSAvoidpower consumption
Core Design Contradiction:
Measurement precisionVSUse of energy by moving object

Solution Approach 1:

The pooling operation is divided into two independent stages: row pooling and column pooling. Each stage processes data independently through separate processing circuits, allowing parallel computation that reduces overall power consumption while maintaining the functionality of the pooling layer in the CNN architecture.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transforms the traditional 2D pooling operation into a sequence of 1D operations by first performing row-wise pooling to reduce the height dimension, then performing column-wise pooling to reduce the width dimension. This dimensional transformation enables more efficient processing on embedded devices with limited computational resources.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Measurement precision

If deep learning algorithms are deployed on embedded devices, then recognition and classification performance is improved, but device area and complexity increase

Engineering Contradiction:
Improverecognition and classification performanceVSAvoidprocessing power requirements
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The pooling unit is segmented into multiple independent processing circuits (first processing circuits for row pooling, second processing circuits for column pooling) that can operate in parallel. This segmentation allows the system to achieve the required computational complexity for deep learning through parallelization rather than requiring a single complex processor, thereby reducing overall device complexity and area requirements.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary row pooling operations before column pooling operations, systematically reducing the data dimensionality in stages. This preliminary action approach breaks down the complex pooling computation into simpler sequential steps, reducing the computational burden on the device and allowing for more efficient hardware implementation.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP3869413B1Pooling unit for deep learning acceleration background
Publication Date: 2024.06.19 STMICROELECTRONICS SRL
  • EP3869413B1 patent drawingFigure 1~3
  • EP3869413B1 patent drawingFigure 4
  • EP3869413B1 patent drawingFigure 5A~5B

AI summary

A convolutional neural network includes a pooling unit (106). The pooling unit performs pooling operations between convolution layers of the convolutional neural network. The pooling unit (106) includes hardware blocks (142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162) that promote computational and area efficiency in the convolutional neural network. In a possible embodiment, the pooling unit (106) comprises: a cropper (144) configured to receive a feature tensor and to generate a cropped feature tensor including a plurality of data values by cropping the feature tensor; a line buffer (146) configured to receive the data values from the cropper (144); a column calculator (150) configured to perform column pooling operations on data columns from the line buffer (146); and a row calculator (154) configured to perform row pooling operations on data rows from the column calculator (150).