曹 坤 龍賽琴 李哲濤,2
1(暨南大學(xué)信息科學(xué)技術(shù)學(xué)院 廣州 510632)
2(網(wǎng)絡(luò)安全檢測與防護國家地方聯(lián)合工程中心(暨南大學(xué))廣州 510632)
近年來,隨著半導(dǎo)體技術(shù)的快速進步和對應(yīng)用性能需求的不斷增加,多處理器已經(jīng)取代單處理器,成為當前和未來處理器的主流設(shè)計范式.在多處理器設(shè)計方法中,集成CPU 和GPU 的多處理器片上系統(tǒng)(multiprocessor system-on-chips,MPSoC)受到廣泛關(guān)注[1].例如,三星 Exynos 5422 MPSoC[2]集成了4 個ARM Cortex A15 CPU 核心、4 個 ARM Cortex A7 CPU核心、1 個 ARM Mali-T628 MP6 GPU.這類MPSoC 可以充分發(fā)揮GPU 核心的并行計算能力和CPU 核心的通用計算能力,從而滿足各種新興應(yīng)用的低延遲、低開銷、節(jié)能等需求.
為了充分發(fā)揮CPU-GPU MPSoC 的性能,開放計算語言[3-5](open computing language,OpenCL)逐漸成為一種極具吸引力的應(yīng)用程序編寫標準.OpenCL 支持多級別的線程并行化,可以將應(yīng)用高效地映射到同構(gòu)或異構(gòu)、單個或多個CPU 和GPU 核心.然而,在執(zhí)行OpenCL 應(yīng)用時,如何確定CPU 和GPU 的工作負載,充分發(fā)揮線程級和數(shù)據(jù)級并行化優(yōu)勢,一直以來是一個研究難點和重點.圖1 為OpenCL 應(yīng)用的延遲和能耗隨CPU 負載變化的示意圖.如圖1 所示,在執(zhí)行特定的OpenCL 應(yīng)用時,存在使該應(yīng)用獲得最優(yōu)性能的CPU 負載,當分配更多的負載給CPU 核心時,應(yīng)用的性能不會進一步提升,反而會產(chǎn)生額外的能量和延遲開銷.因此,在設(shè)計OpenCL 應(yīng)用調(diào)度算法時,需要考慮如何將OpenCL 應(yīng)用的負載合理地分配給CPU 和GPU 核心.

Fig.1 Performance of OpenCL applications under varied CPU workload fractions [4]圖 1 OpenCL 應(yīng)用在不同 CPU 負載比例下的性能[4]
現(xiàn)有的OpenCL 應(yīng)用調(diào)度技術(shù)[6-14]大多面向系統(tǒng)靜態(tài)階段給定的初始應(yīng)用,旨在搜索最佳的負載劃分點和負載到處理器核心的映射,以平衡OpenCL 應(yīng)用的延遲和系統(tǒng)的能耗.對于此類技術(shù),由于應(yīng)用的指令條數(shù)、截止期限、周期等關(guān)鍵參數(shù)均在系統(tǒng)靜態(tài)階段已知,因此可設(shè)計復(fù)雜的離線算法,實現(xiàn)降低延遲和優(yōu)化能耗的目的.基于靜態(tài)調(diào)度方案,也有部分工作[10-14]根據(jù)系統(tǒng)運行時的資源利用情況,對初始應(yīng)用的靜態(tài)調(diào)度表進行微調(diào),以提高應(yīng)用調(diào)度算法的靈活性.然而,這些技術(shù)[6-14]均無法有效應(yīng)對在系統(tǒng)運行時的新到應(yīng)用.這主要是因為在真實場景中存在事件觸發(fā)型應(yīng)用,例如視頻監(jiān)控場景中的人體追蹤應(yīng)用,只有捕捉到人體活動時才會觸發(fā)后繼子任務(wù)的執(zhí)行.考慮到事件的猝發(fā)性,事件觸發(fā)型應(yīng)用的到達時間在系統(tǒng)靜態(tài)階段是未知的.此外,由于事件持續(xù)時間的隨機性導(dǎo)致采集到與該事件相關(guān)的數(shù)據(jù)總量只有在系統(tǒng)運行時才能確定,而應(yīng)用需要執(zhí)行的指令總條數(shù)通常依賴于輸入數(shù)據(jù)總量,輸入數(shù)據(jù)總量越多,執(zhí)行的指令總條數(shù)也越多.顯然,事件觸發(fā)型應(yīng)用執(zhí)行的指令總條數(shù)只有在系統(tǒng)運行時才能確定.如果直接采用現(xiàn)有技術(shù)[6-14]處理在系統(tǒng)運行時的新到應(yīng)用,將不可避免地帶來極大的調(diào)度決策時間開銷,無法確保滿足應(yīng)用的時序要求.盡管文獻[15]探究了如何在系統(tǒng)運行時處理新到應(yīng)用,然而卻忽視了對應(yīng)用時序、系統(tǒng)溫度、系統(tǒng)使用壽命的管理.
隨著芯片制造技術(shù)的快速發(fā)展,芯片功率密度呈指數(shù)級增長,進而導(dǎo)致芯片溫度不斷升高.如果芯片工作溫度過高,系統(tǒng)將出現(xiàn)功能錯誤、可靠性低、永久損壞等問題[16-17].因此,溫度管理一直是異構(gòu)計算系統(tǒng)中一個重要而緊迫的研究課題,特別是對于配備有限冷卻技術(shù)的CPU-GPU MPSoC,迫切需要使用有效的熱量管理技術(shù),以實現(xiàn)高性能計算,同時將芯片的峰值溫度保持在指定的溫度范圍內(nèi).然而,當前將OpenCL 應(yīng)用部署到CPU-GPU MPSoC 的研究工作,往往忽略了對芯片溫度和使用壽命的管理,導(dǎo)致處理器核心在執(zhí)行應(yīng)用時超過了峰值溫度,甚至永久性故障的提前發(fā)生,無法保證OpenCL 應(yīng)用在CPUGPU MPSoC 的長久運行.為了彌補現(xiàn)有技術(shù)的缺陷,本文將電遷移(electromigration,EM)、經(jīng)時擊穿(time dependent dielectric breakdown,TDDB)、熱循環(huán)(thermal cycling,TC)三種引起多核處理器系統(tǒng)失效的主要機制考慮在內(nèi),旨在降低OpenCL 應(yīng)用延遲的同時,有效降低芯片溫度和延長系統(tǒng)使用壽命.
本文針對CPU-GPU MPSoC,研究了如何在滿足時序、溫度、能耗、使用壽命約束的前提下,優(yōu)化初始和新到OpenCL 應(yīng)用的平均延遲.本文的主要貢獻包括3 個方面:
1)針對系統(tǒng)靜態(tài)階段的初始應(yīng)用,提出了一種基于改進交叉熵策略的調(diào)度技術(shù),該技術(shù)將OpenCL應(yīng)用的特性充分考慮在內(nèi),有效提高了OpenCL 應(yīng)用的設(shè)計點尋優(yōu)效率;
2)針對系統(tǒng)動態(tài)運行階段的新到應(yīng)用,設(shè)計了一種基于反饋控制策略的調(diào)度技術(shù),該技術(shù)能夠有效降低制定動態(tài)調(diào)度決策的時間開銷,同時最小化新到應(yīng)用的平均延遲;
3)在真實硬件平臺上進行了大量實驗驗證了所提調(diào)度方法的有效性,實驗結(jié)果表明本文提出的方法可以將應(yīng)用的平均延遲降低34.58%,同時滿足所有的設(shè)計約束.
近年來,如何優(yōu)化OpenCL 應(yīng)用在CPU-GPU MPSoC 的性能逐漸成為一個研究熱點.文獻[6]提出了一種名為 Troodon 的新型負載平衡調(diào)度啟發(fā)式算法,該算法融合了基于機器學(xué)習(xí)的設(shè)備適用性模型,能夠根據(jù)OpenCL 應(yīng)用的特征對其分類.此外,Troodon 還包括一個加速預(yù)測器,該算法用來預(yù)測OpenCL 應(yīng)用在設(shè)備上執(zhí)行時獲得的加速比.通過E-OSched 調(diào)度機制,Troodon 以負載平衡的方式將應(yīng)用分配給CPU 和GPU 核心,從而降低應(yīng)用的延遲.文獻[7]提出了一種面向 OpenCL 應(yīng)用和CPU-GPU集群的計算架構(gòu)FlinkCL,該架構(gòu)使用4 種技術(shù):異構(gòu)分布式抽象模型、即時編譯模式、分層部分縮減策略、異構(gòu)任務(wù)管理策略.
文獻[8]探索了如何使用主動模糊學(xué)習(xí)將OpenCL應(yīng)用映射到異構(gòu)CPU-GPU 多核架構(gòu).在學(xué)習(xí)階段,通過開發(fā)一個基于機器學(xué)習(xí)的設(shè)備適用性分類器來創(chuàng)建子樣本,以準確預(yù)測哪些處理器核心被分配了過多的負載.文獻[9]提出了一種基于預(yù)測運行時間的OpenCL 應(yīng)用調(diào)度策略.該策略利用了機器學(xué)習(xí)方法,可以在調(diào)度前估計單個應(yīng)用程序的運行時間.然后,根據(jù)預(yù)測結(jié)果,選擇最合適的處理器核心來處理該應(yīng)用,從而降低應(yīng)用的運行時間.文獻[10]展示了一個用于優(yōu)化CPU-GPU 協(xié)同計算的框架OPTiC,該框架通過利用一系列建模技術(shù),可以準確估計CPU和 GPU 的功率、不同頻率點的性能、溫度和內(nèi)存爭用對性能的影響.文獻[11]介紹了一種編程模型調(diào)度器,它允許異構(gòu)系統(tǒng)中的所有設(shè)備協(xié)同執(zhí)行單個OpenCL 應(yīng)用.該調(diào)度器引入了一種新型負載均衡算法,能夠?qū)崿F(xiàn)最優(yōu)的系統(tǒng)資源配置.
進一步地,文獻[12]使用線性回歸技術(shù),對OpenCL應(yīng)用的特征和性能進行建模,在該模型基礎(chǔ)上,利用動態(tài)電壓頻率調(diào)節(jié)技術(shù),確定CPU 和GPU 最佳的工作負載和頻率.文獻[13]提出了一個用于在異構(gòu)多核平臺上對實時OpenCL 應(yīng)用進行熱感知調(diào)度的框架.該框架將任務(wù)遷移、頻率調(diào)整、空閑槽插入等多個控制動作視為任務(wù)映射參數(shù),通過調(diào)整任務(wù)映射參數(shù)來降低違背溫度約束的概率.文獻[14]提出了一種針對運行在CPU-GPU 集成平臺上的應(yīng)用劃分策略,它由探索階段、穩(wěn)定階段、最終決策階段構(gòu)成,可以動態(tài)地將應(yīng)用負載分配給CPU 和GPU,從而降低應(yīng)用的執(zhí)行時間和能耗.文獻[15]設(shè)計了一種跨設(shè)備控制變量自動更新策略,解決了如何使用細粒度共享虛擬內(nèi)存在具有共享緩存的CPU-GPU 架構(gòu)上執(zhí)行OpenCL 應(yīng)用.
表1 對比了本文提出的方法和現(xiàn)有技術(shù)的特點.由表1 可知,本文綜合考慮了應(yīng)用時序、能耗、延遲、溫度、系統(tǒng)壽命,而相關(guān)工作[6-15]未能將這些因素充分考慮在內(nèi).本文彌補了現(xiàn)有工作的不足,針對系統(tǒng)靜態(tài)階段的初始應(yīng)用,提出了一種基于改進交叉熵策略的調(diào)度方法,針對系統(tǒng)動態(tài)階段的新到應(yīng)用,設(shè)計了一種基于反饋控制策略的調(diào)度技術(shù).本文提出的調(diào)度方法能夠在滿足時序、溫度、能耗、使用壽命約束的前提下,最小化初始和新到OpenCL 應(yīng)用的平均延遲.

Table 1 Comparison of Our Proposed Method with Existing Techniques表 1 本文提出的方法和現(xiàn)有技術(shù)的對比
假設(shè)實時的OpenCL應(yīng)用集合A={A1,A2,…,AS,AS+1,AS+2,…,AQ}在給定的硬件平臺上運行.其中,Aoffline={A1,A2,…,AS}表示系統(tǒng)靜態(tài)階段的初始應(yīng)用集合,Aonline={AS+1,AS+2,…,AQ}表示系統(tǒng)動態(tài)階段的新到應(yīng)用集合.對于一個初始應(yīng)用As(1 ≤s≤S),它需要執(zhí)行的指令條數(shù)Ws和截止期限D(zhuǎn)s是已知的.假設(shè)初始應(yīng)用的執(zhí)行順序已經(jīng)通過現(xiàn)有算法確定,例如采用文獻[18]的最短截止期限優(yōu)先(earliest deadline first,EDF)算法.但是,對于一個新到應(yīng)用Ar(S+1 ≤r≤Q),它的達到時間Tr、需要執(zhí)行的指令總數(shù)Wr、截止期限D(zhuǎn)r在靜態(tài)階段是未知的,只有在系統(tǒng)運行時的動態(tài)階段才能獲得.
此外,無論是初始應(yīng)用As和新到應(yīng)用Ar,均支持數(shù)據(jù)并行化操作,能夠根據(jù)系統(tǒng)運行狀態(tài)調(diào)節(jié)CPU和GPU 的負載、負載到CPU 大核心和小核心的映射.為了便于表述,用符號Aq(1≤q≤Q)表示集合A={A1,A2,…,AQ}中的任意一個應(yīng)用.用符號Pq表示應(yīng)用Aq的劃分點,取值為區(qū)間[0,1]的離散值.例如,應(yīng)用劃分點集合可以設(shè)置為{0,0.2,0.4,0.6,0.8,1},當Pq=0.4 時,表示40%的指令條數(shù)(或工作組)是由CPU 核心完成的,而剩余60%的指令條數(shù)(或工作組)是由GPU 核心完成的.
文獻[19-20]指出,電遷移、經(jīng)時擊穿、熱循環(huán)是引起多核處理器系統(tǒng)失效的主要機制.電遷移指的是在電流和溫度的共同作用下,金屬線出現(xiàn)斷裂從而導(dǎo)致芯片無法正常工作.用符號λEM表 示由電遷移引起的久性故障速率,計算公式[19]為
其中?,ω,k1,k2均為非負常量,ψ是電流密度,ψ0是電流密度常量,Ttem為核心的溫度.經(jīng)時擊穿指的是在柵極上施加一個電場低于柵氧的本征擊穿場強的恒定電壓,經(jīng)過一段時間的運行后,氧化膜被擊穿,造成核心的永久性損壞.用符號λTDDB表示由經(jīng)時擊穿引起的久性故障速率,計算公式[20]為
其中 α 和 β分別是場加速因子和跨電介質(zhì)的電場.與電遷移和經(jīng)時擊穿不同,熱循環(huán)是指由于相鄰材料層的熱膨脹系數(shù)不匹配產(chǎn)生的熱應(yīng)力造成的磨損,運行時的溫度變化導(dǎo)致非彈性變形,最終導(dǎo)致元器件損壞.由文獻[19]可知,由熱循環(huán)引起的永久性故障速率為

Fig.2 Illustration of our studied optimization problem圖 2 本文研究問題示意圖
給定CPU-GPU MPSoC 和實時應(yīng)用集合A={A1,A2,…,AQ},在時序、能耗、峰值溫度、使用壽命的約束下,為每個應(yīng)用找到最佳的設(shè)計點(包括劃分點以及該應(yīng)用到CPU 大核心和小核心的映射),從而最小化應(yīng)用的平均延遲.用符號 Lq表示應(yīng)用Aq的延遲,則Lq可以估算為[14]
本文針對系統(tǒng)靜態(tài)階段的初始應(yīng)用集合Aoffline={A1,A2,…,AS}和系統(tǒng)動態(tài)階段的新到應(yīng)用集合Aonline={AS+1,AS+2,…,AQ},分別提出了相應(yīng)的設(shè)計點優(yōu)化技術(shù).對于初始應(yīng)用集合Aoffline={A1,A2,…,AS},本文基于交叉熵優(yōu)化策略,首先設(shè)計了一種設(shè)計點樣本表示方法,然后提出利用拉丁超立方采樣和樣本微調(diào)技術(shù)來提高設(shè)計點尋優(yōu)效率.對于新到應(yīng)用集合Aonline={AS+1,AS+2,…,AQ},本文設(shè)計了基于反饋控制的設(shè)計點動態(tài)優(yōu)化技術(shù),主要包括比例-積分-微分(proportional-integral-derivative,PID)控制器、應(yīng)用準入控制器、應(yīng)用映射控制器、主控制器,能夠有效降低制定動態(tài)調(diào)度決策的時間開銷,同時最小化新到應(yīng)用的平均延遲.通過上述優(yōu)化過程,本文提出的方案能夠在滿足所有系統(tǒng)約束的前提下,最小化OpenCL 應(yīng)用的平均延遲.
本節(jié)設(shè)計了一種基于交叉熵策略的初始應(yīng)用設(shè)計點尋優(yōu)技術(shù),首先介紹交叉熵策略的理論基礎(chǔ),然后描述應(yīng)用特性驅(qū)動的交叉熵策略改進機制,最后給出基于改進機制的設(shè)計點靜態(tài)尋優(yōu)算法.
給定任意一個關(guān)于多維變量x的函數(shù)Φ(x),目標是在搜索空間 S內(nèi)找到最優(yōu)映射,使得函數(shù)Φ(x)在x=x*處取最小值,即
顯然,式(11)所示的優(yōu)化問題是一個確定性優(yōu)化問題.與直接求解該確定性問題的傳統(tǒng)優(yōu)化策略不同,交叉熵策略采用了問題轉(zhuǎn)化的思想,將原問題轉(zhuǎn)化成一個隨機優(yōu)化問題[21].本質(zhì)上,交叉熵策略是一種基于重要性抽樣的通用蒙特卡洛方法,用于解決稀有事件的概率估計.在交叉熵優(yōu)化策略中,式(11)可轉(zhuǎn)化為
在式(12)中,根據(jù)當前的第u個概率T(x,u),生成了包含Z個隨機樣本的樣本集合X={X1,…,Xz,…,XZ},其中每個樣本代表原問題的一個解.γ為閾值,Tu(Φ(X)≤γ) 是樣本函數(shù)值Φ(X)不大于閾值γ的概率.IΦ(X)≤γ是指示函數(shù),表達式為
Θu(IΦ(X)≤γ)為指示函數(shù)IΦ(X)≤γ的期望,計算式為
交叉熵策略采用了迭代抽樣方法,試圖逐步改變隨機搜索的抽樣分布,使稀有事件的概率不斷增加.采樣算法的每次迭代會生成代表原始問題解的多個隨機樣本,這些隨機樣本以一定概率收斂于最優(yōu)解.概括地說,利用交叉熵策略求解優(yōu)化問題的主要步驟包括:
1)初始化迭代計數(shù)器g←1和概率向量T0;
2)根據(jù)概率向量Tg-1隨機產(chǎn)生Z個樣本集合X={X1,…,Xz,…,XZ};
3)計算樣本的性能,按照性能遞減的順序?qū)颖九判颍缓筮x取性能最好的Belite個精英樣本;
4)利用式(15)計算第g次迭代的閾值
其中 ?為性能最好的Belite個精英樣本的下標集合;
5)利用式(16)更新第g次迭代的概率
其中xz,a為樣本Xz的第a(1 ≤a≤U)個元素,為在第g次迭代過程中元素xz,a映射到b(1 ≤b≤U*)的概率,且為Tg的元素;
6)如果滿足終止迭代條件,輸出性能最好的樣本,退出,否則更新g←g+1,返回步驟2).
傳統(tǒng)的交叉熵策略作為一種啟發(fā)式的迭代優(yōu)化策略,在每次迭代中都會產(chǎn)生大量的蒙特卡洛樣本,帶來巨大的運行時間開銷.本文提出了一種交叉熵策略改進機制來探索靜態(tài)的設(shè)計點尋優(yōu)方案.與標準的交叉熵優(yōu)化過程相比,改進后的交叉熵策略在第2)步的樣本生成階段進行了優(yōu)化.首先設(shè)計了一種設(shè)計點樣本表示方法,然后提出利用拉丁超立方采樣和樣本微調(diào)技術(shù)來提高設(shè)計點尋優(yōu)效率.中有5 個應(yīng)用{A1,A2,A3,A4,A5},應(yīng)用劃分點以步長0.2 進行設(shè)置,因此可供每個應(yīng)用選擇的劃分點為{0,0.2,0.4,0.6,0.8,1}.應(yīng)用A1選擇0.2 作為劃分點,則
具體地說,我們采用了2 個二維數(shù)組來表示應(yīng)用設(shè)計點樣本,1 個數(shù)組用來存儲應(yīng)用的劃分點,另一個數(shù)組用來存儲應(yīng)用到核心的映射.圖2(a)展示了應(yīng)用劃分點數(shù)組,該數(shù)組中的行號指代應(yīng)用編號,數(shù)組中的每列表示給定的劃分點是否被選中.圖2(a)該應(yīng)用20%的指令條數(shù)是在CPU 上完成的,剩余的80%的指令條數(shù)是在GPU 上完成的.需要特別指出的是,劃分點的步長是可以調(diào)節(jié)的,當步長較小時,表明系統(tǒng)對應(yīng)用進行了細粒度劃分,最終輸出解的精度也就越高.圖2(b)為應(yīng)用到核心的映射數(shù)組示意圖,在圖2(b)中,假設(shè)有4 個同構(gòu)的CPU 大核、4個同構(gòu)的CPU 小核、1 個GPU 核心,且CPU 和GPU都支持4 個離散的頻率.應(yīng)用到核心映射點數(shù)組的第1~4 列指示了某個CPU 大核是否被選中執(zhí)行特定的應(yīng)用,如果被選中,則將對應(yīng)的單元置為1;第5~8列指示CPU 大核的頻率等級.類似地,第9~12 列指示了某個CPU 小核是否被選中執(zhí)行特定的應(yīng)用,第13~16 列指 示CPU 小 核的頻率等 級,第17 列指示GPU 核心的頻率等級.圖2(c)展示了根據(jù)生成的劃分點和應(yīng)用到核心的映射,5 個應(yīng)用在核心上運行的示意圖.
接下來,利用文獻[22]提出的拉丁超立方采樣技術(shù)來生成樣本點.拉丁超立方采樣是用于多元參數(shù)分布的近似隨機分層抽樣技術(shù).對于一維變量抽樣,拉丁超立方采樣技術(shù)首先使用概率分布來估計變量的不確定性,然后將變量的范圍劃分為概率相等的區(qū)間,并在每個區(qū)間產(chǎn)生變量的樣本值.對于二維變量抽樣,拉丁超立方采樣技術(shù)首先將樣本空間劃分為若干個具有相同采樣概率的二維網(wǎng)格,然后隨機選擇1 個網(wǎng)格來生成樣本,同時與該網(wǎng)格相同行或相同列的網(wǎng)格不能作為未來樣本生成的候選網(wǎng)格.以對二維變量(x1,x2)進行抽樣為例,圖3 展示了采用隨機采樣技術(shù)和拉丁超立方采樣技術(shù)的采樣結(jié)果.從圖3 可以看出,與隨機采樣技術(shù)生成的樣本點相比,拉丁超立方采樣技術(shù)可以用更少的樣本數(shù)來較好地覆蓋采樣空間,極大地縮短了采樣的時間開銷.類似地,對于多維變量抽樣,拉丁超立方采樣技術(shù)需要將每一維分成互不重疊的若干區(qū)間,并確保每個區(qū)間有相同的采樣概率,緊接著在區(qū)間內(nèi)隨機抽取1 個點,并將它們組成1 個樣本.考慮到拉丁超立方采樣技術(shù)的優(yōu)勢,在設(shè)計點采樣階段,本文利用該技術(shù)來生成樣本點.

Fig.3 Comparison of random sampling and Latin hypercube sampling圖 3 隨機采樣和拉丁超立方采樣對比
在產(chǎn)生樣本集合X={X1,…,Xz,…,XZ}后,進一步對每個樣本Xz(1 ≤z≤Z)進行微調(diào)操作以提高單個樣本的性能.具體地說,樣本微調(diào)測策略是受到文獻[4]的實驗觀察啟發(fā):在執(zhí)行特定的應(yīng)用程序時,存在一個使該應(yīng)用獲得最優(yōu)性能的CPU 大核和CPU 小核的最佳組合,當更多的CPU 核心參與到應(yīng)用程序的執(zhí)行時,應(yīng)用的性能不會進一步提升,反而會產(chǎn)生額外的能量和延遲開銷.根據(jù)這一觀察,可以對樣本進行微調(diào)操作,微調(diào)后的樣本更接近最優(yōu)解,進而顯著地提高了交叉熵算法的迭代效率.以圖2(b)展示的從應(yīng)用到核心的映射為例,應(yīng)用A2在CPU 大核和的第2 個頻率等級、小核和的第3 個頻率等級上運行.首先,如圖4(a)所示,嘗試增加執(zhí)行應(yīng)用A2的CPU 大核數(shù)目,選擇交換應(yīng)用A2和應(yīng)用A1的CPU 大核映射點,此時4 個CPU 大核全部參與應(yīng)用A2的執(zhí)行,所有的CPU 小核都不參與應(yīng)用A2的執(zhí)行.接下來,嘗試減少執(zhí)行應(yīng)用A2的CPU 大核和CPU 小核的數(shù)目.如圖4(b)所示,可以將應(yīng)用A2和應(yīng)用A4的CPU 大核和CPU 小核映射點進行交換,此時應(yīng)用A2在CPU 大核的第4 個工作頻率、小核的第4 個工作頻率上執(zhí)行.對于圖4(a)和圖4(b)生成的2 個微調(diào)樣本,分別計算出它們對應(yīng)的性能,然后比較它們的性能是否優(yōu)于微調(diào)前的樣本性能.如果圖4(a)中的微調(diào)樣本性能優(yōu)于微調(diào)前的樣本性能,則在下次樣本微調(diào)操作時,應(yīng)嘗試繼續(xù)增加執(zhí)行應(yīng)用A2的CPU 資源,比如提高CPU 大核的工作頻率、增加執(zhí)行應(yīng)用A2的CPU 小核數(shù)目等;否則,在下次樣本微調(diào)操作時,應(yīng)嘗試減少執(zhí)行應(yīng)用A2的CPU 資源,比如降低CPU 大核和CPU 小核的工作頻率.

Fig.4 Example of fine tuning the samples of design points圖 4 設(shè)計點樣本微調(diào)示例
根據(jù)應(yīng)用特性驅(qū)動的交叉熵策略改進機制,本文提出了一種應(yīng)用設(shè)計點靜態(tài)尋優(yōu)技術(shù),如算法1所示.
算法1.基于改進交叉熵策略的靜態(tài)尋優(yōu)算法.
算法1 的輸入為應(yīng)用集合Aoffline={A1,A2,…,AS}和核心集合{Cbig,Clittle,}.算法1 首先對概率向量T0和迭代計數(shù)器g進行初始化操作,然后以迭代的方式尋找最優(yōu)的靜態(tài)設(shè)計點.在迭代過程中,根據(jù)概率向量Tg-1,利用樣本生成函數(shù)ProduceS ample(Tg-1,Z)產(chǎn)生總共Z個拉丁超立方采樣樣本.緊接著,調(diào)用應(yīng)用選擇函數(shù)SelectApp(Aoffline,Y),從應(yīng)用集合Aoffline={A1,A2,…,AS}中隨機選取Y個應(yīng)用進行樣本微調(diào)操作.對于任意一個被選中的應(yīng)用Ay(1 ≤y≤Y),使用樣本微調(diào)函數(shù)TuneS ample(X,Ay)對其樣本進行微調(diào)操作.同時,引入標志位如果=1,表示更多的CPU 資源會帶來應(yīng)用Ay的性能提升,即需要增加分配給應(yīng)用Ay的CPU 資源;反之,如果=-1,表示更多的CPU 資源反而會降低應(yīng)用Ay的性能,即需要減少分配給應(yīng)用Ay的CPU 資源.因此,可以比較微調(diào)后樣本Xu的性能是否強于微調(diào)前樣本的性能.如果是,用微調(diào)后的樣本Xu替代微調(diào)前的樣本并將當前的標志位賦值給下次迭代的標志位如果微調(diào)后的樣本性能均弱于微調(diào)前的樣本性能,則表明當前的微調(diào)操作不能提升樣本的性能,需要將當前標志位的相反數(shù)賦值給下次迭代的標志位.經(jīng)過總共gmax次迭代,算法1 最終輸出性能最優(yōu)的單個樣本.
本節(jié)介紹基于反饋控制的新到應(yīng)用設(shè)計點優(yōu)化技術(shù),首先概述該技術(shù)的基本思想,然后詳述PID 控制器、應(yīng)用準入控制器、應(yīng)用映射控制器、主控制器工作過程.
圖5 展示了本文提出的基于反饋控制的動態(tài)技術(shù)示意圖.如圖5 所示,該動態(tài)技術(shù)包含了準入隊列、等待隊列、PID 控制器、應(yīng)用準入控制器、應(yīng)用映射控制器、EDF 調(diào)度器、主控制器.對于系統(tǒng)靜態(tài)階段的初始應(yīng)用集合Aoffline={A1,A2,…,AS},可以直接調(diào)用靜態(tài)方案為它們選取最優(yōu)的設(shè)計點.對于系統(tǒng)運行時的新到應(yīng)用集合Aonline={AS+1,AS+2,…,AQ},設(shè)計了2 個隊列:準入隊列用來存儲被系統(tǒng)允許進入的應(yīng)用,等待隊列用來存儲未被系統(tǒng)允許進入的應(yīng)用.PID 控制器周期性地對當前系統(tǒng)中處理器核心的平均利用率 θ進行采樣,并將控制動作 φ返回給主控制器.主控制器調(diào)用應(yīng)用映射控制器和應(yīng)用準入控制器,以使當前系統(tǒng)中處理器核心的平均利用率 θ與利用率控制變量 φ相匹配.應(yīng)用映射控制器負責將空閑的處理器核心分配給新到應(yīng)用.EDF 調(diào)度器根據(jù)EDF 調(diào)度策略,負責管理準入隊列里的應(yīng)用在處理器核心上的執(zhí)行.
PID 控制器的運行過程如算法2 所示.算法2 的輸入是預(yù)先設(shè)定的約束條件違背等級的閾值ε.首先判斷當前的約束條件違背等級εnow是否大于閾值 ε,如果是,則需要迭代地優(yōu)化系統(tǒng)的資源利用率.根據(jù)文獻[23],可利用式(17)更新系統(tǒng)資源利用率控制變量.

Fig.5 Overview of our feedback control based dynamic scheduling technique圖 5 基于反饋控制的動態(tài)調(diào)度技術(shù)概覽
其中 ?1,?2,?3分別代表PID 控制器的比例、積分、微分系數(shù),ξ(t)表示約束條件違背等級εnow和閾值 ε的差值(即ξ(t)=ε-εnow),φ1表示在系統(tǒng)運行時發(fā)生積分誤差的調(diào)度窗口個數(shù),φ2表示系統(tǒng)運行時發(fā)生微分誤差的調(diào)度窗口個數(shù).算法2 使用PID 控制器對應(yīng)用執(zhí)行狀態(tài)采樣以更新約束條件違背等級εnow.當滿足終止迭代條件時,輸出系統(tǒng)資源利用率控制變量 φ.容易看出,當φ >0時,可以允許更多的新應(yīng)用進入系統(tǒng)以提高系統(tǒng)的資源利用率;相反,當φ <0時,需要禁止新應(yīng)用進入系統(tǒng)執(zhí)行從而降低系統(tǒng)的資源利用率.
算法2.PID 控制算法.
應(yīng)用準入控制器的運行過程如算法3 所示.該算法的輸入包括系統(tǒng)資源利用率控制變量 φ、準入隊列里的應(yīng)用個數(shù)Qaccept、等待隊列里的應(yīng)用個數(shù)Qwait.如果系統(tǒng)資源利用率控制變量 φ>0,此時可以允許更多的新應(yīng)用進入系統(tǒng)執(zhí)行以提高系統(tǒng)的資源利用率,因此需要根據(jù)EDF 算法對等待隊列里的應(yīng)用排序.對于等待隊列里的隊頭應(yīng)用Ai,分配給該應(yīng)用可用于提升系統(tǒng)資源利用率的閾值 φi.根據(jù)應(yīng)用的指令條數(shù)來確定 φi,即
換言之,一個應(yīng)用的指令條數(shù)越多,則分配給它的可用于提升系統(tǒng)資源利用率的閾值越大.如果φ-φi>0成立利用θ ←θ+φi以更新系統(tǒng)當前的資源利用率,利用φ ←φ-φi更新系統(tǒng)資源利用率控制變量.隨后,從等待隊列中刪除隊頭應(yīng)用,更新準入隊列里應(yīng)用的個數(shù).當系統(tǒng)資源利用率控制變量 φ<0 時,輸出{φi|1 ≤i≤Qaccept}后退出.
算法3.應(yīng)用準入控制算法.
應(yīng)用映射控制器的運行過程如算法4 所示.
算法4.應(yīng)用映射算法.
算法4 的輸入為用于提升系統(tǒng)資源利用率的閾值集合{φi|1 ≤i≤Qaccept}.對于準入隊列里的任意一個應(yīng)用,調(diào)用函數(shù)CoreIdleCheck來判斷系統(tǒng)中是否有處于空閑狀態(tài)的核心,如果系統(tǒng)存在處于空閑的核心,函數(shù)CoreIdleCheck返回值為1,否則返回值為0.如果函數(shù)CoreIdleCheck返回值為1,則進入空閑核心分配過程.此時,需要進一步判斷 φi是否大于0,如果是,隨機分配一個空閑核心給Ai,并計算資源利用率增量 ?i,更新可用于提升系統(tǒng)資源利用率的閾值 φi.注意到在該過程中,分配給應(yīng)用Ai的空閑核心的工作頻率是由同一個集群中的處于運行狀態(tài)的核心確定的.應(yīng)用Ai負載的劃分采用平均分配原則,即分配給應(yīng)用Ai的空閑核心需要執(zhí)行的指令條數(shù)是相等的.當可用于提升系統(tǒng)資源利用率的閾值 φi耗盡時,進行下一次迭代.整個算法在輸出準入隊列里的應(yīng)用設(shè)計點集合后退出.
主控制算法整合了PID 控制器、應(yīng)用準入控制器、應(yīng)用映射控制器,形成一個閉環(huán),有效提高了控制過程對外部干擾的魯棒性.主控制器的運行過程如算法5 所示.
算法5.主控制算法.
算法5 的輸入為在系統(tǒng)動態(tài)運行時,新到來的應(yīng)用集合Aonline={AS+1,AS+2,…,AQ}.算法5 調(diào)用算法2以獲取系統(tǒng)資源利用率控制變量 φ,調(diào)用算法3 獲取可用于提升系統(tǒng)資源利用率的閾值集合{φi|1 ≤i≤Qaccept}.接下來,算法5 調(diào)用算法4 生成應(yīng)用調(diào)度表并采用EDF 調(diào)度器執(zhí)行應(yīng)用.
本文采用2 種CPU-GPU MPSoC 硬件平臺.一種是Hardkernel Odroid-XU3 硬件平臺[2],集成了三星Exynos 5422 MPSoC,包含4 個ARM Cortex A15 核心、4 個ARM Cortex A7 核心、1 個ARM Mali-T628 MP6 GPU.4 個ARM Cortex A15 核心構(gòu)成了高性能的CPU 大核集群,每個核心都支持步長為100 MHz、200~2 000 MHz之間的多種離散頻率.4 個ARM Cortex A7 核心組成了低功耗的CPU 小核心集群,每個核心都支持步長為100 MHz、200~1 400 MHz 之間的不同離散頻率.對于ARM Mali-T628 MP6 GPU,它的工作頻率從600 MHz,543 MHz,480 MHz,420 MHz,350 MHz,266 MHz,177 MHz 中選取.
除了Hardkernel Odroid-XU3 平臺,本文還將三星Exynos 9810 MPSoC[24-25]作為測試硬件平臺.Exynos 9810 MPSoC 的CPU 大核集群包含4 個M3 核心,每個核心支持18 種離散的工作頻率,包括2652 MHz,2496 MHz,2314 MHz,2106 MHz,2002 MHz,1924 MHz,1794 MHz,1690 MHz,1586 MHz,1469 MHz,1261 MHz,1170 MHz,1066 MHz,962 MHz,858 MHz,741 MHz,704 MHz,650 MHz;CPU 小核集 群包含4 個ARM Cortex A55 核心,每個核心支持10 種不同的離散頻率,包括1690 MHz,1456 MHz,1248 MHz,1053 MHz,949 MHz,832 MHz,794 MHz,715 MHz,598 MHz,455 MHz;GPU 集群由ARM Mali-G72 MP18 GPU 構(gòu)成,支持6 種離散的工作頻率,包括572 MHz,546 MHz,455 MHz,338 MHz,299 MHz,260 MHz.
對于Hardkernel Odroid-XU3 和Exynos 9810 MPSoC,在系統(tǒng)靜態(tài)階段,我們采用熱量仿真工具Hot-Spot[26]獲取GPU 和任意CPU 核心的溫度.在系統(tǒng)動態(tài)階段,為了降低獲取溫度數(shù)值的時間開銷,利用片上系統(tǒng)的溫度傳感器來捕捉核心溫度.Hardkernel Odroid-XU3 部署了5 個溫度傳感器,其中4 個溫度傳感器分別用來監(jiān)測4 個ARM Cortex A15 核心的溫度,1 個溫度傳感器用來監(jiān)測ARM Mali-T628 MP6 GPU的溫度.Exynos 9810 MPSoC 同樣部署了5 個溫度傳感器,但只有1 個溫度傳感器用來測量CPU 大核集群的溫度,無法獲取CPU 小核集群和GPU 的溫度.考慮到無論是CPU 小核集群還是GPU 的工作頻率,它們支持的平均工作頻率均低于CPU 大核集群支持的平均工作頻率,導(dǎo)致CPU 小核集群和GPU 的溫度通常低于CPU 大核集群的溫度.因此,我們采用與文獻[24]和文獻[27]類似的做法,在系統(tǒng)動態(tài)階段,忽略對Hardkernel Odroid-XU3 的CPU 小核集群、Exynos 9810 MPSoC 的小核集群和GPU 的溫度管理.相應(yīng)地,在系統(tǒng)動態(tài)階段,只對Hardkernel Odroid-XU3 的CPU大核集群和GPU、Exynos 9810 MPSoC 的大核集群進行使用壽命優(yōu)化.
如表2 所 示,我們從Hetero-Mark OpenCL[28],PolyBench[29],PARSEC[30]三個基準應(yīng)用庫選取了16個典型的OpenCL 應(yīng)用作為測試應(yīng)用,包括K 均值聚類算法(K-means,KM)、頁面排序(page rank,PR)、高級加密標準(advanced encryption standard,AES)、背景提取(background extraction,BE)、顏色直方圖制作(color histogramming,CH)、布萊克-舒爾斯模型(Black-Scholes model,BS)、力導(dǎo)的邊綁定方法(force directed edge bundling,F(xiàn)DEB)、有限沖激響應(yīng)濾波器(finite impulse response,F(xiàn)IR)、K 近鄰算法(K-nearest neighbors,KNN)、演化規(guī)劃(evolutionary programming,EP)、二叉查找樹插入(binary search tree insertion,BSTI)、基因比 對(gene alignment,GA)、二維卷 積(convolution-2D,C2D)、對稱rank-2k 更新(symmetric rank-2k update,SYR2K)、人體追蹤(body track,BT)、內(nèi)容相似性搜索(content similarity search,CSS).單個基準應(yīng)用的指令條數(shù)和工作組個數(shù)如表2 所示,它的截止期限設(shè)置為
為了驗證本文算法的性能,我們將基于交叉熵策略的靜態(tài)算法與延遲感知的集成式熱量管理算法[13](latency-aware integrated thermal management,LITM)、延遲感知的粒子群優(yōu)化算法[31](latency-aware particle swarm optimization,LPSO)進行對比.此外,還將基于反饋控制的動態(tài)算法與對數(shù)曲線擬合算法[14](logarithmic curve fitting,LCF)和高能效映射重新劃分算法[4](energy efficient mapping and repartitioning,EEMR)進行對比.
1)LITM.一個用于在異構(gòu)多核平臺上對實時OpenCL 應(yīng)用進行熱感知調(diào)度的框架,該框架將任務(wù)遷移、頻率調(diào)整、空閑槽插入等多個控制動作視為任務(wù)映射參數(shù),通過自適應(yīng)的方式調(diào)整任務(wù)映射參數(shù)來降低違背溫度約束的概率.
2)LPSO.一種旨在降低應(yīng)用執(zhí)行時間的靜態(tài)方法,在應(yīng)用實時性、系統(tǒng)能耗、處理器溫度、系統(tǒng)使用壽命的約束下,采用粒子群優(yōu)化算法完成應(yīng)用指令條數(shù)的劃分、CPU 核心和GPU 核心的頻率選擇.
3)LCF.一種針對運行在CPU-GPU 集成平臺上的應(yīng)用劃分策略,由探索階段、穩(wěn)定階段、最終決策階段構(gòu)成,可以動態(tài)地將應(yīng)用負載分配給CPU 和GPU,以同時降低應(yīng)用的延遲和能耗.但是,它忽視了應(yīng)用的時序要求和系統(tǒng)的使用壽命需求.
4)EEMR.一種節(jié)能的運行時應(yīng)用映射和劃分方法,根據(jù)應(yīng)用的實時性要求,對于每個并發(fā)執(zhí)行的應(yīng)用程序,映射過程會找到適當數(shù)量的 CPU 核心以及CPU 核心和 GPU 核心的運行頻率,應(yīng)用劃分過程考慮到了CPU 核心和 GPU 核心之間的負載平衡.然而,它忽視了系統(tǒng)的使用壽命和峰值溫度約束.

Table 2 Number of Instruction Cycles and Work-Groups of Benchmarking Applications[28-30]表 2 基準應(yīng)用的指令條數(shù)和工作組個數(shù)[28-30]
在本文提出的靜態(tài)算法中,設(shè)置迭代次數(shù)gmax=50,每次迭代生成的樣本數(shù)目Z=50,用于微調(diào)的樣本數(shù)目Y=30.在本文提出的動態(tài)算法中,PID 控制器的參數(shù) ?1,?2,?3分別設(shè)置為0.5,0.05,0.1.
6.4.1 靜態(tài)算法性能分析
圖6 比較了FDEB,F(xiàn)IR,KNN,EP,BSTI,GA,C2D,SYR2K,KM,CSS 共10 個基準應(yīng)用在Hardkernel Odroid-XU3 硬件平臺上執(zhí)行的延遲.從圖6 可以看出,本文提出的靜態(tài)算法可以有效地降低基準應(yīng)用的延遲.例如,在執(zhí)行基準應(yīng)用EP 時,本文提出的靜態(tài)算法、基準算法LITM、基準算法LPSO 取得的應(yīng)用延遲分別為89.41 s,130.30 s,109.71 s.此外,與基準算法LITM 和LPSO 相比,本文提出的靜態(tài)算法能夠?qū)?0 個基準應(yīng)用的平均延遲分別降低29.83%和23.95%.圖7 比較了10 個基準應(yīng)用在Exynos 9810 MPSoC 硬件平臺上執(zhí)行的延遲.與基準算法LITM 和LPSO 相比,本文提出的靜態(tài)算法將基準應(yīng)用的平均延遲分別降低了34.58%和25.42%.

Fig.6 Latency achieved by static algorithms when running on the Hardkernel Odroid-XU3 platform圖 6 靜態(tài)算法在 Hardkernel Odroid-XU3 平臺上執(zhí)行實現(xiàn)的延遲
圖8 和圖9 分別比較了10 個基準應(yīng)用在Hardkernel Odroid-XU3 硬件平臺、Exynos 9810 MPSoC 執(zhí)行的應(yīng)用能耗.在圖8 中,設(shè)置應(yīng)用的能量預(yù)算Ebgt=3 000 J.圖8 的數(shù)據(jù)表明本文提出的靜態(tài)算法和2 種基準算法都可滿足應(yīng)用總能耗的約束.此外,本文提出的靜態(tài)算法的應(yīng)用能耗大于2 種基準算法的應(yīng)用能耗.類似地,從圖9 可知,對于任意應(yīng)用,本文提出的靜態(tài)算法的應(yīng)用能耗大于基準算法的應(yīng)用能耗.這主要是因為優(yōu)化能耗和優(yōu)化延遲是互斥目標,本文提出的靜態(tài)算法充分利用了給定的能耗預(yù)算,以最小化基準應(yīng)用的延遲.

Fig.7 Latency achieved by static algorithms when running on the Exynos 9810 MPSoC platform圖 7 靜態(tài)算法在 Exynos 9810 MPSoC 平臺上執(zhí)行實現(xiàn)的延遲

Fig.8 Energy consumption achieved by static algorithms when running on the Hardkernel Odroid-XU3 platform圖 8 靜態(tài)算法在 Hardkernel Odroid-XU3 平臺上執(zhí)行實現(xiàn)的能耗

Fig.9 Energy consumption achieved by static algorithms when running on the Exynos 9810 MPSoC platform圖 9 靜態(tài)算法在 Exynos 9810 MPSoC 平臺上執(zhí)行實現(xiàn)的能耗
圖10 列出了本文提出的靜態(tài)算法、基準算法LITM、基準算法LPSO 取得的處理器核心峰值溫度.在本組實驗中,將Hardkernel Odroid-XU3 和Exynos 9810 MPSoC 的峰值溫度閾值分別設(shè)置為70℃和90℃.從圖10 可以發(fā)現(xiàn),無論是Hardkernel Odroid-XU3 還是Exynos 9810 MPSoC 硬件平臺,本文提出的靜態(tài)算法和2 種基準算法都可以滿足峰值溫度的約束.圖11 給出了本文提出的靜態(tài)算法、基準算法LITM、基準算法LPSO 取得的系統(tǒng)使用壽命.在這組比較實驗中,將Hardkernel Odroid-XU3 和Exynos 9810 MPSoC 使用壽命需求分別設(shè)置為16 年和18 年.如圖11 所 示,無論是Hardkernel Odroid-XU3 還 是Exynos 9810 MPSoC 硬件平臺,本文提出的靜態(tài)算法和2 種基準算法都可以滿足使用壽命的約束,并且本文提出的靜態(tài)算法充分利用了給定的使用壽命閾值,以優(yōu)化應(yīng)用的延遲.

Fig.10 Peak temperature of processor cores achieved by static algorithms圖 10 靜態(tài)算法實現(xiàn)的處理器核心峰值溫度

Fig.11 Lifetime achieved by static algorithms圖 11 靜態(tài)算法實現(xiàn)的使用壽命
6.4.2 動態(tài)算法性能分析
圖12 比較了3 種動態(tài)算法在Hardkernel Odroid-XU3 硬件平臺上執(zhí)行6 個基準應(yīng)用BT,PR,AES,BE,CH,BS 時的應(yīng)用延遲.由圖12 可知,與基準算法LCF 和EEMR 相比,本文提出的動態(tài)算法可以將基準應(yīng)用的平均延遲分別降低23.47%和24.89%.進一步地,圖13 探究了3 種動態(tài)算法在Exynos 9810 MPSoC硬件平臺上執(zhí)行6 個基準應(yīng)用時的應(yīng)用延遲.與圖12展示的結(jié)果類似,本文提出的動態(tài)算法在Exynos 9810 MPSoC 硬件平臺上實現(xiàn)的性能仍然優(yōu)于基準算法LCF 和EEMR.

Fig.12 Latency achieved by dynamic algorithms when running on the Hardkernel Odroid-XU3 platform圖 12 動態(tài)算法在 Hardkernel Odroid-XU3 平臺上 執(zhí)行實現(xiàn)的延遲

Fig.13 Latency achieved by dynamic algorithms when running on the Exynos 9810 MPSoC platform圖 13 動態(tài)算法在 Exynos 9810 MPSoC 平臺上執(zhí)行實現(xiàn)的延遲
圖14 展示了3 種動態(tài)算法在Hardkernel Odroid-XU3 硬件平臺上執(zhí)行基準應(yīng)用BT,PR,AES,BE,CH,BS 時的能耗.在這組實驗中,設(shè)置應(yīng)用的能量預(yù)算Ebgt=3 000 J.從圖14 可以看出,與基準算法LCF 和EEMR 相比,本文提出的動態(tài)算法在執(zhí)行單個應(yīng)用時消耗了更多的能量,但是消耗的總能量沒有超過給定的能量預(yù)算.進一步地,圖15 展示了3 種動態(tài)算法在Exynos 9810 MPSoC 硬件平臺上執(zhí)行基準應(yīng)用時的能耗.在這組實驗中,設(shè)置應(yīng)用的能量預(yù)算Ebgt=2 000 J.由圖15 可知,本文提出的動態(tài)算法消耗的總能量依然沒有超過給定的能量預(yù)算.

Fig.14 Energy consumption achieved by dynamic algorithms when running on the Hardkernel Odroid-XU3 platform圖 14 動態(tài)算法在 Hardkernel Odroid-XU3 平臺上執(zhí)行實現(xiàn)的能耗

Fig.15 Energy consumption achieved by dynamic algorithms when running on the Exynos 9810 MPSoC platform圖 15 動態(tài)算法在Exynos 9810 MPSoC 平臺上執(zhí)行實現(xiàn)的能耗
圖16 探究了本文提出的動態(tài)算法、基準算法LCF、基準算法EEMR 取得的處理器核心峰值溫度.在本組實驗中,Hardkernel Odroid-XU3 和Exynos 9810 MPSoC 的峰值溫度閾值仍然分別為70℃和90℃.由圖16 可知,本文提出的動態(tài)算法執(zhí)行6 個基準應(yīng)用時,均未超過硬件平臺設(shè)定的峰值溫度閾值.相反,基準算法LCF 和EEMR 都超過了硬件平臺設(shè)定的峰值溫度閾值.圖17 比較了本文提出的動態(tài)算法和基準算法LCF、基準算法EEMR 取得的系統(tǒng)使用壽命.在這組對比實驗中,Hardkernel Odroid-XU3 和Exynos 9810 MPSoC 的使用壽命需求仍然分別設(shè)置為16 年和18 年.由圖17 可知,本文提出的動態(tài)算法在執(zhí)行6 個基準應(yīng)用時,始終沒有違背系統(tǒng)使用壽命約束,而基準算法LCF 和EEMR 均不能滿足使用壽命需求.

Fig.16 Peak temperature of processor cores achieved by dynamic algorithms圖 16 動態(tài)算法實現(xiàn)的處理器核心峰值溫度

Fig.17 Lifetime achieved by dynamic algorithms圖 17 動態(tài)算法實現(xiàn)的使用壽命
圖18 比較了本文提出的動態(tài)算法和基準算法LCF、基準算法EEMR 生成任務(wù)調(diào)度表的運行時間.從圖18 看出,本文提出的動態(tài)算法可以降低生成任務(wù)調(diào)度表的運行時間.例如,當運行在Hardkernel Odroid-XU3 平臺時,本文提出的動態(tài)算法與基準算法LCF 和EEMR 相比,運行時間分別降低了23.47%和30.92%;當運行在Exynos 9810 MPSoC 時,本文提出的動態(tài)算法與LCF 和EEMR 相比,運行時間分別降低了24.71%和32.63%.

Fig.18 Runtime overheads of dynamic algorithms圖 18 動態(tài)算法的運行時間開銷
本文提出了一種使用壽命驅(qū)動的調(diào)度方法,以最小化OpenCL 應(yīng)用在CPU-GPU MPSoC 執(zhí)行的延遲.該方法包括靜態(tài)調(diào)度技術(shù)和動態(tài)調(diào)度技術(shù),靜態(tài)調(diào)度技術(shù)利用了交叉熵策略,動態(tài)調(diào)度技術(shù)利用了反饋控制策略.實驗結(jié)果表明,本文提出的方法在滿足所有約束的前提下,有效地降低了OpenCL 應(yīng)用的延遲.
作者貢獻聲明:曹坤負責研究方案設(shè)計、實驗驗證、初稿撰寫;龍賽琴負責算法分析和論文修改;李哲濤提出指導(dǎo)意見,參與方案討論以及論文審閱.