Channel Convolution Engine for AI Workloads

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing hardware solutions struggle to efficiently compute convolution operations for complex artificial intelligence problems, particularly depthwise convolutions, due to complexity and resource constraints, necessitating a more efficient hardware platform that optimizes performance without increasing complexity.

Innovation Solution

A processor system with a channel convolution processor unit that performs convolution operations using vector units for efficient matrix operations, where data and weight matrices are processed in parallel, and reuse of data elements across iterations to minimize reloading and enhance efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional optimization approaches for depthwise convolution are used, then convolution performance is improved, but hardware complexity and memory organization complexity increase significantly

Engineering Contradiction:
Improveconvolution operation performanceVSAvoidhardware and memory organization complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements a universal convolution engine that can perform multiple types of convolution operations (standard convolution, depthwise convolution, pointwise convolution) using the same hardware infrastructure. The engine uses a unified data layout (NHWC format) and consistent processing pipeline to handle different convolution types without requiring specialized hardware for each operation type, thereby improving productivity while avoiding excessive complexity

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent segments the convolution computation into distinct stages: data loading, filtering, and result accumulation. Each stage is handled by dedicated functional units within the convolution engine, allowing for efficient parallel processing while maintaining modular architecture that avoids overall system complexity

Inventive Principle:
Principle #1Segmentation

2Speed

If specialized hardware is used for depthwise convolution, then computation speed is improved, but hardware compatibility for different matrix operations is reduced

Engineering Contradiction:
Improvedepthwise convolution computation speedVSAvoidhardware compatibility for different matrix operations
Core Design Contradiction:
SpeedVSAdaptability or versatility

Solution Approach 1:

The convolution engine is designed as a universal platform that can execute multiple matrix operations including standard convolution, depthwise convolution, and pointwise convolution. The engine uses configurable parameters (such as group count and kernel size) to adapt to different operation types without requiring specialized hardware, thus maintaining speed improvement while ensuring broad compatibility

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent employs dynamic configuration of the convolution engine parameters to accommodate different matrix operations. The engine can dynamically adjust its behavior based on the operation type being performed, allowing it to optimize for speed in depthwise convolution while remaining compatible with other matrix operations through parameter reconfiguration

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11537865B2Mapping convolution to a channel convolution engine
Publication Date: 2022.12.27 META PLATFORMS INC
  • US11537865B2 patent drawing
  • US11537865B2 patent drawing
  • US11537865B2 patent drawing

AI summary

A processor system comprises a first and second group of registers and a hardware channel convolution processor unit. The first group of registers is configured to store data elements of channels of a portion of a convolution data matrix. Each register stores at least one data element from each channel. The second group of registers is configured to store data elements of convolution weight matrices including a separate convolution weight matrix for each channel. Each register stores at least one data element from each convolution weight matrix. The hardware channel convolution processor unit is configured to multiply each data element in the first group of registers with a corresponding data element in the second group of registers and sum together the multiplication results for each specific channel to determine corresponding channel convolution result data elements in a corresponding channel convolution result matrix.