What is the Qualcomm® Snapdragon™ Power Optimization SDK?
This interface is designed to allow developers to make requests to the Qualcomm Snapdragon processor on how the internal frequency control mechanism can assist your application in runtime power and performance scheduling decisions. The developer interface is divided into two exclusive modes: Static Power Mode and Dynamic Power Mode.
What is Static Power Mode?
The Static Power Mode API is designed to help in situations where the developer knows exactly what the performance/power point should be given the current state of the application. Once a mode has been selected the runtime will stay in that mode until a change has been requested.
Static Power Modes include:
- Efficient: Close to best performance with power savings.
- Performance Burst: Enable selected cores at the maximum frequency for a short duration of time. Used for bursts of intensive computation where you can enable all CPUs & GPUs for a short duration of time to gain performance.
- Saver: Provide approximately half of the peak performance of the system. Used when the performance requirements of the application are small.
- Window: Set the minimum and maximum frequency percentages relative to the maximum frequency that cores can use. Used for fine tuning the performance/power point.
- Normal: Return the system to its default state.
Aside from selecting a predefined static mode, the Power Optimization SDK also allows setting the power mode on a specific device: CPU big cores, CPU LITTLE cores, or GPU.
What is Dynamic Power Mode?
The Dynamic Power Mode API is used when the application exhibits a predictable pattern and there is a known throughput metric. For example, the main loop of a video game or the traversal of an image gallery for detecting features. In these cases, the Power Optimization SDK can dynamically adjust the number of cores and frequencies by operating a feedback loop that will self-regulate the system according to the provided throughput metric.
Automatic power minimization starts by setting the intended performance target before entering the loop that will execute the work. Inside the main loop, the application must measure the performance of the application and then pass the measured value onto Power Optimization SDK. Using the target and measured values the runtime will tune the system to minimize power use.
What is the difference between the Qualcomm Symphony SDK and the Power Optimization SDK?
The Symphony SDK is being deprecated as a power management API and is being replaced with the Power Optimization SDK. Migrating from Symphony SDK 1.x to Power Optimization SDK is a fairly straightforward task as the interface has largely remained the same.
What are the System requirements?
- Development OS: Windows 7 or later, Mac OS X 10.10 (Yosemite) or later, or Ubuntu 14.04 or later.
- Android: Android 6.0 (Marshmallow) and Android NDK r13b or later.
- Snapdragon 425/430/435
- Snapdragon 630/650/652/653/660
- Snapdragon 808/810/820/821/835
On unsupported devices, the Power APIs are safe to use but the requests will be ignored and not perform any action.
What is the difference between the Power Optimization SDK v1.0 and v1.1?
Power Optimization v1.1 added support for Snapdragon 4xx and 6xx chipsets, and has made goal tolerance a mandatory parameter in set_goal().
What is the difference between the Power Optimization SDK v1.1 and v1.2?
Power Optimization v1.2 added support for Tri-cluster configuration, and added support for newer Snapdragon 4xx, 6xx, 7xx, and 8xx chipsets.