Accelerator Data Packing for Memory Access Cost Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current hardware accelerators for deep neural networks face performance bottlenecks due to inefficient storage and memory access costs, particularly in handling complex input data, which limits their operational efficiency.

Innovation Solution

The proposed solution involves packing input data with a data layout determined by the memory word width and filter size, performing operations between portions of the packed data and weights stored in the same memory word, and utilizing im2col transformation to optimize convolution operations, thereby improving storage efficiency and reducing memory access costs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of energy

If input data is stored in conventional memory layout, then memory access is simple, but storage efficiency is low and memory access costs are high

Engineering Contradiction:
Improvememory access costVSAvoiddata layout complexity
Core Design Contradiction:
Loss of energyVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by pre-packing input data into an optimized layout before storing it in memory. The data is transformed from conventional layout to a packed layout that groups data elements according to filter spatial sizes and memory word widths, so that when convolution operations are performed, multiple data elements can be accessed from the same memory word, reducing memory access costs and energy consumption.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If multiple convolution operations are performed with frequent memory access, then computational accuracy is maintained, but power consumption increases

Engineering Contradiction:
Improvecomputational accuracyVSAvoidpower consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent applies merging by combining multiple data elements that are needed for different convolution operations into the same memory word through data packing. This allows the accelerator to fetch multiple data elements in a single memory access operation, maintaining computational accuracy for multiple convolutions while significantly reducing the number of memory access operations and associated power consumption.

Inventive Principle:
Principle #5Merging (Combining)

3Productivity

If data is packed according to memory word width and filter size, then memory efficiency improves, but data layout complexity increases

Engineering Contradiction:
Improvememory efficiencyVSAvoiddata layout complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies parameter changes by transforming the data layout parameters to match the memory system parameters (word width) and computational parameters (filter spatial size). The packing process reorganizes data according to these specific parameters, creating a layout where data elements are grouped in a way that maximizes memory efficiency. While the layout becomes more complex, this complexity is justified by the significant improvement in memory efficiency and the reduction in memory access operations.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS12130756B2Accelerator, method of operating an accelerator, and electronic device including an accelerator
Publication Date: 2024.10.29 SAMSUNG ELECTRONICS CO LTD
  • US12130756B2 patent drawing
  • US12130756B2 patent drawing
  • US12130756B2 patent drawing

AI summary

An accelerator, a method of operating the accelerator, and an electronic device including the accelerator. A method of operating the accelerator configured to perform a target operation includes packing input data with a data layout determined based on a word width of a memory in the accelerator and a spatial size of a filter to be applied to the target operation and storing the packed input data in the memory, and performing the target operation between a portion of the input data stored in a same word in the memory and weights of the filter.