1.一種基于AOV網(wǎng)關(guān)鍵路徑查詢的異構(gòu)系統(tǒng)動(dòng)態(tài)功耗優(yōu)化方法,分析CUDA應(yīng)用程序在CPU-GPU異構(gòu)系統(tǒng)上的運(yùn)行特點(diǎn),歸納其中的任務(wù)依賴關(guān)系,將一個(gè)包含多GPU任務(wù)完整程序的執(zhí)行過程表示為一種基于圖的數(shù)據(jù)結(jié)構(gòu)AOV網(wǎng),在此基礎(chǔ)上分析程序運(yùn)行的關(guān)鍵路徑,找出程序中可以進(jìn)行能耗優(yōu)化部分,求解相應(yīng)的頻率調(diào)節(jié)幅度,在保持程序性能不變的前提下最小化程序的整體能量消耗,優(yōu)化的對(duì)象是包含多個(gè)GPU任務(wù)的整個(gè)程序的動(dòng)態(tài)功耗,具體如下:
Step1:首先從程序中分離出不同類型的任務(wù):CPU計(jì)算任務(wù)、通信任務(wù)、GPU計(jì)算任務(wù),將單GPU任務(wù)再進(jìn)行劃分至CPU和GPU上同時(shí)執(zhí)行,將運(yùn)行的過程描述為任務(wù)之間的依賴關(guān)系,構(gòu)造程序運(yùn)行過程的AOV網(wǎng)絡(luò);
Step2:其次對(duì)運(yùn)行過程AOV網(wǎng)絡(luò)進(jìn)行分析,確定關(guān)鍵路徑,則非關(guān)鍵路徑上的CPU和GPU任務(wù)為可以進(jìn)行頻率調(diào)節(jié)以節(jié)省功耗的非關(guān)鍵任務(wù);
Step3:最后根據(jù)關(guān)鍵任務(wù)執(zhí)行的時(shí)間確定非關(guān)鍵任務(wù)可以放松的執(zhí)行時(shí)間范圍,從而求解每個(gè)任務(wù)處理器頻率調(diào)節(jié)幅度以最小化功耗的消耗。
2.根據(jù)權(quán)利要求1所述的異構(gòu)系統(tǒng)動(dòng)態(tài)功耗優(yōu)化方法,其特征在于,Step1:具體為:分析程序中的任務(wù)依賴關(guān)系建立程序任務(wù)依賴圖。
3.根據(jù)權(quán)利要求2所述的異構(gòu)系統(tǒng)動(dòng)態(tài)功耗優(yōu)化方法,其特征在于,Step2:具體為:構(gòu)造AOV網(wǎng)絡(luò)圖,并發(fā)執(zhí)行的任務(wù)之間存在資源沖突,遵循仲裁機(jī)制:若某一時(shí)刻任務(wù)流中同時(shí)存在多個(gè)滿足先后依賴關(guān)系但存在資源沖突的任務(wù),則優(yōu)先選擇任務(wù)流編號(hào)較小的任務(wù)執(zhí)行。
4.根據(jù)權(quán)利要求1所述的異構(gòu)系統(tǒng)動(dòng)態(tài)功耗優(yōu)化方法,其特征在于,Step3包括如下步驟:確定程序中各任務(wù)的最早開始時(shí)間與最遲開始時(shí)間;用EST(Mi)表示任務(wù)Mi最早開始時(shí)間函數(shù),LST(Mi)表示任務(wù)Mi最晚開始時(shí)間函數(shù),<vj,vi>則表示節(jié)點(diǎn)j要先于節(jié)點(diǎn)i執(zhí)行。
最早開始時(shí)間:
最遲開始時(shí)間:
因此任務(wù)Mi最早與最晚開始執(zhí)行時(shí)間EST(Mi)和LST(Mi)可以根據(jù)公式(1)和(2)遞推得出。