1. 程式人生 > >Power Optimization SDK介紹之Dynamic API

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之間區別

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(); 這行程式碼的意思是將系統設定到正常的一個狀態,也就是不在功耗相關的狀態