?

GPU內置傳感器的功耗數據矯正方法研究

2016-10-14 02:01李君科李德光黃彥輝戚正偉
電子科技大學學報 2016年2期
關鍵詞:功耗矯正能耗

李君科,郭 兵,沈 艷,李德光,黃彥輝,戚正偉

?

GPU內置傳感器的功耗數據矯正方法研究

李君科1,郭 兵1,沈 艷2,李德光1,黃彥輝1,戚正偉3

(1. 四川大學計算機學院 成都 610065; 2. 成都信息工程大學控制工程學院 成都 610225;3. 上海交通大學軟件學院 上海 閔行區 200030)

功耗數據采集是綠色計算的前提,也是軟件能耗測量的基礎工作。在功耗數據采集中,通常內置功率傳感器采集軟件能耗面臨功率遲滯、程序能耗受啟動時間影響等問題,產生的原因在于內置傳感器的硬件構成及其使用的功耗算法。該文針對內置傳感器的功耗算法問題,提出了一種基于逼近函數的功率數據矯正方法。該方法根據程序運行時間長短,分別采用數據擬合方法和基于誤差方向的逼近函數進行矯正。最后,在代表性的K20系列GPU實驗平臺上進行驗證,實驗結果表明該方法能較好地解決傳感器采集功耗數據存在的問題,且使用該方法和經驗參數法獲得的能耗數據相比誤差小于1%,具有較高的精度。

內置功率傳感器; 數據矯正; 綠色計算; 軟件能耗

在提倡節能減排的當今世界,用電設備尤其是科學計算設備的能耗問題日益突出,越來越受到軟硬件開發商、科研機構和政府的重視[1-2]。

在工業界有一句名言“如果你不能度量它,那么你就不能改進它”,這句話蘊含了度量是后續工作的基礎[2]。能耗度量方式主要有間接和直接兩種方式。間接方式是利用能耗模型、利用硬件性能計數器或硬件事件和能耗之間的關聯模型進行估測軟件運行能耗。文獻[3-4]基于部件訪問率提出了一種功率模型,用來估測部件的功率和整個程序的功率消耗;文獻[5-6]通過估算指令能耗提出了嵌入式軟件能耗計算方法和操作系統內核能耗估算模型;文獻[7]基于神經網絡的訓練結果提出了GPU的功耗模型。間接方式方便了用戶獲得功率或能耗數據,但這些數據通常誤差較大且在硬件環境改變的情況下模型的參數必須重新進行訓練。軟件能耗測量最直接的方式是使用功率測量儀器,但它在能耗測量上存在和設備連接困難的缺點。目前,利用內置傳感器進行功率采集測量已經成為一種趨勢,如NVIDIA的Tesla系列顯卡[1,8]。內置傳感器測量方式帶來了很大的方便,同時也引起了諸如功率遲滯、程序能耗受其啟動時間影響等問題[9-10]。文獻[9]通過引入經驗參數進行解決,但它的計算需要顯卡內部電路器件組成,要求較高。為此,本文提出了一種無需了解顯卡內部電路器件組成的基于逼近函數的數據采集矯正方法。通過實驗驗證,該方法能夠很好地解決此類問題。

1 問題描述

使用內置功率傳感器采集功耗數據時會產生功率遲滯、程序能耗受其啟動時間影響等問題[9-10]。這些問題影響了程序能耗測量的準確性以及破環了軟件功耗不受啟動時間影響的特性。

1) 傳感器采集功率遲滯問題。功率遲滯問題表現為內置功率傳感器在程序運行階段和結束階段采集的功率數據未能實時地反映設備實際功率使用情況,采集的功率往往遲滯于GPU內核程序驅動硬件活動狀況。它們所表現出的共同特征是傳感器采集的數據逐漸接近真實功率。遲滯問題會造成在程序運行時間內對功率數據的積分所得到軟件能耗數據不準確。由于無法明確遲滯時間,且遲滯時間難以在采集到的功率曲線中體現出來,因此通過延長采樣時間的方法來獲得程序真實能耗的方法是不可行的。用量化的方式來描述這種現象即為:

2) 程序能耗受啟動時間影響。上述遲滯現象所造成的另一個問題是兩個相同程序在相差一段時間內運行,后者所消耗的能耗顯著增加,即程序啟動時間間隔影響其后程序的能耗。從軟件能耗產生本質原因來看,兩個相同的程序在相同的硬件上運行的能耗是相同的或由于程序運行的局部性原理而造成的后者能耗的降低;并且軟件能耗與軟件的啟動時間無關,但由于遲滯現象的出現使得相同程序所消耗的能耗和啟動的時間相關。這種現象明顯與軟件能耗產生的本質[2,4]不符。用量化的方式來描述這種現象即為:

式(1)和式(2)中的表示軟件能耗;三元組下標分別表示程序開始時間、程序結束時間、運行的軟件;D為兩個程序啟動時間間隔;上標Sensor和Actual分別表示使用功率傳感器測得的能耗和設備實際消耗能耗情況。

2 基于逼近函數的能耗矯正方法

由于內置功率傳感器內部的硬件組成細節、硬件驅動實現以及其使用的功率計算算法廠商未被提供,所以本文通過采集傳感器的大量數據,以及觀測相關現象進而分析上述問題產生的原因主要在于:

1) 觀測傳感器所采集的大量數據發現它們具有連續性,推測傳感器可能使用了與溫度相關的算法來計算功率。

2) 從傳感器在程序運行階段和結束階段采集的數據所表現出的共有特征,推測功率傳感器可能使用了一類電容或電感效應的電路。

上述原因使得傳感器采集到的數據在程序運行階段和結束階段不能真實反映軟件在運行時設備的功率使用情況。軟件能耗和硬件能耗之間的關系[2,5]、問題產生的原因以及傳感器采集的數據逐漸接近真實功率的現象[9-10],啟發本文根據軟件運行時長進行數據矯正。內置傳感器采集運行時間短的程序所得到的功耗數據是趨向性數據,對其進行擬合能夠對趨向性數據進行矯正。對于運行時間長的程序,由于傳感器采集的數據是逐漸逼近的真實數據,本文采用基于誤差方向的逼近函數進行矯正。

對傳感器采集的大量數據進行觀測發現如果程序運行時間或并行程序中的分階段運行的線程時間在小于t內,那么在這個時間段內傳感器測得的數據是趨向性數據,這段程序所消耗的真實功率可以利用位于t后的功率數據來表示。t是內置功率傳感器數據趨于真實數據時的時間,它的取值為內置功率傳感器從產生功耗數據開始得出的功耗數據和文獻[7]中直接功率測量方法得到的數據相差3%時所經歷的時間。不同型號的GPU有不同的t值。為了減少誤差可以通過采集一定數量軟件的功耗數據獲得。由于程序運行時間在t內,測得的數據是趨向性數據。利用函數擬合方法能夠使采集到的趨向性數據逼近軟件運行時的實際功率數據,因此采用函數擬合方法對軟件運行時的功率進行逼近。首先利用函數擬合方法將采集到的數據擬合成函數

下的真實功率數據,為了提高準確度,本文取時刻t-△t、時刻t以及時刻t+△t下功率數據的平均作為逼近表示時刻t下的真實功率數據。因此運行時間在t內程序的功率數據使用如式(3)進行矯正:

式中

real()、meas()、D和Avg()函數與式(3)表示的含義一樣;表示在當前誤差方向的情況下傳感器所采集到的功率數據,它的取值為未矯正過的數據;在式(3)與式(4)中t的取值為程序開始時間(start)和結束時間(end)之間的值。

在程序運行結束后,內置傳感器會產生尾滯能耗現象[9-11]。它由兩部分組成,一部分是傳感器采集每個程序都有的常數能耗部分,常數部分是測量所有程序都表現出來的不隨所測程序改變而改變的恒定能耗部分;另一部分能耗是根據軟件運行時間不同的可變部分,它是程序運行結束后設備保持活動空閑時的功率。因此對于尾滯能耗的可變部分不能作為軟件運行時的能耗。為了使尾滯能耗的可變部分能更好地表現出程序結束時設備的功率情況,根據能耗產生的本質[2,5],只需將尾滯能耗的可變部分矯正為空閑狀態時的功率即可;常數能耗部分為程序無關的且是恒定的,所以不需要矯正。

綜上,經過上述方法得到程序運行時的實際功率數據,利用式(5)將上述矯正后的數據在程序運行的時間段內進行積分就可以得到程序的真實能耗數據:

3 實驗結果及分析

3.1 實驗環境及實驗程序描述

在帶有內置傳感器的平臺中,K20系列GPU運算速度快、應用范圍廣且所帶的功率傳感器成為測量功耗的一種典型配置。為此本文選取了具有代表性的K20系列(K20c、K20m和K20X)GPU為實驗平臺,驗證所提出方法的有效性。K20c和K20m有個streaming multiprocessors(SMX,2496個processing elements)和5 GB顯存。K20x擁有6 GB顯存和14個streaming multiprocessors(SMX,2688個processing elements)。它們的區別在于散熱方式,K20c使用主動散熱方式,K20m使用被動散熱方式。實驗平臺所使用的CUDA開發環境是VS2010,編譯環境是NVCC5.5。本文使用程序通過NVML接口查詢GPU的功率數據,并且查詢出的數據都帶有時間標記。

實驗程序使用兩種不同算法實現模擬重力感應引起的多個恒星運動程序。第一種算法實現的程序執行精確的雙向力計算,這種算法在規模為復雜度為(2),簡稱為NBody。第二種算法使用Barnes-Hut算法執行近似計算作用力的實現程序,算法的思想是把個恒星周圍的體積層次劃分成有次序小正方體直到最里面的每個小正方體只有一個星體。結果被記錄在一個非平衡八叉樹的層次結構中。這種層次結構使算法的復雜性降為(log)[12],將這種方法簡稱為BHut。

3.2 單內核程序實驗

圖1為使用NBody方法在=700 000時的功率曲線和使用本文提出的方法得到的功率數據。圖中曲線部分表示傳感器采樣得到的功率數據,虛線部分表示使用本文矯正方法中的式(4)得到GPU功率曲線。圖中1、2、3分別表示程序開始時間、程序結束時間、常數能耗消耗開始時間。

通過觀察圖中矯正后的功率數據可以看出,矯正后的數據能夠有效地逼近真實功耗數據,并且當程序運行結束時立即到達尾滯能耗空閑狀態功耗數值,矯正后的數據滿足軟件能耗產生的實質并能夠反映GPU運行時的真實功率。當程序在1和2之間執行,矯正后的數據能夠和采樣得到的穩定數據重合,間接驗證了本文方法的正確性。對于K20c系列GPU,活動空閑功率為54.2 W左右,因此在使用本文方法后將程序運行結束時的能耗到常數能耗之間的功率數據置為54.2 W,即為軟件結束后的真實功率。軟件實際能耗利用式(5)在1和2時間段積分即可得到。

圖1 N=700 000采集功率曲線圖和矯正后的功率曲線圖

圖2 啟動間隔時間為1.1 s,N=350 000的兩個相同程序的功率曲線和矯正后的功率曲線圖

由圖1可以看出使用本文提出的方法可以消除由傳感器自身因素所帶來的遲滯問題;而它所帶來的一個問題是程序能耗受其啟動時間影響。圖2為使用NBody方法在=350 000,啟動間隔時間為1.1 s的兩個相同程序的功率曲線和使用式(3)矯正后的功率數據。圖中1、3分別表示第一個和第二個程序開始時間,2、4分別為第一個和第二個程序結束時間,5是常數能耗開始時間。從圖中可以看到:1) 未矯正前兩個相同的程序能耗明顯不同;2) 使用本文方法矯正后的曲線在兩個程序運行期間是相同的,且都在程序運行結束時處于活動空閑狀態。相同的實驗在=350 000,間隔0.4 s的情況下得到的矯正曲線和間隔1.1 s得到的矯正曲線情況相同。由圖中矯正后的結果可以看出使用本文方法能夠很好地解決程序能耗受啟動時間影響的問題且得到的功率數據與何時運行程序無關,這個特性使得功率傳感器在測量程序能耗時無需等待傳感器數據達到空閑功率后啟動下一個程序的功率測量。

圖3 N=700 000在K20m、K20x上的采集功率曲線圖 和矯正后的功率曲線圖

為了確保所提出的方法具有通用性,本文使用K20m、K20x和不同驅動版本下的實驗情況。圖3a、圖3b分別為=700 000時,K20m、K20x傳感器采集功率曲線圖和使用式(4)矯正后的功率曲線圖。由圖中的曲線可以看出K20m和K20c對于同一程序而言具有幾乎相同的功率曲線,所不同的是K20m的功率比K20c的功率要高出10 W左右。圖3b中的曲線顯示了K20x中的功率傳感器采集的數據和K20c、K20m采集的數據曲線明顯不同,K20x中的傳感器盡最大努力得到GPU的真實功率,這種現象也從側面驗證了本文所提出的方法的正確性。在不同驅動版本下的功率數據曲線與矯正后的曲線和圖3表現現象類似,在此不再贅述。由圖3矯正后的數據可以看出使用本文提出的方法可以較好地解決由傳感器測量功耗時所產生的問題。由于遲滯問題在K20m和K20x上被解決,因此程序能耗受啟動時間影響的問題也就不存在了。通過實驗結果也驗證了利用本文所提出的方法解決式(2)所描述的問題,在此由于篇幅有限,就不再展示在K20m和K20x平臺上程序能耗受其啟動時間影響的實驗結果。

3.3 多內核程序實驗

圖4是使用BHut方法在規模=22 000 000所得到的功率曲線和矯正后的功率曲線圖。由圖中可以看出BHut方法最高功率(128.2 W)低于NBody方法最高功率(158.4 W),并且BHut方法在程序結束前功率出現下降現象,這點不同于NBody方法。原因在于使用BHut方法使得GPU硬件利用情況沒有NBody方法高,并且在程序結束前硬件出現負載非均衡的情況,使得GPU中的一些SM不再參與作用力計算。

通過本文提出的方法得到的功率曲線和NBody曲線有別,主要表現在1和2、2和3、4和5階段。1和2階段與2和3階段主要是BHut方法建立的數據結構和對數據進行處理等工作,處理這些工作的內核程序非均衡地利用GPU中SM。這些工作使得功率數據不同于3和4階段的作用力計算。由于1和2階段與2和3階段運行時間小于t,因此使用式(3)進行矯正。在3和4階段內核函數運行時間大于t,因此使用式(4)進行矯正。在4和5階段一些SM不再參與計算,因此GPU的功率出現下降,利用逼近函數較好地得到了真實功率數據。通過分析程序和觀察圖中的曲線,可以看出本文提出的方法能夠很好地跟蹤GPU硬件功率的變化情況而不僅僅給出一個恒定的值。

圖4 N=22 000 000采集功率曲線圖和矯正后的功率曲線圖

4 結果比較

文獻[9]也提出了一種解決這個問題的方法,表1展示了在利用傳感器計算程序能耗時兩種方法在上述實驗環境下的結果對比。

表1 結果對比

可以看出:1) 本文的方法與文獻[9]的方法得出的結果具有很大的相似性,最大誤差不超過1%,表明本文方法能夠很好地解決此類問題。2) 對比文獻[9]中使用的經驗參數方法,本文方法使用逼近函數的方法也能得到較好的效果,說明了本文方法具有很好的通用性和可靠性。

5 結 束 語

本文提出了一種矯正內置功率傳感器數據的方法。使用該方法可以較好地解決傳感器測量能耗所存在的功率遲滯、程序能耗受其啟動時間影響等問題,同時具有較好的準確性與通用性。本文選取典型的K20系列GPU為實驗平臺進行驗證,通過實驗表明該方法適用于解決傳感器測量能耗存在的問題。該方法較準確地獲得軟件在設備中運行的能耗,為以后的程序能耗優化奠定了基礎。下一步研究內容包括程序能效比優化和能耗評估,以進一步提高能量的利用率,為綠色計算的深入應用打下堅實的基礎。

[1] Top 500 Supercomputer Site. The green lists[EB/OL]. [2014-11]. http://www.green500.org/greenlists.

[2] 郭兵, 沈艷, 邵子立. 綠色計算的重定義與若干探討[J]. 計算機學報, 2009, 32(12): 2311-2319.

GUO Bing, SHEN Yan, SHAO Zi-li. The redefinition and some discussion of green computing[J]. Chinese Journal of Computers, 2009, 32(12): 2311-2319.

[3] HONG S, KIM H. An integrated GPU power and performance model[C]//ACM SIGARCH Computer Architecture News. [S.l.]: ACM, 2010, 38(3): 280-289.

[4] ISCI C, MARTONOSI M. Runtime power monitoring in high-end processors: Methodology and empirical data[C]//Proceedings of the 36th annual IEEE/ACM International Symposium on Microarchitecture. [S.l.]: IEEE Computer Society, 2003: 93.

[5] 劉嘯濱, 郭兵, 沈艷, 等. 基于ARM處理器的嵌入式軟件能耗統計模型[J]. 電子科技大學學報, 2012, 41(5): 770-774.

LIU Xiao-bin, GUO Bing, SHEN Yan, et al. ARM-based embedded software statistical energy model[J]. Journal of University of Electronic Science And Technology of China. 2012, 41(5): 770-774.

[6] 趙霞, 郭耀, 雷志勇, 等. 基于模擬器的嵌入式操作系統能耗估算與分析[J]. 電子學報, 2008, 36(2): 209-215.

ZHAO Xia, GUO Yao, LEI Zhi-yong, et al. Estimation and analysis of embedded operating system energy consumption [J]. ACTA Electronica Sinica, 2008, 36(2): 209-215.

[7] SONG S, SU C, ROUNTREE B, et al. A simplified and accurate model of power-performance efficiency on emergent gpu architectures[C]// 2013 IEEE 27th International Symposium on Parallel & Distributed Processing (IPDPS). [S.l.]: IEEE, 2013: 673-686.

[8] NVIDIA Corporation. “NVIDIA’s next generation CUDA compute architecture: Kelper GK110/210” White paper V1.1[EB/OL]. (2012-03-17). http://www.nvidia.com.

[9] BURTSCHER M, ZECENA I, ZONG Z. Measuring GPU power with the K20 built-in sensor[C]//Proceedings of Workshop on General Purpose Processing Using GPUs. [S.l.]: ACM, 2014: 28.

[10]PATHAK A, HU Y C, ZHANG M, et al. Fine-grained power modeling for smartphones using system call tracing[C]// Proceedings of the sixth conference on Computer systems. [S.l.]: ACM, 2011: 153-168.

[11]PATHAK A, HU Y C, ZHANG M. Where is the energy spent inside my app?: Fine grained energy accounting on smartphones with eprof[C]//Proceedings of the 7th ACM European Conference on Computer Systems. [S.l.]: ACM, 2012: 29-42.

[12]BARNES J, HUT P. A Hierarchical(log) force- calculation algorithm[J]. Nature, 1986, 324(4): 446-449.

編 輯 蔣 曉

Research on Power Data Correction Approach of GPU Build-in Sensor

LI Jun-ke1, GUO Bing1, SHEN Yan2, LI De-guang1, HUANG Yan-hui1, and QI Zheng-wei3

(1. College of Computer Science, SiChuan University Chengdu 610065; 2. School of Control Engineering, Chengdu University of Information Technology Chengdu 610225;3.School of Software, Shanghai Jiaotong University Minhang Shanghai 200030)

Power data acquisition is the premise of the green computing and the basic work of the software energy consumption measurement. In power data acquisition, using the built-in power sensor to get the software energy usually faces the problem of power hysteresis and software energy affected by its start time because of the built-in sensor constitution as well as its power computation algorithm. Aiming at the problem of the built-in power sensor algorithm, this paper proposes a power data correction approach based on approximation function. According to the length of time the program runs, this approach uses the data fitting method and the approximation function method based on the error direction to correct power sensor data respectively. Finally, this approach is verified on the typical K20 GPU series experimental platform. Experimental results show that this approach can better solve the problems with high accuracy and the data obtained by our approach compared to that of the empirical parameter approach is less than 1% error.

built-in power sensor; data correction; green computing; software energy

TP338.6

A

10.3969/j.issn.1001-0548.2016.03.021

2014 - 10 - 21;

2015 - 05 - 15

猜你喜歡
功耗矯正能耗
基于任務映射的暗硅芯片功耗預算方法
120t轉爐降低工序能耗生產實踐
能耗雙控下,漲價潮再度來襲!
探討如何設計零能耗住宅
日本先進的“零能耗住宅”
“體態矯正”到底是什么?
揭開GPU功耗的面紗
矯正牙齒,不只是為了美
數字電路功耗的分析及優化
矯正牙齒,現在開始也不遲
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合