Convolutional Neural Network Feature Data Segmentation for Memory Efficiency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The limited capacity of high-speed memory in convolutional neural networks leads to inefficient data transportation between memory and processor, affecting operation efficiency due to the need to transfer large amounts of feature data.
Innovation Solution
The method involves splitting input feature data into subdata blocks, which are then processed and buffered in high-speed memory, allowing for efficient operation across multiple layers while maintaining the integrity of the output feature data by determining the expected number and layout of subdata blocks based on the output feature data of the last layer.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If high-speed memory capacity is increased to buffer all feature data, then data access speed improves, but cost increases
Solution Approach 1:
The patent divides the feature data into multiple subdata blocks and processes them in segments. The cache memory is used to buffer only the current subdata block being processed, rather than attempting to buffer all feature data simultaneously. This segmentation approach allows the system to work within limited cache capacity while maintaining high access speeds for the active data portions.
Solution Approach 2:
The patent performs preliminary calculations to determine the expected number of subdata blocks and their layout positions, widths, and heights before actual processing. This preliminary action allows the system to optimize the data access pattern and cache utilization in advance, ensuring that the limited cache capacity is used most efficiently without requiring increased memory capacity.
2Productivity
If feature data is divided into subdata blocks and processed in segments, then cache memory utilization improves, but data transportation complexity increases
Solution Approach 1:
The patent performs preliminary calculations to determine the expected number of subdata blocks, their layout positions, widths, and heights before actual processing. This preliminary action includes calculating the actual positions of subdata blocks in the input feature data and determining the expected number of subdata blocks needed. By pre-computing all these parameters, the system simplifies the actual data transportation process during execution, as the cache can be directly configured with the pre-determined block layout without complex runtime calculations.
3Loss of time
If all feature data is buffered in cache memory, then data access efficiency improves, but cache capacity requirements increase
Solution Approach 1:
The patent divides the feature data into multiple subdata blocks and processes them sequentially or in parallel segments. The cache memory buffers only the current subdata block(s) being processed rather than all feature data. The system determines the expected number of subdata blocks based on the output feature data requirements and works through the input data in corresponding segments, significantly reducing the cache capacity needed while maintaining efficient data access for the active processing portion.
Data Source
AI summary
A method and an apparatus for adapting feature data in a convolutional neural network. The method includes selecting a plurality of consecutive layers; determining an expected number of subdata blocks and a layout position, width and height of each subdata block in an output feature data of a last layer; determining, for each current layer, a layout position, width, and height of each subdata block of an input feature data for the current layer according to the layout position, width, and height of each subdata block of the output feature data for the current layer; determining an actual position of each subdata block of the input feature data for a first layer in the input feature data for the first layer; and obtaining the expected number of subdata blocks of the input feature data for the first layer according to the actual position, width and height of each subdata block of the input feature data for the first layer.


