Neural Network Weight Reordering for Memory Bandwidth Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Neural network processing on electronic devices faces challenges due to the large size of weight values, leading to increased power consumption, processing burden, and memory bandwidth usage, particularly in lower power portable devices where resources are constrained.

Innovation Solution

Determining the order of neural network processing and providing weight values in that order to the processor, reducing the need for random memory access and optimizing memory transactions, which can be achieved through reordering and compression of weight values.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If weight values are stored in main memory for neural network processing, then neural network execution is enabled, but power consumption and memory bandwidth usage increase

Engineering Contradiction:
Improveneural network execution capabilityVSAvoidpower consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent segments the large weight matrix into multiple smaller blocks that can be processed independently. Each block is loaded from main memory into local cache memory separately, reducing the total memory bandwidth required and allowing for more efficient processing with lower power consumption.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements a nested memory hierarchy where weight blocks are organized in a hierarchical structure with main memory containing all weights, cache memory containing frequently accessed weight blocks, and processor registers containing currently active weights. This nested structure enables efficient data access patterns that reduce power consumption.

Inventive Principle:
Principle #7Nested doll (Nesting)

2Measurement precision

If weight values are loaded from main memory during processing, then accurate computation is achieved, but memory bandwidth usage increases

Engineering Contradiction:
Improvecomputation accuracyVSAvoidmemory bandwidth usage
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The patent performs preliminary actions by pre-loading weight blocks into cache memory before they are needed for processing. The compiler analyzes the neural network computation graph and prefetches weight blocks that will be required in the near future, ensuring data is available in fast memory when needed without increasing overall bandwidth usage.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent ensures continuous useful action by organizing weight blocks and activation data to maximize cache hit rates. Weight blocks are arranged in memory according to the computation pattern, and processing is scheduled to continuously utilize cached data without idle waits for memory access, maintaining computation accuracy while minimizing bandwidth requirements.

Inventive Principle:
Principle #20Continuity of useful action

3Speed

If all weight values are kept in local cache memory, then processing speed increases, but device complexity and memory requirements increase

Engineering Contradiction:
Improveprocessing speedVSAvoidmemory architecture complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent implements dynamic weight block management where the contents of cache memory are dynamically adjusted based on the current computation stage. The system adaptively loads and evicts weight blocks according to the actual execution flow and data access patterns, optimizing processing speed without requiring excessive cache capacity or complex static memory architecture.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11669736B2Executing neural networks on electronic devices
Publication Date: 2023.06.06 ARM LTD
  • US11669736B2 patent drawing
  • US11669736B2 patent drawing
  • US11669736B2 patent drawing

AI summary

When performing neural network processing, the order in which the neural network processing is to be performed is determined, and the order in which weight values to be used for the neural network processing will be used is determined based on the determined order of the neural network processing. The weight values are then provided to the processor that is to perform the neural network processing in the determined order for the weight values, with the processor, when performing the neural network processing, then using the weight values in the determined order that they are provided to the processor.