?

適用于S-NUCA 異構處理器的任務調度與熱管理系統

2024-02-29 04:39周義濤李陽韓超趙玉來汪玲李建華
計算機工程 2024年2期
關鍵詞:子項線程異構

周義濤,李陽,韓超,趙玉來,汪玲,李建華,3*

(1.合肥工業大學計算機與信息學院,安徽 合肥 230601;2.安徽交通職業技術學院,安徽 合肥 230601;3.合肥工業大學情感計算與先進智能機器安徽省重點實驗室,安徽 合肥 230601)

0 引言

異構多核處理器集成了不同計算能力和微架構的核心,相比于普通同構多核處理器,具有高性能、低功耗、可定制化等優點[1]。例如聯發科的天璣9000 處理器,在CPU 架構上使用了“1+3+4”的三叢集架構,其中便包含了ARM 公司的Cortex-X2、Cortex-A710 與Cortex-A510 這3 種公版架構。

異構多核處理器的最后一級緩存(LLC)架構可采用均勻緩存架構(UCA)或非均勻緩存架構(NUCA)[2]。與UCA 不同,在NUCA 下,基于瓦片(Tile)結構的LLC 用片上網絡連接起來,這實現了不同核心之間的緩存訪問,擁有更低的緩存訪問延遲。因此,某個核心訪問某一片Tile 上的緩存延時與目標Tile 的位置有關。

隨著異構多核處理器處理核數量和規模的增加,線程映射問題與處理器熱安全問題逐漸凸顯。線程任務調度問題是指在多線程系統中如何分配和調度多個任務,使得系統的性能最優化。線程任務調度是一個NP-hard 問題[3]?,F有的線程映射方法大多使用靜態或動態啟發式算法[4-6],在進行任務調度時,不僅需要考慮對象任務的規模(任務的時間復雜度、空間復雜度),也要考慮現有資源的分配情況(片上空閑處理核的數量、任務與處理核的映射關系)。熱安全問題則是由于處理器性能在不斷增長時[7]高負載、高頻率和高電壓給芯片帶來的更高的功耗和散熱壓力。以上問題對一系列同樣采用異構多核架構的移動設備的散熱設計和電池容量提出了更高的要求。因此,需要對異構多核系統進行溫度約束,保證熱安全以提高系統穩定性。

機器學習算法可以通過學習大量歷史數據來擬合數據之間的關系,人工神經網絡(ANN)在計算機任務調度、資源分配等任務中逐漸發揮出巨大優勢[8]。目前,ANN 在異構多核系統中的應用呈上升趨勢,對比深度學習網絡(DLN)以及Deep Q-Network(DQN)等算法,ANN 具有輕量化、模型結構簡單、計算開銷低等優勢,更適合應用于實時操作系統以及線程調度等場景。目前,在異構多核系統上應用機器學習技術進行任務調度也有了相應研究,如文獻[9]所提出的動態調度方法,使用機器學習來將應用程序調度到各自最佳的核心,以減少具有可配置緩存系統的能耗。該文獻還提出一種動態調度方法,使用機器學習來預測最佳核心,并使用調優啟發式算法來確定非最佳核心上的最佳配置。如果最佳核心忙碌,調度器會考慮其他空閑核心,或者根據哪個決策更節能來暫停應用程序。

本文提出一種面向S-NUCA 異構多核處理器且基于ANN 的任務調度和動態熱管理解決方案,簡稱為TSCDM。通過ANN 進行性能預測,利用動態調整線程與核心的綁定關系來最大化系統性能,同時動態調整每個核心的功率預算,減少熱余量并防止暗硅效應產生[10]。本文的主要工作如下:

1)設計一種基于ANN 的性能預測器,通過預測每個線程在任意大核或小核上的每周期指令(IPC)值,在以IPC 值最大化為目標的前提下決策出任意線程與大核或小核的綁定關系。

2)提出一種線程動態映射算法,均衡活躍核心的可分配功率預算與緩存訪問延遲。根據S-NUCA架構的緩存訪問特性,算法優先將線程映射至靠近片上中心位置的核心,同時根據線程的算力與訪存需求動態地執行任務遷移策略。

3)提出一種滿足熱安全功率(TSP)的核心功率動態調整機制。根據基于瞬態溫度的安全功率(T-TSP)算法[11],由線程與核心的映射關系和當前核心的初始溫度計算出每個核心的瞬時熱安全功率值,保證系統的熱安全同時盡可能地提高系統性能,減少熱余量。

1 相關工作

本文為基于S-NUCA 架構的異構多核處理器設計線程調度算法,并應用熱管理框架為核心設定熱安全功率,通過應用DVFS(Dynamic Voltage and Frequency Scaling)設定保證芯片符合熱安全約束。

1.1 異構多核系統的調度問題

圖1 所示為一個操作系統內線程調度問題示意圖,在計算機操作系統內,調度器負責對準備就緒且待映射的線程與所需映射的目的CPUID 進行綁定。一個高性能的S-NUCA 異構多核系統集成了一定數量、不同處理性能的核心。由于不同的處理器核心具有不同的性能特點,因此如何合理地調度任務是一個關鍵問題。如果調度不當,就會導致性能下降,甚至會使得系統崩潰。

本文從線程調度的映射方法類型和決策特征兩方面對相關工作進行總結,如表1 所示。

表1 現有映射方法總結 Table 1 Summary of existing mapping methods

離線靜態調度是一種在編譯時進行調度的方法,通過對程序進行靜態分析來確定每個線程映射的最優映射核心,從而實現效率最大化。文獻[12]提出一種基于種群算法的靜態調度方法,能夠在探索性和開發性搜索模式之間進行動態切換,實現任務調度和DVFS 決策。文獻[13]使用遺傳算法(GA)提出一種群體智能任務調度策略,以提高異構多核處理器的性能,通過預先處理指定任務來檢測不同核心的計算能力,并引入自適應變異策略和注入策略來避免過早收斂和陷入局部最優解。

基于啟發式算法的在線動態調度是一種在程序運行時進行線程調度的方法,可以根據實時狀態來調整線程映射。文獻[14]提出一種動態線程映射的啟發式算法,該算法能夠根據線程的運行時行為,將其分配給最合適的核心類型。仿真結果顯示,該算法在256 核系統上的運行開銷不超過1 ms。文獻[15]提出一種改進的任務圖調度算法,該算法采用貪心策略,通過復制任務的前驅節點來減少調度時間和處理器空閑時間,同時提高了分布式計算的性能,且不會增加調度時間。文獻[16]設計一種并行感知調度算法,該算法計算各任務與終點之間的最長路徑值,按照該值的降序來分配任務調度的次序。采用該算法可以顯著降低任務調度的時延、減少通信量并提高處理器利用率。

離線和在線混合調度方式是一種融合離線和在線調度方式優點的線程調度方法,該方法通過利用離線分析數據來輔助動態啟發式算法進行線程調度的決策。文獻[17]提出一種名為HTM 的混合式調度方法,基于MPSoC 的嵌入式系統,通過捕捉應用的動態性來提高其性能。文獻[18]提出一種改進的混合粒子群和模擬退火優化算法iHPSA,該算法結合了改進的粒子群優化、NoC 映射的模擬退火算法和K-means 聚類算法,根據通信帶寬執行線程調度。

近年來,也有將機器學習引入任務調度的方法出現,通過收集大量線程運行的歷史數據訓練AI 模型,以輔助系統進行任務調度決策。這種方法的優點在于可以根據歷史數據和當前情況自動地決策出最優調度方案,相比傳統的調度算法,這種方法更加靈活和高效。文獻[19]通過引入與應用程序相關的性能和功率V/F 敏感度以及與核心相關的溫度敏感度來訓練神經網絡模型,可以準確估計待映射線程的性能和功率V/F 敏感度。

1.2 處理器熱量管理問題

為處理器設置熱安全功率是一種動態熱管理(DTM)策略,DTM 是指在處理器運行時調整其工作頻率和電壓,以控制處理器的溫度不超過人為設定的閾值,從而避免產生暗硅效應之類的熱安全問題。熱安全問題是指處理器運行時的溫度過高,可能會使處理器出現停止工作、運行緩慢或故障等問題。因此,確保處理器處于安全的溫度范圍內是異構多核系統穩定運行的必要條件。熱安全功率是指處理器在安全的溫度范圍內可以運行的最大功率[6],如果處理器的功率超過了熱安全功率,就有可能因過熱而產生暗硅效應。因此,需要通過實時調整處理器的工作頻率和電壓、優化線程與核心的綁定關系等方式,在不影響系統穩定性的前提下降低功率。監控處理器的溫度是實現處理器動態熱管理的關鍵,通常通過在處理器上安裝溫度傳感器來實現。溫度傳感器可以定期測量處理器的溫度,并將信息發送給DTM 相應的控制模塊,根據處理器的溫度和熱安全功率來決定是否需要調整處理器的工作頻率和電壓。

一般而言,處理器的工作頻率和電壓是相互影響的。在通常情況下,降低工作頻率和電壓會減少處理器的功率消耗,從而降低處理器的溫度。然而,降低工作頻率或電壓會對處理器的性能產生影響。因此,在調整工作頻率和電壓時,需要考慮性能和處理器溫度之間的平衡。此外,在實際應用中,處理器的熱安全功率也會受到許多因素的影響,包括處理器的類型、封裝、工作頻率、電壓、環境溫度、風扇速度等。因此,為了更好地控制處理器的溫度,需要對處理器的功率進行實時監測和調整。

隨著處理器片上功率密度的增加,限制處理器的功耗以避免暗硅效應的方案增多。文獻[20]提出一種用于異構平臺的能量溫度感知實時調度器,該調度器基于一個能量和溫度模型,根據任務的截止時間和功耗,動態地選擇合適的核心類型和頻率,以最大化系統能效。該調度器還考慮了核心之間的溫度依賴性,以避免過熱問題。文獻[21]研究使用U型并聯微通道冷卻系統對多核處理器進行熱管理的方法,通過數值模擬和實驗測試來分析流量、流速和熱流密度對微通道內壓降、溫度分布和熱阻的影響。文獻[22]提出一種應用于異構多核平臺的半分區調度算法HEAT,通過該算法有效地管理能量和溫度。HEAT 算法分為4 個階段,分別為截止時間劃分、任務到核分配、溫度感知調度、能量感知調度。HEAT算法能夠在滿足實時任務截止時間約束的同時最小化系統的能量消耗和溫度峰值。文獻[23]提出一種用于異構多核處理器的新型自適應DTM 框架,該框架為大核和小核制定基于溫度的遷移策略,在保證溫度不超標的同時能夠防止系統性能下降。

本文通過分析S-NUCA 緩存特性,利用離線和在線混合調度的方式設計動態映射策略,并構建片上熱模型,結合片上初始溫度,為每個核心實時分配精確的熱安全功率,在符合熱安全約束的前提下盡可能地提升系統性能和能耗比。

2 熱安全約束下的動態映射方法

本文研究對象為基于S-NUCA 并具備大小核設置的異構多核系統。圖2 所示為本文所提TSCDM方案的主要架構,其由基于ANN 的性能預測器、映射器、T-TSP 熱安全框架和階段檢測器構成。

圖2 TSCDM 整體框架Fig.2 Overall framework of TSCDM

2.1 階段檢測器

TSCDM 中設計一個階段檢測器以確定線程重映射的起始點。一個線程在其生命周期內可能經過很多個階段,在不同的階段所呈現的線程特征也不同,因此,某個核心在運行某個線程時,IPC 值也會隨著階段的改變而呈現明顯的變化,如圖3 所示。

圖3 線程階段變化示意圖Fig.3 Schematic diagram of thread stage changes

由于IPC 值直觀地反映了系統的性能表現,因此需要對線程所處的不同生命周期階段進行檢測,若某個線程的IPC 值出現大幅度改變,則可以認定該線程的生命周期階段發生了變化。在這種情況下,本文系統會觸發一次重映射,即第2.2.4 節中的線程-核心類型匹配以及第2.3.2 節中的線程與具體核心映射。

TSCDM計算任意核心在t時刻的IPC值和(t-Δt,t)時間內的平均IPC 值,若當前t時刻的IPC 值與平均IPC 值出現較大幅度的變化,即可認定該線程的階段發生了改變。參考文獻[24]對不同變化閾值下檢測效果進行的研究和總結,本文所使用的幅度定義為50%,時間片Δt設定為2 ms。若滿足|IPC(t) -IPCsum(t-Δt,t)| >IPCsum(t-Δt,t) ×0.5,則說明t時刻的線程階段發生了改變,從而觸發重映射。

2.2 基于ANN 的性能預測器

本文將線程調度問題定義為:將n個線程(表示為Thread=thread1,thread2,…,threadn)映 射到H×K(核心呈2D 網格排布,共H行、K列,其中1/2 為大核心,1/2 為小核心)的多核平臺上執行,并使整個平臺的計算性能最大化。其中,每個核心均有可調且獨立的DVFS 策略。

在傳統方法中[3],無法判斷即將在處理核上處理的線程特征,因此,本文使用ANN 來預測某一個線程在大核和小核上的性能,在綁定階段使所有核心的總預測IPC 值最大化,從而獲得最優的線程與核心類型綁定方案。

2.2.1 ANN 參數選擇

在TSCDM 中,ANN 會收集與性能相關的數據[25]以供訓練?;趯μ幚砥脚_的所有可選監測參數和具體參數的分析,本文選擇與IPC 相關的參數,包括一級緩存命中率、二級緩存命中率、三級緩存命中率以及6 種與程序行為變化相關的參數,即浮點加法、減法、乘法、除法、跳轉指令和讀寫內存指令[26-27]。這些參數與處理器性能直接相關,可以提供更準確的預測精度。

2.2.2 數據集構建與預處理

本文使 用HotSniper 模擬器[28],通過運 行HotSniper 中自帶的SPLASH-2 基準測試程序并實時采集上文提及的參數,將它們保存為原始數據集。為了量化所有獲取到的數據,同時平衡各種數據在單位和數量級上的關系,本文對獲取到的數據集進行如下預處理:

1)將所有緩存命中率進行Z-Score 歸一化處理[29]。

2)將CPU 指令相關參數轉為該指令占所有指令的比值。

2.2.3 ANN 模型構建

針對ANN 網絡模型參數,本文選擇第2.2.1 節中的10 個與核心性能有關的參數,因此,神經網絡的輸入節點個數為10,每個隱藏層節點個數為25,隱藏層個數為2,輸出節點個數為1(輸出IPC 值),并使用ReLU 函數作為ANN 的激活函數,利用均方誤差(MSE)損失函數對ANN 性能預測器進行訓練。

2.2.4 線程與核心類型匹配

通過由ANN 得到的線程性能預測數據,可以得到線程與核心類型的最佳綁定方案。假設某一時刻待映射的線程數為N,通過ANN 即可得到所有線程在大核心和小核心上的性能表現集合,即:

由此可以得到2N個IPC 值,將這些數據進行排序,取IPC 值最大的N個結果,取每個元素的下標bigi或smallj,即可得到映射:線程X(序號為i或j的線程)→核心類型(big 或small)。

2.3 線程與核心映射方案以及任務遷移策略

在確定了線程與核心類型的綁定關系后,TSCDM 使用一種動態調度算法,綜合考慮S-NUCA架構下活躍核心的平均曼哈頓距離(AMD)對緩存訪問性能和功率預算的影響,得到線程對應的最佳映射位置。同時使用任務分類器自動感知計算密集型任務,使用任務遷移策略將其映射至AMD 值較大的核心。

2.3.1 核心AMD 的影響

在S-NUCA 架構中,線程所映射的核心空間位置會影響對應的核心緩存訪問性能。圖4 是一個S-NUCA 模型架構,每個核心都獨享最后一級緩存(LLC)。某個線程訪問所有內核上的LLC 的可能性相同,且與線程綁定的核心位置無關。LLC 的訪問延遲與線程核心所處的位置和LLC bank 之間的跳數有關,可以使用曼哈頓距離進行衡量:d(a,b)=sum(ai-bi)。與所有核心相比,AMD 值較低的核心擁有更低的LLC 訪問延遲[15]??梢园l現,越靠近中心位置的核心擁有越低的AMD 值。

圖4 S-NUCA 架構Fig.4 S-NUCA architecture

鑒于以上特性,使用S-NUCA 架構的片上系統的線程與核心綁定分布之間會影響系統緩存訪問性能與分配的功率預算值。如圖5 所示,在同一個系統測試程序時,使用相同的DVFS 策略和不同的映射方式(不同的AMD 值),2 種方案呈現出了不同的平均IPC 值和分配的功率預算值。

圖5 AMD 對系統性能與TSP 的影響Fig.5 The impact of AMD on system performance and TSP

對測試結果進行分析可以發現,不同的測試子項(SPLASH-2 內的測試子項)有不同的特點[30],可分為計算密集型任務與訪存密集型任務。例如fft 對于AMD 的敏感程度大于fmm 子項,因此,對于fmm來說,它是一個訪存密集型任務,而對于fft 來說,它是一個計算密集型任務。在S-NUCA 多核系統中,當待映射的線程數一定時,較低的AMD 值會提高處理核心的IPC 值(核心之間緩存訪問性能提升),然而,較低的AMD 值會由于核心與核心之間的熱感受性以及片上系統的熱傳遞模型特性而導致核心可分配的功率預算值降低。

2.3.2 基于緩存特性的線程與核心動態映射策略

由于S-NUCA 架構下活躍核心的AMD 值會影響緩存訪問性能與活躍核心的功率預算,因此在進行線程映射時必須考慮核心在平面上的幾何位置。如算法1 所示,在進行線程與核心的綁定時,TSCDM使用一種基于緩存特性的線程與核心動態映射策略,盡可能保證所有線程優先綁定至AMD 值較小的核心,同時避免活躍核心出現相鄰的情況。

2.3.3 基于任務分類的任務遷移策略

TSCDM 應用一種自動感知的任務遷移策略。在第2.3.2 節中,TSCDM 將待映射線程映射至AMD值較小的空閑核心上,但如第2.3.1 節中所述,某些線程呈現出不同的特征,即分為訪存密集型與計算密集型任務。初始的動態映射策略保證了所有的線程都擁有相對較低的緩存訪問延遲,對于計算密集型任務,TSCDM 單獨識別并將其遷移至AMD 值較大的核心上,從而分配更高的熱安全功率以提升性能,降低系統的熱余量。

TSCDM 使用Roofline 算法為計算平臺的計算性能進行建模[31]。通過獲取計算平臺的算力上限π和帶寬上限β,從而得出計算平臺在單位內存交換下可以進行的最多浮點計算次數以 及模型的理論性能,表示計算平臺每秒能進行的浮點計算次數。當P=β·I(I<Imax)時,可以認為此時系統處于內存瓶頸。TSCDM 使用一個實時檢測任務分類的任務分類器,通過識別程序的Imax和核心的性能P,與機器的單核峰值性能進行對比,若識別到某個線程屬于計算密集型,則將其盡可能地遷移至靠近片上4 個角落的空閑核心。整個任務遷移策略流程如圖6 所示。

圖6 基于任務分類的任務遷移策略流程Fig.6 Procedure of task migration policy based on task classification

2.4 熱安全功率和DVFS 設定

TSCDM 的目標是為異構多核系統中的每一個核心尋找更加精確、動態細粒度的功率預算分配方法,以減少熱余量。處理器核心的性能與其工作頻率有關,所有的處理器核心都有其內置的工作頻率和電壓范圍,高頻率和高電壓會給芯片的散熱帶來很大壓力。傳統的功率預算方法直接為整個處理芯片設定整體熱設計功率(TDP),但是在異構多核處理器下,核心數量眾多,不同的核心有著不同的處理能力,不同核心在不同時刻的工作狀態差異過大,直接使用TDP 限制功率可能導致過多的熱余量,使得芯片無法發揮全部性能。在一般的DTM 方案中,人為設定了一個溫度閾值TDTM,即在片上系統中所有核心的最高溫度不應超過TDTM,以避免暗硅效應的出現。當核心溫度接近人為設定的警戒溫度閾值時,系統通過降低核心電壓與頻率,以降低核心溫度。因此,在熱安全功率系統下,多核系統的性能會受到影響,且分配的功率預算越低,系統的性能降低也會越多。

TSCDM 使用文獻[11]中的T-TSP 功率預算分配算法,可以基于每個核心的初始溫度和處理核之間的熱量傳遞模型在每個時刻為所有核心計算精確的功率預算。文獻[32]提出處理器的RC 熱網絡模型架構,如式(3)所示:

其中:矩陣A表示核心的熱電容;矩陣B為熱傳導參數;向量T為每個節點的溫度值;向量T′表示每個節點上的溫度對時間的一階導數;向量P為各節點的功耗;Tamb為環境溫度;列向量G為各節點與環境之間的熱導。該公式描述了片上的RC 熱網絡模型,由該模型可以得出所有核心的穩態溫度Tsteady。TSCDM 按照預設的溫度閾值TDTM為每個核心尋找最佳的DVFS 設定。核心的功率與核心的有效開關電容、電壓、頻率有關,可以用式(4)進行表示[33],在得到所有核心的功率預算分配后,利用式(4)在V-F表中獲取最佳的V-F 設置,以滿足熱安全功率的約束。

其中:Ceff表示有效開關電容;Vi、fi分別代表電壓和頻率。

3 實驗和結果分析

本文利用HotSniper 模擬器搭建一個基于S-NUCA 架構的異構多核實驗平臺,運行SPLASH-2測試套件,將本文方案與Linux 自帶的CFS 方案、模擬器自帶的first_unused 方案、文獻[34]提出的輪詢調度(RRS)方案、文獻[26]提出的基于機器學習的調度器(MLS)進行性能和功耗對比。RRS 是一種在每個調度周期輪流將線程分配給大核與小核的調度方式,而MLS 是一種基于機器學習預測模型的調度方案。

3.1 實驗方法

本文使用HotSniper 模擬器搭建一個8×16 的異構多核平臺,運行SPLASH-2 基準測試程序,以測試在不同策略下系統的性能,具體的平臺參數如表2所示。

表2 實驗平臺參數 Table 2 Experimental platform parameters

SPLASH-2 中包含了各種不同性能側重的測試子項,因此SPLASH-2 的不同子項也對算力和I/O 帶寬有著不同的需求。根據文獻[35],不同測試子項按照計算密集型與訪存密集型的劃分結果如表3所示。

表3 不同測試子項的特征 Table 3 Characteristics of different test sub items

TSCDM 會區分計算密集型與訪存密集型任務,因此,為了方便測試和評估性能以及盡可能提升本實驗對于真實使用環境的模擬程度,將不同的子項進行組合測試,盡可能讓不同的組合呈現不同的特征,具體的測試子項組合如表4 所示。

表4 實驗程序組合 Table 4 Experimental program combination

3.2 結果分析

3.2.1 ANN 預測性能評估

由于本文所研究的對象為基于S-NUCA 架構的異構多核系統,而大核與小核的性能無法橫向對比,ANN 需要預測某個線程分別在大核與小核上的性能,因此需要分開評估ANN 對于大核和小核的IPC預測準確度。

本次實驗利用第2.2.2 節中獲得的數據集,隨機選取80%作為訓練集,20%作為測試集,測試ANN對于大核和小核的IPC 性能預測值與真實值的均方誤差,均方誤差越低,說明ANN 對于數據的擬合程度越好,對于IPC 的預測值也越準確。實驗結果如圖7 所示,橫坐標表示進行均方誤差測試時輸入ANN 的數據所屬子項,縱坐標表示在某個測試子項下ANN 預測的IPC 值與真實值之間的均方誤差。由圖7 可以得到,ANN 性能預測器在radix 上的預測性能最好,在小核與大核上的誤差分別為0.12 與0.17,在volrend 上的效果最差,誤差分別為0.72 與0.79。這是由于在運行volrend 時,線程的階段切換過于頻繁,使得預測值無法對應下一階段的線程運行狀態,且在所有的應用中,ANN 性能預測器對于小核的IPC 預測值優于大核。同時,對于所有的測試子項,在小核與大核上的平均誤差分別為0.28 和0.32,表明本文的ANN 性能預測器可以較精確地預測線程IPC 值。

圖7 ANN 性能預測器均方誤差Fig.7 MSE of ANN performance predictor

3.2.2 熱安全約束下動態映射算法的性能評估

為了評估TSCDM 的性能,實驗對比CFS、first_unused、RRS 以及MLS 在運行不同測試子項組合下的性能表現,同時也對比了去除任務遷移算法對于模型性能的影響以及核心資源利用率。通過記錄運行不同程序組合所耗費的時間計算出加速比。實驗使用表2 中的參數配置,max_parallelism 參數均設置為8,并且使用相同的DVFS 策略。

圖8 給出了TSCDM 分別對比first_unused、Linux 的CFS、RRS、MLS 運 行SPLASH-2 的加速 比情況,其中橫坐標表示運行不同的SPLASH-2 程序組合(見表4),縱坐標代表TSCDM 相對上述4 種方案以及去除TSCDM 中的任務遷移策略的加速比。由圖8 數據可知,在所有的程序組合下,TSCDM 的性能均優于其他調度方案。其中,TSCDM 在對比RRS 調度方案時獲得了最高的加速比,為1.31,這是因為RRS 輪詢算法并未考慮程序運行過程中的階段性變化,也未考慮S-NUCA 架構的緩存特性。MLS 也是一種基于機器學習進行性能預測的調度方案,在調度階段使用一種遺傳算法(GA)進行映射方案搜索,因此也未考慮S-NUCA 架構特征,TSCDM 對比MLS 獲得了平均1.14 的加速比。對比去除任務遷移策略后的方案,TSCDM 獲得了平均1.05 的加速比,其中在程序組合2 中加速比最大,為1.08,但在程序組合7 下僅獲得1.03 的加速比,這是因為程序組合7 中所運行的測試子項更偏向于訪存密集型任務,因此在S-NUCA 架構下,對比去除任務遷移帶來的計算密集型功率預算,TSCDM 的優勢并不明顯。通過實驗可知,TSCDM的調度算法與任務遷移算法能有效提升S-NUCA 架構下的系統性能。

圖8 TSCDM 加速比測試結果Fig.8 TSCDM acceleration ratio test results

圖9 給出了TSCDM、CFS、first_unused、RRS和MLS 在核心資源利用率方面的對比結果。為了直觀地展示不同調度算法在核心資源利用率方面的區別,本文實驗平臺核心數量為128,而max_parallelism 參數設置為8,因此在統計核心資源利用率時,本部分實驗匯總使用的8 個核心在運行時的平均資源利用率,而不是整個片上的資源利用率。從圖9 可以看出,TSCDM 在組合6 中得到了最高的核心資源利用率,為98.5%,且7 個程序組合的平均資源利用率為91.9%。通過實驗結果可知,TSCDM 在所有的程序組合下核心資源利用率均優于對比方案。

圖9 核心資源利用率對比Fig.9 Core resource utilization comparison

3.2.3 T-TSP 評估

為了驗證與傳統TSP 方案相比,本文采用的TTSP 是否可以提供更加精確的熱安全功率,減少片上熱余量,使得處理器可以使用更高的DVFS 設定以提升性能,實驗使用表2 中的虛擬機平臺配置,分別設定DTM(即溫度閾值TDTM)為60 ℃、65 ℃、70 ℃,運行SPLASH-2 中的測試子項,max_parallelism 參數設置為8,以運行完所有測試子項所耗費的虛擬時間作為衡量,對比測試T-TSP 與傳統TSP 的性能,結果如圖10 所示,橫坐標代表不同的測試子項,縱坐標則是在特定子項下本文T-TSP 對比TSP 方案的加速比。由圖10 可知,T-TSP 在所有應用上的性能均優于TSP,且設定的溫度閾值越低,T-TSP 的加速比越高,在cholesky 中,T-TSP 對比TSP 獲得 的加速比 最大,為1.13。這是因為T-TSP 在低溫度閾值下可以充分發揮芯片的熱余量,相比TSP 可以使用更積極的DVFS 策略,而溫度閾值過高時,這一優勢會不明顯。本實驗說明在各種溫度閾值下,T-TSP 均可以大幅減少系統的熱余量以提高系統性能。

圖10 T-TSP 與TSP 對比結果Fig.10 Comparison results between T-TSP and TSP

3.2.4 調度方案與T-TSP 能耗比評估

能耗比代表單位功率下處理平臺的性能,對于某一固定的計算平臺,CPU 的性能會隨著主頻的提高而提升,但兩者不呈線性關系。然而,過高的主頻會導致芯片溫度過高從而觸發動態熱管理策略,不同的調度方案和功率預算策略為系統運行提供了不同的DVFS 設定,因此,系統的能耗比也會隨著不同的調度方案和DVFS 策略而改變。

為了驗證TSCDM 相比RRS 和MLS 所帶來的能耗比提升,本文使用表2 中的平臺配置,按照表5 中的數據鎖定不同的處理器最高主頻。由于RRS 與MLS 僅為映射方案,并未考慮DVFS 設定,因此本部分實驗RRS 與MLS 均使用HotSniper 模擬器默認使用的DVFS 方案。

表5 能效測試實驗配置 Table 5 Energy efficiency testing experimental configuration

為了對比不同頻率配置下的能效,本次實驗取序號6 的實驗配置,使用TSCDM 所得到的平臺功耗和性能作為對照(100%),其余實驗組均依次按照百分數折算。按照第3.2.2 節中的性能評估方法,實驗結果如圖11 所示,其中橫、縱坐標分別表示功耗和性能,圖中同一根曲線上的不同點分別表示表5 不同配置下測試得到的性能和功耗,例如TSCDM 上的6 個點分別表示使用表5 的6 種不同最高主頻而得到的功耗與性能,使用多項式擬合繪制出3 種調度方案的能效曲線。通過分析可知,圖中的曲線整體越靠近左上角說明能耗比越高,反之,曲線越靠近右下角說明能耗比越低。由圖11 可知,TSCDM 擁有比RRS 與MLS 更高的能耗比。在任意相同的功耗下,由于T-TSP 會盡量降低熱余量而使用更加激進的DVFS 方案,因此在每個主頻組別下TSCDM 均達到了最高的功率和性能。3 種方案在大核與小核均鎖定1.0 GHz 時能效區別最小,這是因為此時3 種調度方案都可以鎖定最高頻率而不觸發DTM,而TSCDM 由于在S-NUCA 上優化了緩存延遲,因此仍然獲得了更高的性能。此外,由于本文的調度算法和T-TSP 降低了系統的熱余量,因此在系統鎖定最高頻率時會呈現最高的功耗和性能。實驗結果表明,本文TSCDM 方案可以有效提升整體能耗比。

圖11 不同調度方案的能耗比對比Fig.11 Comparison of energy consumption ratios for different scheduling schemes

4 結束語

本文通過分析S-NUCA 架構下異構多核處理器的特點,提出一種基于ANN 和動態映射的調度算法TSCDM。使用ANN 來預測某一個線程在大核和小核上的IPC 值,通過使IPC 值最大化確定每個線程與大核或小核的綁定關系。利用動態映射算法優先將線程綁定至AMD 值較小的核心,再通過任務遷移策略自動判斷計算密集型任務,將其遷移至靠近片上邊緣的空閑核心,以提高功率預算結果。實驗結果表明,相比CFS、first_unused、RRS 輪詢調度與MLS調度方案,在運行不同的基準測試組合子項時,TSCDM 均能有效提升系統性能與能耗比,同時本文采用的T-TSP 方案相較傳統TSP 方案可以有效降低熱余量,提升系統性能。

下一步考慮將TSCDM 應用至實機中,以評估其在真實應用場景下的表現。此外,將對調度算法進行優化,以更好地應對多種計算密集型任務的運行情況,同時嘗試將本文所提調度算法應用到其他架構下的異構多核處理器中,以評估其通用性。

猜你喜歡
子項線程異構
試論同課異構之“同”與“異”
右擊桌面就能控制系統
異構醇醚在超濃縮洗衣液中的應用探索
淺談linux多線程協作
overlay SDN實現異構兼容的關鍵技術
LTE異構網技術與組網研究
淺析劃分子項不得相容與詞語意義的模糊性
基于上下文定界的Fork/Join并行性的并發程序可達性分析*
Linux線程實現技術研究
么移動中間件線程池并發機制優化改進
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合