本發(fā)明涉及異構(gòu)系統(tǒng)領(lǐng)域,尤其涉及一種異構(gòu)系統(tǒng)全程序功耗計(jì)量方法。
背景技術(shù):
功耗精確計(jì)量是面向特定體系結(jié)構(gòu)進(jìn)行功耗優(yōu)化的基礎(chǔ)。目前關(guān)于異構(gòu)系統(tǒng)功耗計(jì)量方法的研究并不充分,大多是基于同構(gòu)系統(tǒng)功耗計(jì)量方法修改得到。然而,異構(gòu)系統(tǒng)由于集成有多種不同類型的處理器(主要分為主處理器與加速處理器),各處理器不僅具有不同體系結(jié)構(gòu);同時(shí)主處理器與加速處理器大都通過系統(tǒng)總線鏈接,在調(diào)度加速部件執(zhí)行加速計(jì)算的過程中必然引入額外的通信操作;另外加速處理器密集處理單元使得芯片溫度較一般處理器高,而溫度對靜態(tài)功耗會(huì)產(chǎn)生一定影響,導(dǎo)致靜態(tài)功耗比例在逐漸增大,因此面向異構(gòu)系統(tǒng)的功耗計(jì)量對象相比同構(gòu)系統(tǒng)會(huì)更加復(fù)雜。
傳統(tǒng)功耗計(jì)量的對象基本上都是單獨(dú)針對處理器部件或者整個(gè)處理器進(jìn)行建模,考慮的系統(tǒng)功耗與應(yīng)用程序的執(zhí)行過程無關(guān),僅由處理器決定。然而在異構(gòu)系統(tǒng)中,由于編程模型或體系結(jié)構(gòu)上的限制,并行應(yīng)用程序大都采用通用微處理器與加速部件依次執(zhí)行不同計(jì)算段的方式來完成整個(gè)應(yīng)用,并且隨著異構(gòu)并行處理技術(shù)及其支撐環(huán)境的不斷完善,越來越多的并行程序?qū)⒉捎卯悩?gòu)多處理器并行組合處理單個(gè)并行計(jì)算段的方式,以充分開發(fā)系統(tǒng)并行處理的優(yōu)勢。同時(shí),由于異構(gòu)系統(tǒng)中主處理器與加速部件間大都通過PCI接口傳遞數(shù)據(jù),其單項(xiàng)峰值帶寬僅為8GB/s,特別是以GPU為代表的加速處理器顯存容量已經(jīng)很難滿足科學(xué)計(jì)算應(yīng)用的需求,進(jìn)一步增大了數(shù)據(jù)通信帶寬的壓力,對于大量數(shù)據(jù)密集型應(yīng)用,處理器間的數(shù)據(jù)通信開銷對異構(gòu)系統(tǒng)高功耗造成了不小影響。隨著集成電路進(jìn)入納米工藝,漏電流靜態(tài)功耗已超過動(dòng)態(tài)功耗,成為了芯片功耗的主要來源。
技術(shù)實(shí)現(xiàn)要素:
為克服現(xiàn)有技術(shù)的不足,從全程序角度建立異構(gòu)系統(tǒng)功耗計(jì)量方法,有效降低系統(tǒng)能耗,更為高效開發(fā)異構(gòu)系統(tǒng)效能優(yōu)勢,本發(fā)明提出一種異構(gòu)系統(tǒng)全程序功耗計(jì)量方法。
本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:
一種異構(gòu)系統(tǒng)全程序功耗計(jì)量方法,包括步驟
S1:針對異構(gòu)多處理器并行處理單個(gè)并行計(jì)算段,根據(jù)同一類型處理器或多種不同類型處理器完成計(jì)算段的不同方式,分析同構(gòu)計(jì)算段程序執(zhí)行時(shí)間對該計(jì)算段動(dòng)態(tài)功耗的影響,建立同構(gòu)計(jì)算段功耗與執(zhí)行時(shí)間關(guān)系,獲得基于同構(gòu)程序劃分的動(dòng)態(tài)功耗表示方法;
S2:分析時(shí)間約束條件下單個(gè)計(jì)算段達(dá)到功耗最優(yōu)的條件,建立異構(gòu)計(jì)算段功耗與執(zhí)行時(shí)間關(guān)系,獲得基于異構(gòu)程序劃分的動(dòng)態(tài)功耗表示方法;
S3:在同構(gòu)計(jì)算段程序中,以并行數(shù)據(jù)規(guī)模為對象,分析主處理器與加速處理器之間數(shù)據(jù)傳輸對通信能耗的影響,獲得同構(gòu)計(jì)算段通信能耗表示方法;
S4:在異構(gòu)計(jì)算段程序中,以并行執(zhí)行任務(wù)為對象,利用異構(gòu)處理器實(shí)際效能與任務(wù)特征的直接關(guān)系,分析單個(gè)計(jì)算段中具有數(shù)據(jù)依賴關(guān)系的多個(gè)并行任務(wù)劃分對通信能耗的影響,獲得異構(gòu)計(jì)算段通信能耗表示方法;
S5:以多核處理器芯片為對象,利用處理器內(nèi)核的熱傳導(dǎo)特性,采用等效RC電路方法建立實(shí)時(shí)系統(tǒng)熱分析模型,求解芯片工作溫度;
S6:分析芯片漏電流與靜態(tài)功耗的相互關(guān)系,進(jìn)行曲線擬合,獲得漏電流與芯片溫度、電壓的函數(shù)關(guān)系式;
S7:引入兩個(gè)工作參考溫度,建立漏電流與溫度的二次函數(shù),獲得靜態(tài)功耗與芯片溫度的函數(shù)關(guān)系式,建立基于實(shí)時(shí)溫度管理的靜態(tài)功耗計(jì)量表示方法。
進(jìn)一步地,步驟S6中所述進(jìn)行曲線擬合是使用HISPICE軟件完成的。
本發(fā)明的有益效果在于,與現(xiàn)有技術(shù)相比,本發(fā)明分析并行程序在異構(gòu)系統(tǒng)上的執(zhí)行過程,關(guān)注多個(gè)并行段的功耗建模,同時(shí)考慮主處理器與加速處理器任務(wù)通信帶來的通信開銷,以及芯片溫度升高帶來的漏電流影響,從全程序角度,精確統(tǒng)計(jì)異構(gòu)并行系統(tǒng)功耗計(jì)算。
附圖說明
圖1是本發(fā)明一種異構(gòu)系統(tǒng)全程序功耗計(jì)量方法流程圖;
圖2是本發(fā)明一種異構(gòu)系統(tǒng)全程序功耗計(jì)量方法整體框架示意圖;
圖3是本發(fā)明一種異構(gòu)系統(tǒng)全程序功耗計(jì)量方法的異構(gòu)并行程序分類圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
請參見圖1和圖2,本發(fā)明一種異構(gòu)系統(tǒng)全程序功耗計(jì)量方法,包括三個(gè)部分:
(1)建立多處理器多計(jì)算段劃分的程序執(zhí)行時(shí)間與動(dòng)態(tài)功耗關(guān)系,包括步驟:
S1:針對異構(gòu)多處理器并行處理單個(gè)并行計(jì)算段,根據(jù)同一類型處理器或多種不同類型處理器完成計(jì)算段的不同方式,分析同構(gòu)計(jì)算段程序執(zhí)行時(shí)間對該計(jì)算段動(dòng)態(tài)功耗的影響,建立同構(gòu)計(jì)算段功耗與執(zhí)行時(shí)間關(guān)系,獲得基于同構(gòu)程序劃分的動(dòng)態(tài)功耗表示方法;
S2:分析時(shí)間約束條件下單個(gè)計(jì)算段達(dá)到功耗最優(yōu)的條件,建立異構(gòu)計(jì)算段功耗與執(zhí)行時(shí)間關(guān)系,獲得基于異構(gòu)程序劃分的動(dòng)態(tài)功耗表示方法;
(2)獲得數(shù)據(jù)傳輸與多任務(wù)動(dòng)態(tài)分配的通信功耗形式化描述方法,包括步驟:
S3:在同構(gòu)計(jì)算段程序中,以并行數(shù)據(jù)規(guī)模為對象,分析主處理器與加速處理器之間數(shù)據(jù)傳輸對通信能耗的影響,獲得同構(gòu)計(jì)算段通信能耗表示方法;
S4:在異構(gòu)計(jì)算段程序中,以并行執(zhí)行任務(wù)為對象,利用異構(gòu)處理器實(shí)際效能與任務(wù)特征的直接關(guān)系,分析單個(gè)計(jì)算段中具有數(shù)據(jù)依賴關(guān)系的多個(gè)并行任務(wù)劃分對通信能耗的影響,獲得異構(gòu)計(jì)算段通信能耗表示方法;
(3)分析熱分析模型下實(shí)時(shí)芯片溫度管理與靜態(tài)功耗相互影響,包括步驟:
S5:以多核處理器芯片為對象,利用處理器內(nèi)核的熱傳導(dǎo)特性,采用等效RC電路方法建立實(shí)時(shí)系統(tǒng)熱分析模型,求解芯片工作溫度;
S6:分析芯片漏電流與靜態(tài)功耗的相互關(guān)系,進(jìn)行曲線擬合,獲得漏電流與芯片溫度、電壓的函數(shù)關(guān)系式;
S7:引入兩個(gè)工作參考溫度,建立漏電流與溫度的二次函數(shù),獲得靜態(tài)功耗與芯片溫度的函數(shù)關(guān)系式,建立基于實(shí)時(shí)溫度管理的靜態(tài)功耗計(jì)量表示方法。
本發(fā)明首先對并行程序在異構(gòu)系統(tǒng)上的執(zhí)行過程進(jìn)行抽象。其中S表示串行計(jì)算段,S={s0,…,sn-1},根據(jù)計(jì)算段的并行性將程序分為n段,si表示第i個(gè)計(jì)算段的任務(wù)量;C表示通信段;R={r0,…,rm-1},表示異構(gòu)并行系統(tǒng)由m類處理器組成;Nj表示第j(0≤j≤m-1)類處理器rj的數(shù)量;vj表示最高頻率下的速度(處理器單位時(shí)間內(nèi)完成任務(wù)量);P表示并行計(jì)算段(第一個(gè)并行計(jì)算段由主處理器完成,第二個(gè)并行計(jì)算段由主處理器和加速部件并行完成,第三個(gè)并行計(jì)算段由加速部件獨(dú)立完成)。將由主處理器/加速部件獨(dú)立完成并行計(jì)算段稱為同構(gòu)計(jì)算段程序,主處理器和加速部件共同完成并行計(jì)算段稱為異構(gòu)計(jì)算段程序。接著將并行程序執(zhí)行特征進(jìn)行符號定義,如圖3所示。
(1)異構(gòu)系統(tǒng)動(dòng)態(tài)功耗計(jì)量
在同構(gòu)計(jì)算段程序中,如果si為串行段,則由ri類型的單個(gè)處理器完成;如果si為并行段,則由ri類型的所有處理器完成。動(dòng)態(tài)電壓與處理器頻率的關(guān)系可以近似的描述為f=KVγ-1,其中K和γ是與工藝相關(guān)的參數(shù)。記因此動(dòng)態(tài)功耗Pd可以看成與頻率f的α次方成正比的關(guān)系,即Pd=Kfα。記第i個(gè)計(jì)算段的執(zhí)行時(shí)間為ti,Ni表示第i個(gè)計(jì)算段ri類處理器個(gè)數(shù),fi表示第i個(gè)計(jì)算段時(shí)ri處理器運(yùn)行頻率,同構(gòu)程序段程序總功耗可以表示為
針對由多個(gè)計(jì)算段組成的程序模型,求解在給定執(zhí)行時(shí)間T的約束下使全程序總功耗達(dá)到最小,其中對任意計(jì)算段Si的時(shí)間約束ti的分析如下:如果第i個(gè)計(jì)算段Si為串行段,則該計(jì)算段僅由一個(gè)處理器完成,此時(shí)執(zhí)行時(shí)間滿足如果第i個(gè)計(jì)算段Si為并行段,則該計(jì)算段由ri類型的所有處理器并行完成,此時(shí)執(zhí)行時(shí)間ti滿足因此,基于同構(gòu)程序的計(jì)算功耗計(jì)量可以表示為:
在異構(gòu)計(jì)算程序中,如果Si為串行段,則由ri類型的單個(gè)處理器完成;如果Si為并行段,則由系統(tǒng)內(nèi)所有類型的處理器共同完成。本項(xiàng)目主要針對CPU-GPU異構(gòu)并行系統(tǒng)進(jìn)行研究,因此處理器類型只包含CPU和GPU兩類(假設(shè)CPU的型號一致;GPU的型號一致)。
記第i個(gè)計(jì)算段的執(zhí)行時(shí)間為ti,NC表示第i個(gè)計(jì)算段CPU處理器的個(gè)數(shù),NG表示第i個(gè)計(jì)算段GPU處理器的個(gè)數(shù),kC和kG分別表示CPU和GPU處理器相關(guān)常數(shù)。fC和fG分別表示第i個(gè)計(jì)算段CPU和GPU處理器的運(yùn)行頻率。表示第j類處理器在第i個(gè)計(jì)算段內(nèi)單位時(shí)間內(nèi)完成的任務(wù)量。因此異構(gòu)程序段程序總功耗可以表示為
異構(gòu)計(jì)算段程序功耗最優(yōu)問題原則上可分為兩個(gè)子問題進(jìn)行研究,即計(jì)算段內(nèi)局部功耗最優(yōu)和全程序整體功耗最優(yōu)。第一個(gè)子問題的關(guān)鍵是建立計(jì)算段處理器最優(yōu)功耗與執(zhí)行時(shí)間的關(guān)系,第二個(gè)子問題是在計(jì)算段內(nèi)功耗最優(yōu)的基礎(chǔ)上分配不同計(jì)算段的執(zhí)行時(shí)間。因此異構(gòu)計(jì)算段程序功耗優(yōu)化問題可歸納為一般多元極值問題,基于異構(gòu)程序的計(jì)算功耗可以表示為:
(2)異構(gòu)系統(tǒng)通信功耗計(jì)量
在異構(gòu)并行系統(tǒng)中,CPU與GPU通過PCI-E總線進(jìn)行連接,PCI-E總線不支持動(dòng)態(tài)電壓/頻率調(diào)節(jié)技術(shù),即數(shù)據(jù)通信操作的執(zhí)行速度與功耗開銷一定。將PCI-E總線記為一類特殊的功能單元,其運(yùn)行過程中的功耗開銷為pm,0,空閑狀態(tài)下的功耗開銷為pm,1。同時(shí)假設(shè)通信操作不可中斷,即多個(gè)數(shù)據(jù)通信操作需順序執(zhí)行,由于系統(tǒng)總線由單個(gè)通信操作獨(dú)占使用,因此通信開銷與數(shù)據(jù)規(guī)模成正比關(guān)系;而數(shù)據(jù)規(guī)模取決于具有數(shù)據(jù)依賴關(guān)系的兩個(gè)并行任務(wù)的劃分策略。
①同構(gòu)程序段通信功耗計(jì)量
在同構(gòu)計(jì)算段程序中,通信功耗主要為輸入數(shù)據(jù)由CPU傳到GPU存儲(chǔ)空間,輸出數(shù)據(jù)由GPU回存到CPU存儲(chǔ)空間所引入的通信開銷。記通信操作的執(zhí)行時(shí)間表示CPU與GPU之間數(shù)據(jù)通信開銷,tm,0表示PCI-E總線空閑狀態(tài)下的時(shí)間開銷,則同構(gòu)程序的通信功耗可以表示為,
②異構(gòu)程序段通信功耗計(jì)量
在異構(gòu)計(jì)算段程序中,通信功耗主要為在單個(gè)計(jì)算段中,具有數(shù)據(jù)依賴關(guān)系的多個(gè)并行任務(wù)劃分所產(chǎn)生的通信開銷。由于異構(gòu)處理器的實(shí)際效能與任務(wù)特征直接相關(guān),因此在多個(gè)任務(wù)間容易產(chǎn)生各不相同的劃分策略,而由此引入了較大的通信開銷。記表示任務(wù)v在劃分方式z下與任務(wù)v'在劃分方式z'下的通信開銷,則異構(gòu)程序的通信功耗可以表示為,
(3)異構(gòu)系統(tǒng)靜態(tài)功耗計(jì)量
為了研究處理器內(nèi)核的熱傳導(dǎo)特性,采用等效RC電路方法進(jìn)行熱分析建模,該模型采用如下公式進(jìn)行工作溫度的求解:
T和Tamb分別代表芯片的溫度與環(huán)境溫度,P代表時(shí)間t時(shí)芯片的功耗,Rth、Cth分別為等效熱阻與等效熱容。處理器的系統(tǒng)狀態(tài)可以分為工作狀態(tài)和休眠狀態(tài)。只有在工作狀態(tài)下處理器才執(zhí)行任務(wù);否則,處理器將進(jìn)入休眠狀態(tài)以減少功耗并降低自身溫度。工作狀態(tài)下的靜態(tài)功耗可以表示為,
Pstatic=NgateIleakageVdd (10)
通過HSPICE軟件進(jìn)行曲線擬合,與溫度、電壓相關(guān)的漏電流可以寫為
其中,A,B,α,β,γ,δ,μ,η是經(jīng)驗(yàn)參數(shù),由生產(chǎn)工藝所決定,當(dāng)工作溫度T在300k—380k的正常范圍內(nèi)變化,的波動(dòng)變化很小。當(dāng)給定了Vdd后,通過引入兩個(gè)參考溫度TH和TL進(jìn)一步將漏電流簡化為溫度的二次函數(shù)。于是與漏電流相關(guān)的靜態(tài)功耗可以形式化表示為
其中,
以上對本發(fā)明的具體實(shí)施例進(jìn)行了描述。需要理解的是,本發(fā)明并不局限于上述特定實(shí)施方式,本領(lǐng)域技術(shù)人員可以在權(quán)利要求的范圍內(nèi)做出各種變形或修改,這并不影響本發(fā)明的實(shí)質(zhì)內(nèi)容。
以上所述是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也視為本發(fā)明的保護(hù)范圍。