• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Android系統(tǒng)的GPU動態(tài)調(diào)頻方案

      2013-12-07 06:18:36
      電子技術(shù)應(yīng)用 2013年9期
      關(guān)鍵詞:工作頻率調(diào)頻功耗

      陳 屴

      (福州瑞芯微電子有限公司,福建 福州 350003)

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

      動態(tài)電壓頻率調(diào)整DVFS(Dynamic Voltage and Frequency Scaling)是降低動態(tài)功耗的常用方法,其核心思想是根據(jù)當(dāng)前所運(yùn)行的任務(wù)對計(jì)算能力的不同需求來動態(tài)調(diào)節(jié)處理器的工作頻率和電壓,從而達(dá)到節(jié)能的目的。DVFS的理論依據(jù)是如下動態(tài)功耗的計(jì)算公式[1]:

      其中,Pdynamic代表動態(tài)功耗,C為負(fù)載電容,V為供電電壓,f為工作頻率。從式(1)中可以看出,在負(fù)載電容一定的情況下,動態(tài)功耗與供電電壓的平方成正比,與工作頻率成正比。同時(shí),電壓與頻率也存在一定的對應(yīng)關(guān)系,頻率越高,所需要的電壓也越高。

      嵌入式 GPU(下文均簡稱GPU)的發(fā)展時(shí)間短,技術(shù)更新快,在設(shè)計(jì)目標(biāo)、軟硬件架構(gòu)、圖形標(biāo)準(zhǔn)、運(yùn)行系統(tǒng)等方面與PC顯卡都有所差異[2],有關(guān)降低功耗的研究尚不多見。針對這種現(xiàn)狀,本文基于目前最流行的嵌入式操作系統(tǒng)Android,在GPU的內(nèi)核驅(qū)動層提出了一種GPU動態(tài)調(diào)頻方案,使GPU可以根據(jù)性能需求自適應(yīng)地調(diào)節(jié)運(yùn)行頻率和電壓,從而降低GPU的動態(tài)功耗。

      1 Android應(yīng)用對GPU的性能需求

      Android系統(tǒng)主界面的混合與疊加采用GPU硬件加速[3],除此之外,圖庫、動態(tài)壁紙、3D桌面、3D游戲等多種應(yīng)用也需要GPU的支持。各種應(yīng)用對于GPU性能的需求大不相同,例如,動態(tài)壁紙的幀率一般被限定在15~20 f/s左右,對GPU的性能需求較低;不同的3D游戲?qū)τ贕PU性能的需求也大不相同,即使在同一個(gè)游戲中,對GPU性能的需求也是隨著場景的變化而不斷變化的。GPU性能測試軟件需要反映GPU的最高性能,對GPU處理能力的要求遠(yuǎn)超其他應(yīng)用程序。根據(jù)以上分析,如果GPU始終以固定的頻率運(yùn)行,則會出現(xiàn)兩種情況:對于低復(fù)雜度的任務(wù),若GPU運(yùn)行在高頻,則性能過剩,造成功耗的浪費(fèi)[4];對于高復(fù)雜度的任務(wù),若GPU沒有運(yùn)行在足夠高的頻率,則無法滿足性能需求。因此最理想的情況是GPU能夠根據(jù)需求快速地調(diào)整頻率,以提供期望的性能。

      2 GPU頻率-性能模型

      2.1 選擇GPU工作頻率

      Android系統(tǒng)的時(shí)鐘模塊可以為GPU提供多種頻率,GPU動態(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相對性能

      GPU的性能可以通過運(yùn)行Nenamark2、GLBenchmark、Basemark等專業(yè)的GPU性能測試軟件測量得到的幀率反映出來。圖1是測量得到的某GPU的頻率-幀率對應(yīng)關(guān)系圖。不同的測試軟件下發(fā)給GPU的任務(wù)量不同,因此測得的幀率有所差異,但是幀率與頻率之間都呈現(xiàn)近似分段線性的關(guān)系,且頻率越高幀率的增長速度越緩慢。這是因?yàn)殡S著頻率的增加,GPU內(nèi)部某個(gè)模塊會最先達(dá)到性能瓶頸,從而影響整體性能的提升。

      圖1 GPU頻率-幀率圖

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

      表1 GPU在各頻率下的相對性能

      圖2 GPU頻率-性能模型

      3 GPU動態(tài)調(diào)頻算法

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

      (1)每隔周期T計(jì)算GPU的負(fù)載。由于只有部分GPU驅(qū)動提供了統(tǒng)計(jì)負(fù)載的專用接口[5],所以本文介紹一種近似估計(jì)GPU負(fù)載的通用方法。GPU都具有工作狀態(tài)與空閑狀態(tài)這兩種基本的電源狀態(tài),可能還具有其他一些臨時(shí)狀態(tài)。在GPU驅(qū)動中根據(jù)電源狀態(tài)的轉(zhuǎn)換統(tǒng)計(jì)出一個(gè)周期內(nèi)GPU的工作時(shí)間Tworking和空閑時(shí)間Tidle,估算出GPU負(fù)載率L:

      如果忽略掉GPU處于臨時(shí)狀態(tài)所的一些時(shí)間,則可以推導(dǎo)出下式:

      可以認(rèn)為GPU的相對負(fù)載W等于GPU負(fù)載率L與GPU處于當(dāng)前頻率點(diǎn)fcur時(shí)的相對性能Rcur的乘積,這樣可以得出下式:

      假設(shè) LCD的顯示幀率為 60 f/s,則T值可在 16 ms~50 ms范圍取值,即LCD顯示1~3幀的時(shí)間。這樣計(jì)算出的GPU負(fù)載值包含了1~3幀的統(tǒng)計(jì)信息,且算法的跟蹤速度較快。

      (2)預(yù)測下一周期GPU負(fù)載。預(yù)測GPU負(fù)載W[n+1]由歷史值加權(quán)計(jì)算得出[6]:

      其中,W[n-k],k=0,1,…,K-1為前 K 個(gè)周期的 GPU 負(fù)載,K為大于0的常數(shù)。h[k]為預(yù)測系數(shù),離當(dāng)前時(shí)刻越近的GPU負(fù)載值的權(quán)重越大,即滿足0≤h[K-1]<h[K-2]…<h[0]<1,且通過對GPU歷史負(fù)載值的加權(quán)平均,可以平滑GPU負(fù)載在某些時(shí)段的劇烈波動,避免頻繁、無意義的調(diào)頻。基于算法復(fù)雜度的考慮,采用線性預(yù)測算法,即h[k]為常數(shù),且K的取值不應(yīng)太大。h[k]的具體取值可根據(jù)GPU的特性設(shè)定。

      表2 動態(tài)調(diào)頻預(yù)測誤差

      (3)將預(yù)測GPU負(fù)載代入性能-頻率模型,預(yù)測GPU工作頻率。 設(shè)定一個(gè)性能門限值 β,0<β<1,且滿足 Ri<Ri+1β,i=1,2, …,N-1。 設(shè) GPU 當(dāng)前工作在頻率 fcur上,將 W[n+1]與 Riβ,i=1,2,…,N 依次做比較。 如果 W[n+1]<Riβ,則終止比較,根據(jù) i值做如下處理:

      ①若fi<fcur,則說明 GPU工作在當(dāng)前頻率上性能過剩,降低頻率到fi就可以滿足需求;

      ②若 fi=fcur,則說明 GPU工作在當(dāng)前頻率最合適,繼續(xù)保持在當(dāng)前頻率;

      ③若 fi>fcur且 cur≠N,則說明 GPU在當(dāng)前頻率上接近滿負(fù)荷工作,下一時(shí)段需要工作在更高的頻率fi上。

      (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)上,選擇了界面切換、動態(tài)壁紙(bubbles)、捕魚達(dá)人游戲和 Nenamark2 4種典型的應(yīng)用場景測試動態(tài)調(diào)頻的效果。作為測試對象的某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ù)測頻率的錯誤率比預(yù)測負(fù)載誤差小很多。預(yù)測頻率的準(zhǔn)確率不僅與預(yù)測負(fù)載誤差的大小有關(guān),還與應(yīng)用對GPU性能的需求范圍有關(guān)。如果應(yīng)用對GPU性能的需求變化大,GPU可能的工作頻率多,頻率的調(diào)整比較頻繁,則預(yù)測頻率的準(zhǔn)確率就會降低。實(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í),動態(tài)調(diào)頻算法只需要8個(gè)周期,即240 ms就可以完成調(diào)頻的過程。因此對于各種3D應(yīng)用,動態(tài)調(diào)頻算法都能快速跟蹤GPU負(fù)載的變化,及時(shí)調(diào)整頻率以滿足需求。

      本文介紹了一種基于Android系統(tǒng)的GPU動態(tài)調(diào)頻方案,可以有效降低GPU的動態(tài)功耗,延長移動終端的工作時(shí)間。通過調(diào)整動態(tài)調(diào)頻算法的系數(shù),方案適用于多種GPU,且易于移植到不同版本的Android系統(tǒng)上。針對特定的GPU,還可以通過GPU驅(qū)動中提供的其他一些有用信息以及GPU廠商提供的開發(fā)工具對方案進(jìn)行優(yōu)化。本方案已申請國家發(fā)明專利,并在多款平板電腦產(chǎn)品上應(yīng)用實(shí)施。

      [1]Kim K,AGISA 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ù)測的移動終端LPDVFS策略[J].計(jì)算機(jī)工程,2012,38(12):239-242.

      [7]盧春鵬.動態(tài)電壓與頻率調(diào)節(jié)在降低功耗中的作用[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2007(5):12-17.

      猜你喜歡
      工作頻率調(diào)頻功耗
      考慮頻率二次跌落抑制的風(fēng)火聯(lián)合一次調(diào)頻控制
      能源工程(2021年5期)2021-11-20 05:50:42
      揭開GPU功耗的面紗
      CPU故障的處理技巧
      中文信息(2016年11期)2017-02-11 16:48:48
      數(shù)字電路功耗的分析及優(yōu)化
      電子制作(2016年19期)2016-08-24 07:49:54
      調(diào)頻發(fā)射機(jī)技術(shù)改造
      調(diào)頻激勵器干擾的排除方法
      “功耗”說了算 MCU Cortex-M系列占優(yōu)
      電子世界(2015年22期)2015-12-29 02:49:44
      高頻非對稱EMCCD增益驅(qū)動電路設(shè)計(jì)
      IGBT模型優(yōu)化及其在Buck變換器中的功耗分析
      一種工作頻率可變的雙向DC-DC變換器
      高陵县| 保定市| 荃湾区| 崇义县| 镇沅| 秦安县| 安泽县| 抚宁县| 福州市| 从江县| 澳门| 河东区| 夏河县| 兴隆县| 鄱阳县| 博兴县| 安阳县| 天津市| 贵溪市| 论坛| 清流县| 三亚市| 云梦县| 固镇县| 宣威市| 南城县| 义乌市| 岳阳县| 太白县| 双流县| 临夏市| 盐山县| 南召县| 奉化市| 宁乡县| 连城县| 台中县| 三台县| 泗阳县| 武邑县| 六枝特区|