Memory Area Allocation for Sparse Matrix Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for machine learning using large-scale data struggle to efficiently secure memory volume for matrix processing, particularly in parallel processing scenarios, as they fail to effectively manage memory allocation based on the number of non-zero elements in matrices.

Innovation Solution

An area allocation device and method that specifies target arrays with non-zero elements in subarray information, calculates the number of these identifiers, and allocates memory based on that calculation to efficiently secure memory volume for matrix processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If memory area is allocated based on total matrix size, then memory coverage is sufficient, but memory usage efficiency deteriorates due to allocating space for zero-value elements

Engineering Contradiction:
Improvememory volume allocationVSAvoidprocessing efficiency
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent extracts and processes only the non-zero elements from the matrix data. By identifying and working with only the necessary data elements (those with non-zero values), the system avoids allocating and processing memory for redundant zero-value elements, thus improving memory usage efficiency while maintaining sufficient coverage for actual computations

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent applies different data structures and processing methods to different regions of the matrix based on their content characteristics. Non-zero elements are stored and processed with optimized structures that consume less memory, while zero elements are either omitted or handled differently. This local differentiation improves overall memory efficiency without compromising the ability to perform necessary matrix operations

Inventive Principle:
Principle #3Local quality

2Reliability

If all matrix elements are processed in parallel, then processing completeness is ensured, but communication time increases due to data gathering overhead

Engineering Contradiction:
Improveprocessing completenessVSAvoidcommunication time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the matrix processing into independent units based on non-zero element locations. Each processing unit handles a specific subset of non-zero elements, allowing parallel processing without requiring constant communication and coordination between all processing units. This segmentation maintains processing completeness while reducing the overhead of data gathering and synchronization

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary identification and organization of non-zero elements before the main parallel processing begins. By pre-processing the data to identify which elements require processing and organizing them into appropriate processing units, the system reduces the amount of communication and coordination needed during the actual parallel execution, thereby reducing communication time while ensuring all necessary elements are processed

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS12019603B2Area allocation device, area allocation method, and non-volatile recording medium
Publication Date: 2024.06.25 NEC CORP
  • US12019603B2 patent drawing
  • US12019603B2 patent drawing
  • US12019603B2 patent drawing

AI summary

Provided are an area allocation device and the like that can efficiently allocate memory volume for processing of matrix operations. The area allocation device specifies array identifiers representing positions of elements storing a value different from a predetermined value in each array of subarray information in array information, arrays consisting of a plurality of element, the array information including a plurality of information representing the arrays, the subarray information corresponding to at least a part of the arrays; calculates a number of the specified array identifiers; and allocates a memory area having a memory volume depending the calculated number.