Convolution Processing Removing Zero Elements

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Neural processing units (NPUs) face inefficiencies in power consumption due to the need to perform convolutions involving zero elements, which result in wasted compute cycles and increased power usage, while also requiring unnecessary computations that do not affect data passing through the Multiply-Accumulate (MAC) unit.

Innovation Solution

The method involves identifying and removing zero elements from both the input feature map (IFM) and the kernel, allowing the MAC unit to perform convolutions only with subsets containing non-zero elements, and decomposing the kernel into sub-kernels to reduce the number of computations, thereby optimizing power consumption and throughput.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of energy

If convolutions are performed on complete input data arrays including zero elements, then computational completeness is maintained, but power consumption increases and computational efficiency decreases

Engineering Contradiction:
Improvepower consumptionVSAvoidcomputational efficiency
Core Design Contradiction:
Loss of energyVSProductivity

Solution Approach 1:

The patent extracts and removes zero-value elements from the input data array before convolution operations. By identifying the positions of zero elements and excluding them from processing, the system performs convolutions only on non-zero elements, thereby reducing unnecessary computational operations and lowering power consumption while maintaining the accuracy of the final output.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent applies partial action by performing convolution operations only on the necessary subsets of data that contain non-zero elements, rather than processing the entire input data array. This selective processing approach reduces the computational workload and energy consumption while still producing the complete and accurate output feature map.

Inventive Principle:
Principle #16Partial or excessive action

2Loss of energy

If zero elements are processed through MAC units, then complete data flow is maintained, but unnecessary computations increase power consumption

Engineering Contradiction:
Improvepower consumptionVSAvoidenergy used by MAC unit
Core Design Contradiction:
Loss of energyVSUse of energy by moving object

Solution Approach 1:

The patent extracts zero elements from the input data and prevents them from being processed by the MAC units. By using positional data to identify and exclude zero-value positions, the system ensures that MAC units only perform multiplications and accumulations on non-zero elements, thereby eliminating wasteful energy consumption associated with processing zero elements.

Inventive Principle:
Principle #2Taking out (Extraction)

3Device complexity

If kernel is decomposed into sub-kernels, then computational complexity is reduced, but data processing steps increase

Engineering Contradiction:
Improvecomputational complexityVSAvoidprocessing time
Core Design Contradiction:
Device complexityVSLoss of time

Solution Approach 1:

The patent segments the kernel into multiple sub-kernels, where each sub-kernel corresponds to a specific subset of the input data. This segmentation allows for parallel processing of different data subsets, reducing the overall computational complexity and enabling more efficient utilization of hardware resources, thereby offsetting the additional processing steps through parallel execution.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11423117B2Data processing method and system for performing convolutions
Publication Date: 2022.08.23 ARM LTD
  • US11423117B2 patent drawing
  • US11423117B2 patent drawing
  • US11423117B2 patent drawing

AI summary

A computer implemented method for performing convolutions between subsets of an input data array and a kernel resulting in subsets of an output data array. The method may include receiving an input data array and using positional data indicating the position of elements of the input data array to determine subsets of the input data array which contains at least one non-zero value data element; performing convolutions between the subsets of the input data array containing at least one non-zero value data element and a kernel to produce output data array subsets; and combining the output data subsets with the positional data to generate output data indicative of a completed output data array.