In-Memory Logical Engine for Deep Learning Kernel Bottlenecks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In Processing In-Memory (PIM) architectures, deep learning workloads face significant execution time bottlenecks due to the high computational requirements of convolution operations, particularly because private kernels for each input neuron result in low temporal locality and high bandwidth pressure, leading to inefficient processing and energy consumption.

Innovation Solution

The method involves identifying data portions from distinct data objects to be processed using the same logical operation, storing them in buffers for batch processing with a shared kernel, and utilizing a resistive memory array as a logical engine to perform matrix-vector multiplications, thereby reducing kernel retrieval frequency and achieving temporal locality.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If private kernels are used for each input neuron in PIM architectures, then processing can be performed locally in memory, but temporal locality is low and bandwidth pressure is high

Engineering Contradiction:
Improveprocessing speedVSAvoidenergy consumption
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent merges multiple private kernels into shared kernels that can be reused across different input neurons. By combining kernels that were previously stored separately in memory, the system reduces the number of kernel retrieval operations and improves temporal locality, thereby reducing energy consumption while maintaining processing speed.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent makes kernels universal by designing them to serve multiple input neurons rather than being dedicated to a single neuron. These shared kernels can be reused across different computational tasks and data objects, reducing bandwidth pressure and improving energy efficiency while maintaining high productivity through local processing.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Productivity

If kernels are stored in memory for each input neuron, then processing can be performed, but kernel retrieval frequency is high

Engineering Contradiction:
Improveprocessing throughputVSAvoidkernel retrieval time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent combines multiple kernel storage locations into shared kernel buffers, reducing the total number of kernel retrieval operations. By merging kernels that serve multiple input neurons, the system decreases kernel retrieval frequency and reduces the time lost to memory access operations.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent performs preliminary actions by pre-loading and caching shared kernels in buffer memory before they are needed for processing. This allows kernels to be readily available when required, reducing retrieval time and preventing processing bottlenecks while maintaining high throughput.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If data portions from distinct data objects are processed separately, then data integrity is maintained, but processing pipeline utilization is low

Engineering Contradiction:
Improvedata integrityVSAvoidpipeline utilization
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent merges the processing of data portions from distinct data objects by applying shared kernels across multiple data objects in sequence. This approach maintains data integrity through proper isolation of data portions while improving pipeline utilization by keeping the processing unit continuously occupied with reusable kernels.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent ensures continuity of useful action by designing the processing pipeline to continuously operate on multiple data objects using shared kernels. By eliminating idle periods between processing different data objects and maintaining a steady stream of computational tasks, the system improves pipeline utilization while preserving data integrity through structured processing.

Inventive Principle:
Principle #20Continuity of useful action

Applied Scientific Principles

This section explains which scientific principles are used to turn an abstract innovation direction into a practical engineering solution.

Function Achieved in This Case

This approach reduces the frequency of kernel retrieval, enhances processing pipeline utilization, and decreases energy consumption by leveraging temporal locality and the efficiency of resistive memory arrays for deep learning tasks, such as face detection and image recognition.

Implementation Method 1

utilizing a resistive memory array as a logical engine to perform matrix-vector multiplications

Methodology Applied
Scientific EffectElectrical Resistance: Electrical Resistance

Data Source

PatentUS11126549B2Processing in-memory architectures for performing logical operations
Publication Date: 2021.09.21 HEWLETT PACKARD ENTERPRISE DEV LP
  • US11126549B2 patent drawing
  • US11126549B2 patent drawing
  • US11126549B2 patent drawing

AI summary

In an example, a method includes identifying, using at least one processor, data portions of a plurality of distinct data objects stored in at least one memory which are to be processed using the same logical operation. The method may further include identifying a representation of an operand stored in at least one memory, the operand being to provide the logical operation and providing a logical engine with the operand. The data portions may be stored in a plurality of input data buffers, wherein each of the input data buffers comprises a data portion of a different data object. The logical operation may be carried out on each of the data portions using the logical engine, and the outputs for each data portion may be stored in a plurality of output data buffers, wherein each of the outputs comprising data derived from a different data object.