Neural Network Code Generation With Memory Planning Proposals
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Implementing neural networks on devices with limited RAM requires efficient memory planning, which is NP-hard and not solvable by polynomial-time algorithms, leading to high memory consumption and installation times.
Innovation Solution
A method that decouples memory planning from code generation, creating an intermediate representation to optimize memory usage, allowing multiple algorithms to be applied and compared for selecting the most suitable plan, ensuring efficient memory usage on target devices.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If memory planning is performed using exact algorithms, then memory usage is optimized, but installation time increases significantly
Solution Approach 1:
The patent performs memory planning in advance during the installation process by generating multiple plan proposals and selecting the optimal one before the neural network is deployed. This preliminary action allows the system to prepare efficient memory allocation strategies ahead of time, reducing runtime delays and optimizing memory usage without significantly increasing the overall installation time.
Solution Approach 2:
The patent implements a dynamic memory planning approach where multiple plan proposals are generated and evaluated, and the selection can be adjusted based on device characteristics and neural network requirements. This dynamic process allows the system to adapt memory allocation strategies to specific scenarios, balancing memory efficiency with installation time constraints through flexible plan selection.
2Quantity of substance
If multiple memory planning algorithms are applied, then memory usage is optimized, but computational complexity increases
Solution Approach 1:
The patent segments the memory planning process into distinct steps: generating multiple plan proposals using different algorithms, evaluating their quality levels, and selecting the optimal plan. This segmentation allows the system to apply multiple algorithms in a structured manner, managing computational complexity through modular processing while still achieving optimized memory usage through the evaluation and selection of the best plans.
Data Source
AI summary
A method for transforming an abstract representation of a trained neural network into program code in a target language. The program code is convertible into executable program code using a compiler for the target language. The method includes: reading an abstract representation of a neural network which has already been trained; calculating an intermediate representation of the neural network from the abstract representation, the intermediate representation specifying a computation graph; ascertaining a plurality of plan proposals for planning the memory usage during the execution of the computation graph; ascertaining a quality level for each plan proposal; selecting a plan proposal based on the ascertained quality level; and generating the sought program code in the target language from the intermediate representation and the selected plan proposal.


