Power Optimization SDK介绍之Dynamic API

1、什么是Qualcomm®Snapdragon™Power Optimization SDK?

  这里面所说的sdk其实就是给开发者暴露的一类接口。该接口旨在允许开发人员向Qualcomm Snapdragon处理器发出有关内部频率控制机制如何在运行时电源和性能调度决策中协助应用程序的请求。
开发人员界面分为两种独占模式:静态功耗模式和动态功耗模式。

2、静电功耗模式

  静态功耗模式API旨在帮助开发人员确切了解应用程序当前状态应该具有哪些性能/功耗点。选择模式后,运行时将保持该模式,直到请求更改为止。静态功耗模式包括:

  • 高效:通过省电实现最佳性能。
  • 性能突发:在最短频率下以最短频率启用所选内核。用于密集计算的突发,您可以在短时间内启用所有CPU和GPU以获得性能。
  • 节电器:提供系统峰值性能的大约一半。在应用程序的性能要求很小时使用
  • 窗口:设置相对于核心可以使用的最大频率的最小和最大频率百分比。用于微调性能/功率点。 正常:将系统恢复为默认状态。

3、动态功耗模式

  当应用程序呈现可预测的模式并且存在已知的吞吐量度量时,将使用动态功耗模式API。例如,视频游戏的主循环或用于检测特征的图像库的遍历。
  在这些情况下,Power Optimization SDK可以通过操作反馈回路动态调整核心和频率的数量,该反馈回路将根据提供的吞吐量指标自我调节系统。
  在进入将执行工作的循环之前,通过设置预期的性能目标来开始自动功率最小化。在主循环内部,应用程序必须测量应用程序的性能,然后将测量值传递到Power Optimization SDK。使用目标值和测量值,运行时将调整系统以最小化功耗。

4、Optimization SDK系统要求

  开发操作系统: Windows 7或更高版本,Mac OS X 10.10(Yosemite)或更高版本,或Ubuntu 14.04或更高版本。
  Android: Android 6.0(Marshmallow)和Android NDK r13b或更高版本。
  处理器:
  Snapdragon 425/430/435
  Snapdragon 630/650/652/653/660
  Snapdragon 808/810/820/821/835
  在不受支持的设备上,Power API可以安全使用,但请求将被忽略,不会执行任何操作。

5、Power Optimization SDK V1.0和V1.1之间区别

  Power Optimization v1.1增加了对Snapdragon 4xx和6xx芯片组的支持,并使目标容差成为set_goal()中的必需参数。(sdk可以前往https://developer.qualcomm.com/software/snapdragon-power-optimization-sdk/tools下载)

6、Dynamic API介绍

  上面介绍了SDK相关的信息,本节主要是介绍动态功耗模式下的调节API的使用。Dynamic API的使用方式和Static API类似,如下:

qspower::set_goal(desired_goal);
for(...)
{
    // Processing Logic,应用程序的处理逻辑
    // Track # of elements processed and time to process
    qspower::regulate(elemetns_processed_per_millisecond);
}
qspower::clear_goal();

  下面分别对上述代码的每一行做简单分析

  1. qspower::set_goal(desired_goal);这行代码的意思就是应用程序想在多少milliseconed之内处理完成。
  2. qspower::regulate(elemetns_processed_per_millisecond);
    这行代码的意思是允许API在每一毫秒之内对要处理的元素的数量进行调整。
  3. qspower::clear_goal(); 这行代码的意思是将系统设置到正常的一个状态,也就是不在功耗相关的状态

你可能感兴趣的:(其他)