本公開實(shí)施例涉及硬件安全,尤其涉及基于rapl的粗粒度功耗負(fù)載特征分析方法。
背景技術(shù):
1、現(xiàn)代社會(huì)計(jì)算機(jī)科學(xué)高速發(fā)展,科學(xué)研究及日常生活對(duì)cpu的算力要求也越來(lái)越高,巨大的算力需要消耗大量的電力能源,為了節(jié)約能源,最大程度上利用好計(jì)算機(jī)的算力資源,對(duì)計(jì)算機(jī)的功耗監(jiān)測(cè)必不可少。一些主流的硬件廠商都發(fā)展了自己的功耗管理技術(shù)來(lái)實(shí)現(xiàn)對(duì)計(jì)算機(jī)的功耗監(jiān)測(cè),例如nvidia發(fā)展的gpuboost技術(shù),amd的cpu提供的類似rapl接口,稱為apm(applicationpowermanagement)和p-state(performancestate)控制。但intel的rapl技術(shù)無(wú)疑是最為成熟完善的功耗管理技術(shù)之一。
2、intel在sandybridge架構(gòu)中首次引入了運(yùn)行平均功率限制(runningaveragepowerlimit)技術(shù),該技術(shù)應(yīng)用軟件功率模型,其原理是在主芯片封裝上的輔助控制器上運(yùn)行使用各種硬件性能計(jì)數(shù)器、溫度功率泄漏模型和i/o模型來(lái)估計(jì)能量消耗。rapl技術(shù)能以高粒度高采樣率來(lái)測(cè)量細(xì)微的功耗變化,這種高精度的功耗測(cè)量正好可以被用來(lái)實(shí)現(xiàn)高精度的cpu功耗監(jiān)測(cè),用戶可以通過(guò)微小的功耗變化情況,分析出計(jì)算機(jī)cpu中正在運(yùn)行的負(fù)載任務(wù)的工作狀態(tài),實(shí)現(xiàn)對(duì)cpu功耗的一種粗粒度的監(jiān)測(cè)。
3、現(xiàn)有方法通常使用復(fù)雜的外接測(cè)量?jī)x器或者一些低精度的接口來(lái)對(duì)cpu的功耗進(jìn)行監(jiān)測(cè),不僅操作復(fù)雜繁瑣,而且測(cè)量精度不高,無(wú)法實(shí)現(xiàn)對(duì)cpu功耗實(shí)時(shí)準(zhǔn)確的監(jiān)測(cè)。
技術(shù)實(shí)現(xiàn)思路
1、為了避免現(xiàn)有技術(shù)的不足之處,本發(fā)明提供一種基于rapl的粗粒度功耗負(fù)載特征分析方法,用以解決現(xiàn)有技術(shù)中存在不僅操作復(fù)雜繁瑣,而且測(cè)量精度不高,無(wú)法實(shí)現(xiàn)對(duì)cpu功耗實(shí)時(shí)準(zhǔn)確的監(jiān)測(cè)的問(wèn)題。
2、根據(jù)本公開實(shí)施例,提供一種基于rapl的粗粒度功耗負(fù)載特征分析方法,該方法包括:
3、建立基于ubuntu系統(tǒng)的實(shí)驗(yàn)環(huán)境;
4、基于所述實(shí)驗(yàn)環(huán)境,讀取多個(gè)負(fù)載任務(wù)的cpu功耗,以得到各個(gè)所述負(fù)載任務(wù)的功耗數(shù)據(jù);
5、對(duì)各個(gè)所述負(fù)載任務(wù)的所述功耗數(shù)據(jù)進(jìn)行分析處理,以得到各個(gè)所述負(fù)載任務(wù)的功耗特征;
6、對(duì)待分析功耗數(shù)據(jù)進(jìn)行處理,以得到待分析功耗特征;
7、利用各個(gè)所述負(fù)載任務(wù)的所述功耗特征對(duì)所述待分析功耗特征進(jìn)行分析,以判斷用戶的工作狀態(tài)。
8、進(jìn)一步的,建立基于ubuntu系統(tǒng)的實(shí)驗(yàn)環(huán)境的步驟中,包括:
9、在啟動(dòng)盤內(nèi)安裝ubuntu系統(tǒng);
10、利用啟動(dòng)盤將所述ubuntu系統(tǒng)安裝在計(jì)算機(jī)中,以建立所述基于ubuntu系統(tǒng)的實(shí)驗(yàn)環(huán)境。
11、進(jìn)一步的,基于所述實(shí)驗(yàn)環(huán)境,讀取多個(gè)負(fù)載任務(wù)的cpu功耗,以得到各個(gè)所述負(fù)載任務(wù)的功耗數(shù)據(jù)的步驟中,包括:
12、利用負(fù)載生成工具生成多種所述任務(wù)負(fù)載;
13、針對(duì)一種所述負(fù)載任務(wù),運(yùn)行所述負(fù)載任務(wù),并進(jìn)行不同的操作,利用rapl計(jì)算所述負(fù)載任務(wù)產(chǎn)生的cpu功耗,以得到所述功耗數(shù)據(jù);
14、遍歷所有所述負(fù)載任務(wù),分別得到所有所述任務(wù)負(fù)載的所述功耗數(shù)據(jù);
15、利用所述rapl讀取所有所述任務(wù)負(fù)載的所述功耗數(shù)據(jù)。
16、進(jìn)一步的,利用rapl計(jì)算所述負(fù)載任務(wù)產(chǎn)生的cpu功耗,以得到所述功耗數(shù)據(jù)的步驟中,包括:
17、運(yùn)行的所述任務(wù)負(fù)載使pkg域的能量計(jì)數(shù)器msr_pkg_energy_status中的能量計(jì)數(shù)數(shù)值發(fā)生變化,以得到連續(xù)的兩次數(shù)值,即第一能量值和第二能量值;
18、根據(jù)周期為t的寄存器周期性讀取所述第一能量值和所述第二能量值;
19、根據(jù)所述第一能量值和所述第二能量值之差,得到t時(shí)間內(nèi)的能量消耗計(jì)數(shù)e;
20、從msr_rapl_power_unit中得到能量計(jì)數(shù)的單位u,則得到t時(shí)間內(nèi)的平均功率eu/t,即所述功耗數(shù)據(jù)。
21、進(jìn)一步的,所述負(fù)載任務(wù)包括:輕度負(fù)載、中度負(fù)載、高度負(fù)載和重度負(fù)載。
22、進(jìn)一步的,對(duì)各個(gè)所述負(fù)載任務(wù)的所述功耗數(shù)據(jù)進(jìn)行分析處理,以得到各個(gè)所述負(fù)載任務(wù)的功耗特征的步驟中,包括:
23、利用各個(gè)所述負(fù)載任務(wù)的所述功耗數(shù)據(jù)生成對(duì)應(yīng)的功耗曲線;
24、對(duì)各個(gè)所述負(fù)載任務(wù)的所述功耗曲線進(jìn)行分析,以得到各個(gè)所述負(fù)載任務(wù)的所述功耗特征。
25、進(jìn)一步的,對(duì)待分析功耗數(shù)據(jù)進(jìn)行處理,以得到待分析功耗特征的步驟中,包括:
26、利用所述待分析功耗數(shù)據(jù)生成待分析功耗曲線;
27、對(duì)所述功待分析功耗曲線進(jìn)行分析,以得到所述待分析功耗特征。
28、進(jìn)一步的,利用各個(gè)所述負(fù)載任務(wù)的所述功耗特征對(duì)所述待分析功耗特征進(jìn)行分析,以判斷用戶的工作狀態(tài)的步驟中,包括:
29、基于各個(gè)所述負(fù)載任務(wù)的所述功耗特征和絕對(duì)功耗值,對(duì)所述待分析功耗特征進(jìn)行對(duì)比,以確定所述待分析功耗數(shù)據(jù)的類型;
30、根據(jù)所述待分析功耗數(shù)據(jù)的類型判斷用戶的工作狀態(tài)。
31、進(jìn)一步的,所述輕度負(fù)載的絕對(duì)功耗值的范圍為(0,5w],所述中度負(fù)載的絕對(duì)功耗值的范圍為(5,20w],所述高度負(fù)載的絕對(duì)功耗值的范圍為(20,35w],所述重度負(fù)載的絕對(duì)功耗值大于35w。
32、本公開的實(shí)施例提供的技術(shù)方案可以包括以下有益效果:
33、本公開的實(shí)施例中,通過(guò)上述基于rapl的粗粒度功耗負(fù)載特征分析方法,一方面,在ubuntu系統(tǒng)中使用rapl技術(shù)監(jiān)測(cè)pkg域的功耗變化情況,在監(jiān)測(cè)過(guò)程中運(yùn)行多種不同類型的任務(wù)負(fù)載,記錄每個(gè)任務(wù)負(fù)載運(yùn)行過(guò)程中的功耗變化,根據(jù)功率變化趨勢(shì)以及變化速率等信息來(lái)分析負(fù)載的運(yùn)行狀態(tài),得到負(fù)載的功耗泄露特征。最后使用不同任務(wù)負(fù)載的功耗泄露特征反向推測(cè)運(yùn)行負(fù)載的信息。另一方面,使用的rapl技術(shù)具有的高采樣率高精度功耗測(cè)量功能相比一般功耗監(jiān)測(cè)接口具有顯著優(yōu)勢(shì)。
1.一種基于rapl的粗粒度功耗負(fù)載特征分析方法,其特征在于,該方法包括:
2.根據(jù)權(quán)利要求1所述基于rapl的粗粒度功耗負(fù)載特征分析方法,其特征在于,建立基于ubuntu系統(tǒng)的實(shí)驗(yàn)環(huán)境的步驟中,包括:
3.根據(jù)權(quán)利要求1所述基于rapl的粗粒度功耗負(fù)載特征分析方法,其特征在于,基于所述實(shí)驗(yàn)環(huán)境,讀取多個(gè)負(fù)載任務(wù)的cpu功耗,以得到各個(gè)所述負(fù)載任務(wù)的功耗數(shù)據(jù)的步驟中,包括:
4.根據(jù)權(quán)利要求3所述基于rapl的粗粒度功耗負(fù)載特征分析方法,其特征在于,利用rapl計(jì)算所述負(fù)載任務(wù)產(chǎn)生的cpu功耗,以得到所述功耗數(shù)據(jù)的步驟中,包括:
5.根據(jù)權(quán)利要求4所述基于rapl的粗粒度功耗負(fù)載特征分析方法,其特征在于,所述負(fù)載任務(wù)包括:輕度負(fù)載、中度負(fù)載、高度負(fù)載和重度負(fù)載。
6.根據(jù)權(quán)利要求5所述基于rapl的粗粒度功耗負(fù)載特征分析方法,其特征在于,對(duì)各個(gè)所述負(fù)載任務(wù)的所述功耗數(shù)據(jù)進(jìn)行分析處理,以得到各個(gè)所述負(fù)載任務(wù)的功耗特征的步驟中,包括:
7.根據(jù)權(quán)利要求6所述基于rapl的粗粒度功耗負(fù)載特征分析方法,其特征在于,對(duì)待分析功耗數(shù)據(jù)進(jìn)行處理,以得到待分析功耗特征的步驟中,包括:
8.根據(jù)權(quán)利要求7所述基于rapl的粗粒度功耗負(fù)載特征分析方法,其特征在于,利用各個(gè)所述負(fù)載任務(wù)的所述功耗特征對(duì)所述待分析功耗特征進(jìn)行分析,以判斷用戶的工作狀態(tài)的步驟中,包括:
9.根據(jù)權(quán)利要求8所述基于rapl的粗粒度功耗負(fù)載特征分析方法,其特征在于,所述輕度負(fù)載的絕對(duì)功耗值的范圍為(0,5w],所述中度負(fù)載的絕對(duì)功耗值的范圍為(5,20w],所述高度負(fù)載的絕對(duì)功耗值的范圍為(20,35w],所述重度負(fù)載的絕對(duì)功耗值大于35w。