Zero Skipping Convolution Engine for CNN Memory Bandwidth

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Matrix multiplication-based architectures for Convolutional Neural Networks (CNNs) require high memory bandwidth due to the duplication of 2D image data, increasing memory requirements and computation costs.

Innovation Solution

A novel convolution engine that combines zero coefficient skipping with a multi-kernel accumulation approach, where only one kernel coefficient is applied to a large portion of the input image at a time, reducing computation and memory bandwidth by skipping zero coefficient multiplications and using a low-cost kernel decompressor, and performing convolutions using accumulation instead of summation to enable efficient reuse of input data.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If matrix multiplication-based architecture is used for CNN, then computation can be performed, but memory bandwidth requirement increases due to duplication of 2D image data

Engineering Contradiction:
Improvecomputation performanceVSAvoidmemory bandwidth requirement
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent segments the convolution operation into independent coefficient-based processing units. Each coefficient is applied to the entire 2D image independently, allowing the image data to be segmented into tiles that can be processed in parallel without duplication. This segmentation eliminates the need to duplicate image data for each kernel coefficient while maintaining computation performance.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transforms the traditional matrix multiplication approach (operating on flattened 1D vectors) into a 2D tile-based convolution approach. By maintaining the spatial structure of the image data in 2D tiles and applying coefficients across the entire tile, the system reduces memory bandwidth requirements while preserving computational efficiency through the added dimensional organization.

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

2Loss of energy

If zero coefficient skipping is implemented, then computation cost is reduced, but device complexity increases due to need for coefficient checking and selective processing

Engineering Contradiction:
Improvecomputation costVSAvoidprocessing architecture complexity
Core Design Contradiction:
Loss of energyVSDevice complexity

Solution Approach 1:

The patent extracts only the non-zero coefficients from the kernel and processes them separately from the zero coefficients. By taking out the non-zero coefficients and applying them directly to the image tiles without requiring full matrix multiplication logic, the system reduces computation cost while avoiding the complexity of conditional checking for every coefficient.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent implements a self-service mechanism where the convolution engine automatically identifies and processes only the necessary non-zero coefficients without external control logic. The accumulation buffer automatically accumulates results from non-zero coefficient applications, eliminating the need for complex control structures to manage zero-skipping logic.

Inventive Principle:
Principle #25Self-service

3Reliability

If traditional convolution with full kernel application is used, then complete convolution is achieved, but memory bandwidth is wasted due to processing zero coefficients

Engineering Contradiction:
Improveconvolution accuracyVSAvoidmemory bandwidth utilization
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent implements skipping of zero coefficient applications by directly accumulating the results of non-zero coefficient multiplications into the accumulation buffer. This rushing through of zero coefficients maintains convolution accuracy while eliminating wasted memory bandwidth on unnecessary data transfers and computations.

Inventive Principle:
Principle #21Skipping (Rushing through)

Solution Approach 2:

The patent performs preliminary identification of non-zero coefficients before the main convolution process. By pre-processing the kernel to identify which coefficients are non-zero and organizing them for efficient access, the system ensures that only necessary computations are performed, maintaining accuracy while optimizing memory bandwidth utilization.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10242311B2Zero coefficient skipping convolution neural network engine
Publication Date: 2019.03.26 VIVANTE CORP
  • US10242311B2 patent drawing
  • US10242311B2 patent drawing
  • US10242311B2 patent drawing

AI summary

A convolution engine, such as a convolution neural network, operates efficiently with respect to sparse kernels by implementing zero skipping. An input tile is loaded and accumulated sums are calculated for the input tile for non-zero coefficients by shifting the tile according to a row and column index of the coefficient in the kernel. Each coefficient is applied individually to tile and the result written to an accumulation buffer before moving to the next non-zero coefficient. A 3D or 4D convolution may be implemented in this manner with separate regions of the accumulation buffer storing accumulated sums for different indexes along one dimension. Images are completely processed and results for each image are stored in the accumulation buffer before moving to the next image.