Neural Network Data Partition Sequencing for Local Memory Bottlenecks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current neural network (NN) and deep neural network (DNN) computing environments face inefficiencies due to limited local memory resources, leading to increased latency and power consumption from frequent data transfers between local and main memory.

Innovation Solution

Implementing a 'depth first' and/or 'dynamic depth first' data processing approach that calculates and executes a data apportionment sequence to optimize memory management and minimize data read/writes to main memory by parceling input data across processing layers and utilizing local memory for intermediate activations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If intermediate layer activations are stored to main memory, then data availability for subsequent layers is ensured, but data transfer latency and power consumption increase

Engineering Contradiction:
Improvedata availabilityVSAvoiddata transfer latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the neural network computation into micro-batches, processing a subset of data through multiple layers before transferring results to main memory. This allows intermediate activations to remain in local memory longer, reducing transfer frequency while ensuring data availability through controlled segmentation of the computation stream.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary actions by pre-loading data into local memory and preparing computation pipelines in advance. By organizing data apportionment sequences beforehand and pre-positioning data in local memory buffers, the system minimizes the need for frequent transfers to main memory during actual computation, thereby reducing latency.

Inventive Principle:
Principle #10Preliminary action

2Quantity of substance

If all intermediate activations are stored to main memory, then memory capacity constraints are relieved, but processing speed decreases due to frequent data transfers

Engineering Contradiction:
Improvememory capacityVSAvoidprocessing speed
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent divides the computation into micro-batches that can be processed sequentially in local memory. By segmenting the data flow and processing smaller subsets through multiple layers before main memory access, the system maintains high processing speed while managing limited local memory capacity effectively.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system ensures continuity of useful action by maintaining data in local memory throughout the multi-layer processing pipeline. Through data apportionment sequences and micro-batch processing, computations continue uninterrupted in local memory, avoiding the speed penalty of frequent main memory transfers while still respecting capacity constraints.

Inventive Principle:
Principle #20Continuity of useful action

3Ease of operation

If data is transferred frequently between local and main memory, then data access requirements are met, but power consumption increases

Engineering Contradiction:
Improvedata accessVSAvoidpower consumption
Core Design Contradiction:
Ease of operationVSUse of energy by moving object

Solution Approach 1:

The system performs preliminary data apportionment and positions required data in local memory buffers before computation begins. By pre-organizing data access patterns and loading necessary data into local memory in advance, the system meets data access requirements while minimizing the frequency and energy cost of transfers to main memory.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements self-service mechanisms where the system autonomously manages data apportionment sequences and micro-batch processing to keep required data in local memory. Through intelligent data retention and local processing, the system serves its own data access needs without frequent main memory intervention, thereby reducing power consumption.

Inventive Principle:
Principle #25Self-service

4Device complexity

If local memory size is small, then device complexity is reduced, but memory utilization efficiency decreases

Engineering Contradiction:
Improvememory architectureVSAvoidmemory utilization efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent introduces dynamic data apportionment sequences that adaptively manage data in local memory based on computation needs. The system dynamically adjusts which data partitions are retained in local memory and for how long, optimizing memory utilization efficiency without requiring larger or more complex memory architecture.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes operational parameters by implementing micro-batch processing and adjustable data apportionment strategies. These parameter changes allow the same small local memory to be used more efficiently by controlling data flow patterns, retention durations, and processing batch sizes, thereby improving memory utilization without increasing device complexity.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11256976B2Dynamic sequencing of data partitions for optimizing memory utilization and performance of neural networks
Publication Date: 2022.02.22 MICROSOFT TECHNOLOGY LICENSING LLC
  • US11256976B2 patent drawing
  • US11256976B2 patent drawing
  • US11256976B2 patent drawing

AI summary

Optimized memory usage and management is crucial to the overall performance of a neural network (NN) or deep neural network (DNN) computing environment. Using various characteristics of the input data dimension, an apportionment sequence is calculated for the input data to be processed by the NN or DNN that optimizes the efficient use of the local and external memory components. The apportionment sequence can describe how to parcel the input data (and its associated processing parameters—e.g., processing weights) into one or more portions as well as how such portions of input data (and its associated processing parameters) are passed between the local memory, external memory, and processing unit components of the NN or DNN. Additionally, the apportionment sequence can include instructions to store generated output data in the local and/or external memory components so as to optimize the efficient use of the local and/or external memory components.