Convolution Engine Parallel Weight Loading

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current convolution computation engines in neural network models consume a significant portion of computation time due to the sequential processing of convolution operations and weight data loading, which hampers performance and efficiency.

Innovation Solution

Implementing a convolution computation engine with a separate weight storage unit and data computation unit, allowing for parallel processing of convolution operations and weight data loading, thereby hiding the loading duration and reducing overall computation time.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If weight data loading is performed sequentially before convolution operations, then data loading is simple to implement, but computation time is significantly increased

Engineering Contradiction:
Improvecomputation timeVSAvoidengine structure
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The convolution computation engine is segmented into functionally independent modules: a weight storage unit for storing weight data, a data computation unit for performing convolution operations, and a control unit for coordinating operations. This segmentation enables parallel execution of weight loading and computation tasks, resolving the contradiction between reducing computation time and maintaining structural simplicity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The weight storage unit pre-loads weight data from external storage during the convolution operation of the first network layer. This preliminary action allows weight data to be ready before it is needed for the second network layer, enabling parallel processing and hiding the loading duration, thus reducing overall computation time without significantly complicating the engine structure.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If weight data is loaded during convolution operations of subsequent layers, then storage efficiency is improved, but data loading may become a bottleneck

Engineering Contradiction:
Improveprocessing efficiencyVSAvoiddata loading speed
Core Design Contradiction:
ProductivityVSSpeed

Solution Approach 1:

The weight storage unit acts as an intermediary buffer between external storage and the data computation unit. It receives and stores weight data from external storage during convolution operations, then supplies the data to the computation unit when needed. This intermediary mechanism decouples the data loading speed from processing efficiency, allowing the system to maintain high productivity without being bottlenecked by external storage speed.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If separate weight storage and computation units are used, then parallel processing is enabled, but device area increases

Engineering Contradiction:
Improvecomputation performanceVSAvoidengine area
Core Design Contradiction:
ProductivityVSArea of stationary object

Solution Approach 1:

The weight storage unit is designed with multi-functionality: it stores weight data for multiple network layers, serves as a buffer for data transfer, and enables parallel processing operations. By consolidating these functions into a single versatile component rather than creating separate dedicated units for each function, the engine achieves high computation performance through parallel processing while minimizing the increase in device area.

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

Data Source

PatentUS20230026006A1Convolution computation engine, artificial intelligence chip, and data processing method
Publication Date: 2023.01.26 TENCENT TECHNOLOGY (SHENZHEN) CO LTD
  • US20230026006A1 patent drawing
  • US20230026006A1 patent drawing
  • US20230026006A1 patent drawing

AI summary

This application discloses a convolution computation engine of a neural network model. The neural network model includes at least first and second network layers. The convolution computation engine includes a weight storage unit implemented by a first processing circuit and a data computation unit implemented by a second processing circuit. The weight storage unit pre-loads weight data of the second network layer from an external storage unit located outside the convolution computation engine during a convolution operation of the first network layer. The data computation unit obtains target input data of the second network layer in response to an operation instruction of the second network layer, and reads the weight data of the second network layer from the weight storage unit; and performs a convolution operation on the target input data by using the weight data of the second network layer.