Convolutional Neural Network Stride Subdivision

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Convolutional neural networks (CNNs) face inefficiencies when dealing with input strides greater than 1, as existing methods require significant computational resources and hardware complexity to perform convolutional operations effectively.

Innovation Solution

The system employs a weight-kernel subdivider and IFM subdivider to split original weight kernels and input feature maps into sub-kernels and sub-maps, respectively, allowing for convolution with an input stride of 1, while optimizing the process using the Winograd algorithm to reduce computational needs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If convolutional operations are performed with input stride greater than 1 using existing methods, then feature extraction capability is improved, but hardware complexity and computational resources increase significantly

Engineering Contradiction:
Improveinput stride capabilityVSAvoidhardware complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent divides the original weight kernel into multiple sub-kernels and the input feature map into multiple sub-maps based on the input stride value. Each sub-kernel is then applied to corresponding sub-maps using standard convolution operations with stride 1, and the results are summed to produce the final output. This segmentation allows the system to achieve arbitrary stride values using only stride-1 convolution hardware, resolving the contradiction between stride capability and hardware complexity.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If convolutional operations are performed with input stride greater than 1 using existing methods, then feature extraction capability is improved, but computational resources increase significantly

Engineering Contradiction:
Improveinput stride capabilityVSAvoidcomputational resources
Core Design Contradiction:
Adaptability or versatilityVSUse of energy by moving object

Solution Approach 1:

The patent segments the convolution operation into multiple smaller operations using sub-kernels and sub-maps. By dividing the original kernel into sub-kernels based on stride values and applying them to corresponding sub-maps, the system reduces the computational burden of each individual operation. The segmented approach allows efficient utilization of computational resources while maintaining the ability to process with arbitrary input strides.

Inventive Principle:
Principle #1Segmentation

3Productivity

If hardware is designed to support input stride greater than 1 directly, then convolutional operation efficiency is improved, but hardware simplicity is reduced

Engineering Contradiction:
Improveconvolutional operation efficiencyVSAvoidhardware simplicity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

Instead of designing hardware that directly supports arbitrary stride values, the patent inverts the approach by designing hardware that only supports stride-1 convolution operations. The desired arbitrary stride functionality is achieved through software-based kernel and map segmentation, followed by multiple stride-1 convolution operations with result summation. This inversion resolves the contradiction by maintaining hardware simplicity while achieving stride flexibility through algorithmic transformation.

Inventive Principle:
Principle #13The other way round (Inversion)

Data Source

PatentUS20220237461A1Optimized neural network input stride method and apparatus
Publication Date: 2022.07.28 SAMSUNG ELECTRONICS CO LTD
  • US20220237461A1 patent drawing
  • US20220237461A1 patent drawing
  • US20220237461A1 patent drawing

AI summary

A convolutional layer in a convolutional neural network uses a predetermined horizontal input stride and a predetermined vertical input stride that are greater than 1 while the hardware forming the convolutional layer operates using an input stride of 1. Each original weight kernel of a plurality of sets of original weight kernels is subdivided based on the predetermined horizontal and vertical input strides to form a set of a plurality of sub-kernels for each set of original weight kernels. Each of a plurality of IFMs is subdivided based on the predetermined horizontal and vertical input strides to form a plurality of sub-maps. Each sub-map is convolved by the corresponding sub-kernel for a set of original weight kernels using an input stride of 1. A convolved result of each sub-map and the corresponding sub-kernel is summed to form an output feature map.