《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于Android系統(tǒng)的GPU動(dòng)態(tài)調(diào)頻方案
基于Android系統(tǒng)的GPU動(dòng)態(tài)調(diào)頻方案
來源:電子技術(shù)應(yīng)用2013年第9期
陳 屴
福州瑞芯微電子有限公司,福建 福州350003
摘要: 針對(duì)移動(dòng)終端上GPU的高功耗問題,提出一種基于Android系統(tǒng)的GPU動(dòng)態(tài)調(diào)頻方案。方案根據(jù)各種應(yīng)用對(duì)GPU的性能需求,引入了GPU的頻率-性能模型,包括選擇工作頻率和測量相對(duì)性能的方法。動(dòng)態(tài)調(diào)頻算法通過歷史負(fù)載計(jì)算出預(yù)測負(fù)載,將其代入頻率-性能模型后預(yù)測出下一周期GPU的頻率。實(shí)驗(yàn)結(jié)果表明,方案在典型場景下可以快速跟蹤GPU負(fù)載的變化,預(yù)測GPU頻率的準(zhǔn)確率達(dá)到95%以上。
中圖分類號(hào): TP311.1
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2013)09-0028-03
Dynamic frequency scaling solution of GPU based on Android system
Chen Li
Fuzhou Rockchip Electronics Co., Ltd., Fuzhou 350003,China
Abstract: A dynamic frequency scaling solution of GPU based on Android system was proposed in order to resolve the high power problem of GPU in mobile terminals. A GPU frequency-performance model, including the methods of working frequency selecting and relative performance measuring, was introduced according to the GPU performance requirement of various applications. In the DVFS algorithm, the prediction load was calculated by weighted previous loads and substituted into the GPU frequency-performance model to predict the frequency in next period. The experimental results show that the changing of GPU load can be tracked rapidly in typical cases,and the accuracy of GPU frequency prediction is more than 95%.
Key words : Android;GPU;frequency-performance model;workload;dynamic frequency scaling

   系統(tǒng)級(jí)芯片(SoC)是智能移動(dòng)終端的核心,決定了一款機(jī)器的性能水平。目前的中高端嵌入式SoC中普遍集成了嵌入式圖形處理器GPU(Graphic Processing Unit),主要用于處理CPU并不擅長的三維圖形任務(wù)。但高性能GPU所帶來的高功耗對(duì)于移動(dòng)終端是一個(gè)嚴(yán)峻的挑戰(zhàn)。

    動(dòng)態(tài)電壓頻率調(diào)整DVFS(Dynamic Voltage and Fre-
quency Scaling)是降低動(dòng)態(tài)功耗的常用方法,其核心思想是根據(jù)當(dāng)前所運(yùn)行的任務(wù)對(duì)計(jì)算能力的不同需求來動(dòng)態(tài)調(diào)節(jié)處理器的工作頻率和電壓,從而達(dá)到節(jié)能的目的。DVFS的理論依據(jù)是如下動(dòng)態(tài)功耗的計(jì)算公式[1]:
    
    嵌入式GPU(下文均簡稱GPU)的發(fā)展時(shí)間短,技術(shù)更新快,在設(shè)計(jì)目標(biāo)、軟硬件架構(gòu)、圖形標(biāo)準(zhǔn)、運(yùn)行系統(tǒng)等方面與PC顯卡都有所差異[2],有關(guān)降低功耗的研究尚不多見。針對(duì)這種現(xiàn)狀,本文基于目前最流行的嵌入式操作系統(tǒng)Android,在GPU的內(nèi)核驅(qū)動(dòng)層提出了一種GPU 動(dòng)態(tài)調(diào)頻方案,使GPU可以根據(jù)性能需求自適應(yīng)地調(diào)節(jié)運(yùn)行頻率和電壓,從而降低GPU的動(dòng)態(tài)功耗。
1 Android應(yīng)用對(duì)GPU的性能需求
    Android系統(tǒng)主界面的混合與疊加采用GPU硬件加速[3],除此之外,圖庫、動(dòng)態(tài)壁紙、3D桌面、3D游戲等多種應(yīng)用也需要GPU的支持。各種應(yīng)用對(duì)于GPU性能的需求大不相同,例如,動(dòng)態(tài)壁紙的幀率一般被限定在15~20 f/s左右,對(duì)GPU的性能需求較低;不同的3D游戲?qū)τ贕PU性能的需求也大不相同,即使在同一個(gè)游戲中,對(duì)GPU性能的需求也是隨著場景的變化而不斷變化的。GPU性能測試軟件需要反映GPU的最高性能,對(duì)GPU處理能力的要求遠(yuǎn)超其他應(yīng)用程序。根據(jù)以上分析,如果GPU始終以固定的頻率運(yùn)行,則會(huì)出現(xiàn)兩種情況:對(duì)于低復(fù)雜度的任務(wù),若GPU運(yùn)行在高頻,則性能過剩,造成功耗的浪費(fèi)[4];對(duì)于高復(fù)雜度的任務(wù),若GPU沒有運(yùn)行在足夠高的頻率,則無法滿足性能需求。因此最理想的情況是GPU能夠根據(jù)需求快速地調(diào)整頻率,以提供期望的性能。
2 GPU頻率-性能模型
2.1 選擇GPU工作頻率

    Android系統(tǒng)的時(shí)鐘模塊可以為GPU提供多種頻率,GPU動(dòng)態(tài)調(diào)頻的工作頻率從這些頻率中選出。在備選頻率中,選擇能滿足最低性能需求的最低頻率作為最低工作頻率,選擇GPU能正常工作的最高頻率作為最高工作頻率。在最低和最高工作頻率之間盡可能等間隔地選擇工作頻率,并且相鄰頻率的間隔不能太小,否則GPU容易在相鄰的兩個(gè)頻率上反復(fù)切換。以1 200 MHz的輸入時(shí)鐘為例,通過分頻可以得到75 MHz、100 MHz、120 MHz、150 MHz、200 MHz、240 MHz、300 MHz、400 MHz、600 MHz等頻率。根據(jù)上述方法首先確定最低工作頻率為100 MHz,最高工作頻率為400 MHz??紤]到相鄰工作頻率之間的間隔,在100 MHz~400 MHz之間的頻率中選擇200 MHz和300 MHz作為工作頻率。
2.2 測量GPU相對(duì)性能
    GPU的性能可以通過運(yùn)行Nenamark2、GLBenchmark、Basemark等專業(yè)的GPU性能測試軟件測量得到的幀率反映出來。圖1是測量得到的某GPU的頻率-幀率對(duì)應(yīng)關(guān)系圖。不同的測試軟件下發(fā)給GPU的任務(wù)量不同,因此測得的幀率有所差異,但是幀率與頻率之間都呈現(xiàn)近似分段線性的關(guān)系,且頻率越高幀率的增長速度越緩慢。這是因?yàn)殡S著頻率的增加,GPU內(nèi)部某個(gè)模塊會(huì)最先達(dá)到性能瓶頸,從而影響整體性能的提升。

    設(shè)GPU共有N個(gè)工作頻率,分別為fi,i=1,2,…,N,fi對(duì)應(yīng)的幀率為Pi,相對(duì)性能Ri=Pi/P1。表1是運(yùn)行性能測試軟件得到的3組相對(duì)性能值。從表中可看出,通過不同的性能測試軟件測得的Ri值是基本一致的。綜合Ri值就可以建立該GPU的頻率-性能模型,如圖2所示。

3 GPU動(dòng)態(tài)調(diào)頻算法
    在Android系統(tǒng)的主界面切換、動(dòng)態(tài)壁紙、游戲等3D應(yīng)用場景中,GPU的負(fù)載在幾幀到幾十幀的短時(shí)間內(nèi)具有相關(guān)性,因此可以根據(jù)過去一段時(shí)間內(nèi)的GPU負(fù)載預(yù)測將來的GPU性能需求。為了兼顧精確度和復(fù)雜度的需求,本文采用一種基于歷史值加權(quán)平均的動(dòng)態(tài)調(diào)頻算法,算法可分為4步:
 

 



    (4)調(diào)整GPU頻率和電壓。在調(diào)頻調(diào)壓時(shí)需要遵循以下原則[7]:提高GPU頻率時(shí),應(yīng)先提高電壓再提高頻率;降低GPU頻率時(shí),應(yīng)先降低頻率再降低電壓。為了避免頻率的變化過大,可以只允許調(diào)整到相鄰的工作頻率。
4 實(shí)驗(yàn)結(jié)果
    本文在Android4.1系統(tǒng)上,選擇了界面切換、動(dòng)態(tài)壁紙(bubbles)、捕魚達(dá)人游戲和Nenamark2 4種典型的應(yīng)用場景測試動(dòng)態(tài)調(diào)頻的效果。作為測試對(duì)象的某GPU有4種工作頻率:100 MHz、200 MHz、300 MHz和400 MHz。實(shí)驗(yàn)參數(shù)選擇如下:GPU負(fù)載的統(tǒng)計(jì)周期T=30 ms,式(5)中K=4,預(yù)測系數(shù)h[0]=0.4,h[1]=0.3,h[2]=0.2,h[3]=0.1,性能門限?茁=0.9。在每個(gè)應(yīng)用場景下隨機(jī)抽取10 s的統(tǒng)計(jì)數(shù)據(jù),如表2所示。

    表2中,預(yù)測負(fù)載誤差是指預(yù)測負(fù)載值與實(shí)際負(fù)載值的平均誤差。由于GPU只有4個(gè)離散的工作頻率,因此預(yù)測頻率的錯(cuò)誤率比預(yù)測負(fù)載誤差小很多。預(yù)測頻率的準(zhǔn)確率不僅與預(yù)測負(fù)載誤差的大小有關(guān),還與應(yīng)用對(duì)GPU性能的需求范圍有關(guān)。如果應(yīng)用對(duì)GPU性能的需求變化大,GPU可能的工作頻率多,頻率的調(diào)整比較頻繁,則預(yù)測頻率的準(zhǔn)確率就會(huì)降低。實(shí)驗(yàn)結(jié)果表明,4種典型場景下預(yù)測GPU工作頻率的準(zhǔn)確性都達(dá)到了95%以上。
    GPU負(fù)載統(tǒng)計(jì)周期為30 ms時(shí),在最差情況下,即GPU的初始頻率為100 MHz、需求工作頻率為400 MHz時(shí),動(dòng)態(tài)調(diào)頻算法只需要8個(gè)周期,即240 ms就可以完成調(diào)頻的過程。因此對(duì)于各種3D應(yīng)用,動(dòng)態(tài)調(diào)頻算法都能快速跟蹤GPU負(fù)載的變化,及時(shí)調(diào)整頻率以滿足需求。
    本文介紹了一種基于Android系統(tǒng)的GPU動(dòng)態(tài)調(diào)頻方案,可以有效降低GPU的動(dòng)態(tài)功耗,延長移動(dòng)終端的工作時(shí)間。通過調(diào)整動(dòng)態(tài)調(diào)頻算法的系數(shù),方案適用于多種GPU,且易于移植到不同版本的Android系統(tǒng)上。針對(duì)特定的GPU,還可以通過GPU驅(qū)動(dòng)中提供的其他一些有用信息以及GPU廠商提供的開發(fā)工具對(duì)方案進(jìn)行優(yōu)化。本方案已申請(qǐng)國家發(fā)明專利,并在多款平板電腦產(chǎn)品上應(yīng)用實(shí)施。
參考文獻(xiàn)
[1] Kim K,AGIS A I.Impact of microwave interference on dynamic  operation and power dissipation of CMOS inverters[J].Electromagnetic Compatibility,IEEE Transactions,2007,49(2):329-338.
[2] CAPIN T,PULLI K,AKENINE-MOLLER T.The state of the art in mobile graphics research[J].IEEE Computer Graphics and Applications,2008,28(4):74-84.
[3] 韓超,梁泉.Android系統(tǒng)原理及開發(fā)要點(diǎn)詳解[M].北京:電子工業(yè)出版社,2010.
[4] YOU D,CHUNG K S.Dynamic voltage and frequency scaling framework for low-power embedded GPUs[J].Electronics Letters,2012,48(21):1333-1334.
[5] HARIHARAKRISHNAN K.Novel approaches for GPU  performance analysis[C].ACM SIGGRAPH 2012 Mobile,New York,2012.
[6] 張立,袁小龍,韓銀和.基于線性預(yù)測的移動(dòng)終端LPDVFS策略[J].計(jì)算機(jī)工程,2012,38(12):239-242.
[7] 盧春鵬.動(dòng)態(tài)電壓與頻率調(diào)節(jié)在降低功耗中的作用[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2007(5):12-17.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。