Stripe-Based Neural Network Data Processing for Memory Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Neural networks, particularly pixel-to-pixel neural networks, face significant resource burdens due to high memory and processing demands, leading to increased costs and inefficiencies, especially in lower-end devices where memory buffers become oversubscribed, causing spikes in bandwidth and power usage.

Innovation Solution

Implementing a stripe and raster based data processing scheme that processes data in vertical stripes, where each layer processes data sequentially along depth and horizontal directions before moving vertically, reducing redundant calculations and memory storage needs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If neural networks process large amounts of data using conventional methods, then processing accuracy is improved, but memory bandwidth and power consumption increase significantly

Engineering Contradiction:
Improveprocessing accuracyVSAvoidpower consumption
Core Design Contradiction:
Measurement precisionVSUse of energy by moving object

Solution Approach 1:

The input data is divided into multiple non-overlapping stripes that can be processed independently. Each stripe contains a subset of the input pixels, allowing the neural network to process one stripe at a time rather than the entire input simultaneously, thereby reducing peak memory bandwidth requirements and power consumption while maintaining processing accuracy.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new processing dimension by organizing data into stripes and processing them sequentially across the stripe dimension. This transforms the conventional single-batch processing into multi-stripe processing, enabling better resource utilization and reduced power consumption without sacrificing accuracy.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Reliability

If neural networks use conventional processing methods, then complete data processing is achieved, but device resource burden increases

Engineering Contradiction:
Improveprocessing completenessVSAvoidresource burden
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

By segmenting the input data into multiple stripes and processing them sequentially, the patent reduces the memory buffer size required at any given time. This lowers the device resource burden while ensuring complete processing of all input data through systematic iteration over all stripes.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent processes data in partial batches (individual stripes) rather than requiring the entire dataset to be loaded into memory simultaneously. This partial processing approach reduces resource requirements while maintaining processing completeness through multiple passes.

Inventive Principle:
Principle #16Partial or excessive action

3Quantity of substance

If memory buffers are increased to handle neural network processing, then data processing capacity is improved, but bandwidth spikes and power consumption increase

Engineering Contradiction:
Improvedata processing capacityVSAvoidbandwidth and power usage
Core Design Contradiction:
Quantity of substanceVSLoss of energy

Solution Approach 1:

The patent segments the data processing into multiple stripes that can be handled with smaller memory buffers. This segmentation allows the system to maintain high data processing capacity while using less memory bandwidth at any given moment, thereby reducing power consumption associated with memory access.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS12254405B2Processing data in pixel-to-pixel neural networks
Publication Date: 2025.03.18 QUALCOMM INC
  • US12254405B2 patent drawing
  • US12254405B2 patent drawing
  • US12254405B2 patent drawing

AI summary

Technologies are provided for processing data in neural networks. An example method can include processing, by each layer of a neural network, a row in a first stripe of a data input, the row being processed sequentially in a horizontal direction and according to a layer-by-layer sequence; after processing the row, processing, by each layer, subsequent rows in the first stripe on a row-by-row basis, each subsequent row being processed sequentially in the horizontal direction and according to the layer-by-layer sequence; generating an output stripe based on the processing of the row and subsequent rows; processing, by each layer, a second stripe of the data input, each row in the second stripe being processed in the horizontal direction and according to the layer-by-layer sequence, wherein rows in the second stripe are processed on a row-by-row basis; and generating another output stripe based on the processing of the second stripe.