Winograd Convolution Kernel Segmentation for Neural Network Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Large-scale neural network models require significant calculation time and power consumption when processed using central processing units (CPUs) and graphics processing units (GPUs), leading to inefficiencies in artificial intelligence applications.

Innovation Solution

The method involves splitting a convolutional kernel larger than 3*3 into sub convolutional kernels of 3*3 or less and input data into sub input data of 4*4 or less, allowing for Winograd convolution operations that eliminate the need for multiplication computations by using only shift and summation, thereby reducing calculation time and power consumption.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If large-scale neural network models are processed using CPU or GPU, then recognition degree is improved, but calculation time and power consumption increase enormously

Engineering Contradiction:
Improverecognition degreeVSAvoidcalculation time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent segments large convolutional kernels (greater than 3x3) into multiple smaller sub-convolutional kernels (3x3 or smaller). This segmentation allows the Winograd algorithm to be applied efficiently to each small kernel, reducing the computational complexity from O(n^2) to O(1) for each element calculation, thereby significantly reducing calculation time while maintaining recognition accuracy

Inventive Principle:
Principle #1Segmentation

2Measurement precision

If large-scale neural network models are processed using CPU or GPU, then recognition degree is improved, but power consumption increases enormously

Engineering Contradiction:
Improverecognition degreeVSAvoidpower consumption
Core Design Contradiction:
Measurement precisionVSUse of energy by moving object

Solution Approach 1:

By segmenting large convolutional kernels into small 3x3 or smaller sub-kernels, the patent enables the use of Winograd's minimal filtering algorithm which requires significantly fewer arithmetic operations. This reduction in computational operations directly translates to lower power consumption on mobile and embedded devices while preserving the recognition performance of the original large-kernel model

Inventive Principle:
Principle #1Segmentation

3Productivity

If Winograd convolution operation is performed on large convolutional kernels, then calculation amount is reduced, but the algorithm becomes complex with fractional numbers requiring multiplication computations

Engineering Contradiction:
Improvecalculation amountVSAvoidalgorithm complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent resolves the algorithmic complexity issue by segmenting large convolutional kernels into small 3x3 or smaller sub-kernels. This segmentation ensures that the Winograd transformation matrices contain only integers (no fractional numbers), eliminating the need for complex multiplication operations and allowing the use of simple shift and add operations instead, thus reducing both computational amount and algorithmic complexity

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS20220405349A1Data processing method and apparatus, and related product
Publication Date: 2022.12.22 CAMBRICON TECH CO LTD
  • US20220405349A1 patent drawing
  • US20220405349A1 patent drawing
  • US20220405349A1 patent drawing

AI summary

This disclosure relates to a data processing method, a data processing apparatus, and related products. The products include a control unit. The control unit includes: an instruction caching unit, an instruction processing unit, and a storage queue unit. The instruction caching unit is used for storing a calculation instruction associated with an artificial neural network computation; the instruction processing unit is used for parsing the calculation instruction to obtain a plurality of computation instructions; and the storage queue unit is used for storing an instruction queue, where the instruction queue includes the plurality of computation instructions or calculation instructions to be executed according to a front-back sequence of a queue. Through the above method of this disclosure, computation efficiency of the related products during a neural network model computation may be improved.