Neural Network Layer Grouping for On-Chip Memory Pre-Fetch

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Neural networks require significant memory bandwidth for reading and writing data and weights, which can be inefficient due to repeated access to off-chip memory, leading to high latency and power consumption.

Innovation Solution

The method involves grouping neural network layers into layer groups and tile groups, with pre-fetching input data into on-chip memory to reduce off-chip memory access and optimizing data processing by subdividing input data into blocks and using techniques like Y-splits, X-splits, and F-splits for efficient memory access.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If data is read from off-chip memory multiple times, then the neural network can be executed, but memory bandwidth usage increases and power consumption increases

Engineering Contradiction:
Improveneural network executionVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent applies preliminary action by pre-fetching input data from off-chip memory into on-chip memory buffers before the neural network execution requires it. This allows the data to be readily available during computation, avoiding repeated reads from off-chip memory and reducing power consumption while maintaining execution productivity

Inventive Principle:
Principle #10Preliminary action

2Productivity

If data is read from off-chip memory multiple times, then the neural network can be executed, but memory bandwidth usage increases

Engineering Contradiction:
Improveneural network executionVSAvoidmemory bandwidth
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent pre-fetches input data into on-chip memory buffers before execution, so that during the neural network computation, data is read from the faster on-chip memory rather than repeatedly accessing off-chip memory. This reduces the quantity of memory bandwidth consumed while maintaining execution productivity

Inventive Principle:
Principle #10Preliminary action

3Productivity

If data is read from off-chip memory multiple times, then the neural network can be executed, but latency increases

Engineering Contradiction:
Improveneural network executionVSAvoidlatency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent pre-fetches input data into on-chip memory buffers before the neural network execution requires it. Since on-chip memory access is significantly faster than off-chip memory access, this preliminary action reduces the latency experienced during data retrieval while maintaining execution productivity

Inventive Principle:
Principle #10Preliminary action

4Productivity

If input data is subdivided into blocks and pre-fetched, then memory access efficiency improves, but device complexity increases

Engineering Contradiction:
Improvememory access efficiencyVSAvoiddata processing structure
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent subdivides input data into blocks and pre-fetches them into on-chip memory buffers. This segmentation allows for more efficient memory access patterns and better utilization of on-chip resources, improving memory access efficiency while the added complexity is managed through systematic data organization

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS20240232596A1Implementing neural networks in hardware
Publication Date: 2024.07.11 IMAGINATION TECH LTD
  • US20240232596A1 patent drawing
  • US20240232596A1 patent drawing
  • US20240232596A1 patent drawing

AI summary

Methods of implementing a neural network in hardware, the neural network including a plurality of layers and the layers being grouped into a plurality of layer groups, each layer group comprising one or more layers of the neural network that are processed in a single pass through the hardware. The layer groups are grouped into a plurality of tile groups, each tile group comprising a set of layer groups that are evaluated when executing the neural network. The method comprises pre-fetching a portion of the input data for a first layer group in a tile group into a buffer slot in on-chip memory; and subsequently releasing the buffer slot after output data for the first layer group has been written to memory.