Neural Network Acceleration Processor for Sparse Matrix Operations

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current general-purpose processors and GPUs are inefficient in calculating and memory access for large-scale neural networks due to high calculation and memory access requirements, leading to performance bottlenecks and power consumption issues, especially when handling sparse neural networks.

Innovation Solution

A neural network acceleration processor is designed with a connection value generator, pruning module, and computing unit to modify input data and weight values based on connection values, reducing the need for index array retrieval and optimizing calculations by generating connection values and modifying data to eliminate zero-weight connections.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a general-purpose processor is used to calculate sparse neural networks, then the system can handle various computing tasks, but the calculation and memory access overhead increases significantly

Engineering Contradiction:
Improveprocessor versatilityVSAvoidcalculation time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The processor is segmented into specialized functional units including a sparse matrix multiplication unit, a vector operation unit, and a memory management unit. This segmentation allows each unit to handle specific neural network operations efficiently, reducing overall calculation time while maintaining processing versatility through the coordinated work of multiple specialized units

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

An index array is introduced as an intermediary data structure to map non-zero weight values to their corresponding positions. This intermediary allows the system to quickly locate relevant weight values without searching through entire weight matrices, significantly reducing memory access overhead while preserving the ability to handle various neural network configurations

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If a general-purpose processor is used to calculate sparse neural networks, then the system can handle various computing tasks, but the memory access overhead increases

Engineering Contradiction:
Improveprocessor versatilityVSAvoidmemory access power consumption
Core Design Contradiction:
Adaptability or versatilityVSUse of energy by moving object

Solution Approach 1:

Zero-weight connections are extracted and removed from the computation entirely. The sparse matrix multiplication unit only processes non-zero weight values, and the index array selectively maps only these relevant connections. This extraction eliminates unnecessary memory accesses to zero-weight values, reducing power consumption while maintaining versatility through configurable sparse matrix handling

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The index array is pre-computed and stored to map non-zero weight values to their positions before the actual neural network inference or training begins. This preliminary action allows subsequent computations to directly access required weight values without repeated searches, reducing memory access overhead and power consumption during actual processing

Inventive Principle:
Principle #10Preliminary action

3Productivity

If multiple general-purpose processors work concurrently, then calculation capacity increases, but inter-processor communication becomes a performance bottleneck

Engineering Contradiction:
Improvecalculation throughputVSAvoidinter-processor communication complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

Multiple processing units are merged into a unified neural network processing system with shared memory resources and coordinated control. The sparse matrix multiplication units work in parallel on different portions of the computation while sharing the index array and weight value storage, increasing throughput without requiring complex inter-processor communication protocols

Inventive Principle:
Principle #5Merging (Combining)

4Productivity

If pruning is applied to reduce weight values, then calculation and memory access decrease, but each multiplication operation needs to re-search positions in the index array

Engineering Contradiction:
Improvecalculation efficiencyVSAvoidindex array search time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The index array is constructed and stored in advance during the pruning process, mapping the positions of non-zero weight values before computation begins. This preliminary indexing eliminates the need to re-search positions during subsequent multiplication operations, as the mapped positions are directly accessible through the pre-computed index array

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The index array serves as a copied reference structure that preserves the positional information of non-zero weight values after pruning. Instead of searching through the original weight matrix during computation, the system copies and uses the pre-computed index mappings to directly access relevant weight values, reducing search time while maintaining calculation efficiency

Inventive Principle:
Principle #26Copying

Data Source

PatentUS11574195B2Operation method
Publication Date: 2023.02.07 SHANGHAI CAMBRICON INFORMATION TECH CO LTD
  • US11574195B2 patent drawing
  • US11574195B2 patent drawing
  • US11574195B2 patent drawing

AI summary

Aspects of data modification for neural networks are described herein. The aspects may include a connection value generator configured to receive one or more groups of input data and one or more weight values and generate one or more connection values based on the one or more weight values. The aspects may further include a pruning module configured to modify the one or more groups of input data and the one or more weight values based on the connection values. Further still, the aspects may include a computing unit configured to update the one or more weight values and/or calculate one or more input gradients.