Runtime Software Performance Optimization for Mobile Devices
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The limited computation resources and strict power constraints of mobile computing devices hinder the deployment of advanced deep learning-based computer vision algorithms.
Innovation Solution
The system automatically chooses a set of parameters or methods at run-time from a design space with pre-selected optimization methods and parameters (algorithms, software libraries, hardware accelerators) for a specific task, optimizing the performance of software applications based on the particular platform they run on.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If advanced deep learning-based computer vision algorithms are deployed on mobile devices, then computational capability and algorithm performance are improved, but power consumption and computation resource usage increase beyond device constraints
Solution Approach 1:
The system dynamically selects from multiple pre-processed implementations of the same algorithm based on runtime conditions. Different implementations are optimized for different scenarios (e.g., CPU vs. GPU vs. neural network accelerator, different precision levels), and the system adapts its choice based on available computation resources and power constraints, resolving the contradiction between algorithm performance and power consumption
Solution Approach 2:
The system changes key parameters such as computational precision (e.g., floating-point vs. integer arithmetic), data representation formats, and algorithmic approximations to balance performance and power consumption. By offering multiple implementations with different parameter configurations, the system can select appropriate trade-offs between computational capability and energy usage
2Productivity
If advanced deep learning-based computer vision algorithms are deployed on mobile devices, then computational capability is improved, but computation resources are exceeded
Solution Approach 1:
The system dynamically adapts its computational approach based on available resources. It monitors device state and selects implementations that match current computation resource availability, enabling advanced algorithms to run on resource-constrained devices by switching to lighter implementations when necessary
Solution Approach 2:
The system segments the algorithm implementation into multiple versions with different computational complexities. Each version is optimized for specific resource levels, allowing the device to select appropriate segments based on available computation resources rather than attempting to run a single resource-intensive implementation
3Ease of manufacture
If a fixed optimization solution is used, then implementation simplicity is maintained, but performance adaptability across different platforms is limited
Solution Approach 1:
Multiple implementations are pre-processed and prepared in advance during the software build process. This preliminary action creates a library of optimized versions that can be selected at runtime based on platform characteristics, maintaining implementation simplicity while achieving cross-platform adaptability
Solution Approach 2:
The system creates universal software that can function across multiple platforms by providing multiple implementations of the same algorithm. Each implementation is tailored for specific platform characteristics (CPU, GPU, neural network accelerators, different operating systems), enabling the software to adapt to diverse environments without requiring platform-specific development
Data Source
AI summary
Among other things, embodiments of the present disclosure improve the functionality of computer software and systems by facilitating the automatic performance optimization of a software application based on the particular platform upon which the application runs. In some embodiments, the system can automatically choose a set of parameters or methods at run-time from a design space with pre-selected optimization methods and parameters (e.g., algorithms, software libraries, and/or hardware accelerators) for a specific task.


