亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        熱安全約束下異構(gòu)多核系統(tǒng)動態(tài)映射方法

        2021-09-18 06:22:14楊海嬌李建華任福繼
        計算機應(yīng)用 2021年9期
        關(guān)鍵詞:預(yù)測器線程異構(gòu)

        安 鑫,楊海嬌,李建華,任福繼

        (1.合肥工業(yè)大學(xué)計算機與信息學(xué)院,合肥 230601;2.情感計算與先進智能機器安徽省重點實驗室(合肥工業(yè)大學(xué)),合肥 230601)

        (*通信作者電子郵箱xin.an@hfut.edu.cn)

        0 引言

        異構(gòu)系統(tǒng)既使用簡單處理核(適合執(zhí)行存儲密集型任務(wù)的處理核)又使用復(fù)雜處理核(適合執(zhí)行計算密集型任務(wù)的處理核),使得系統(tǒng)設(shè)計時更加靈活,同時更利于功耗管理[1],不同的應(yīng)用可以根據(jù)自身需求選擇系統(tǒng)中不同類型的處理核進行處理,從而實現(xiàn)應(yīng)用程序的高效執(zhí)行,異構(gòu)多核逐漸成為現(xiàn)代嵌入式系統(tǒng)的主要架構(gòu)方式。但是隨著異構(gòu)多核處理器核心類型的多樣化,任務(wù)調(diào)度在異構(gòu)多核環(huán)境下也面臨更多的挑戰(zhàn)[2],需要充分考慮不同處理核間的差異性,同時針對應(yīng)用的特點進行分析,優(yōu)化系統(tǒng)的資源分配。例如,復(fù)雜核心以更高的頻率運行因此能夠提供更高的性能,但這是以高功耗為代價的,相比之下,復(fù)雜核心的功耗比簡單核心高很多。因此,區(qū)別于同構(gòu)系統(tǒng),異構(gòu)多核系統(tǒng)需要綜合考慮不同的核心類型在性能和功耗上的不同表現(xiàn)。在異構(gòu)多核系統(tǒng)中,不同類型的核在執(zhí)行不同的線程時的性能表現(xiàn)會有一定的差異性[3],此外,程序在不同的指令執(zhí)行階段也會有不同的表現(xiàn),并呈現(xiàn)出階段性變化的特點[4]。為了充分挖掘異構(gòu)多核系統(tǒng)的特點和優(yōu)勢,需要尋找一種映射方法,根據(jù)線程的階段性變化以及處理核的特點進行動態(tài)映射。

        隨著半導(dǎo)體技術(shù)的發(fā)展,單芯片上集成的核心數(shù)量隨之增加,使得現(xiàn)代多核處理器具有更高的功率密度。然而,功率密度的增加會導(dǎo)致片上溫度升高,高于臨界溫度會使得數(shù)字系統(tǒng)對瞬態(tài)故障的敏感性增加[5]甚至對芯片造成永久性損壞[6]。因此,在對異構(gòu)多核系統(tǒng)進行在線映射時,需要進行熱管理,將溫度影響一并考慮進去,以提高系統(tǒng)的可靠性及穩(wěn)定性。溫度約束(即熱安全約束)通過功率約束來實現(xiàn),目前,主流的系統(tǒng)級功率限制有兩種,熱設(shè)計功率(Thermal Design Power,TDP)和熱安全功率(Thermal Safe Power,TSP)[5]。其中TDP是芯片級的功率限制,表示整個芯片上的功率之和,但卻并不能保證所有核心都避免熱損壞[7]。而且TDP 是一個常量值,將TDP 作為系統(tǒng)的功率限制容易造成性能損失。而TSP 根據(jù)系統(tǒng)的溫度閾值以及芯片上處理核的數(shù)量和位置為每個核心計算一個統(tǒng)一的安全功率預(yù)算,當(dāng)線程到處理核的映射發(fā)生變化時,TSP 的計算結(jié)果也會隨之發(fā)生變化,并且只要每一個處理核的功耗不超過其TSP,系統(tǒng)就不會有熱損壞[8]。

        然而,現(xiàn)有的多核系統(tǒng)映射方法很少考慮核心級的功率限制,相關(guān)的研究方法主要分析線程和多核平臺特性以及運行時線程的執(zhí)行特征來考慮線程到核心類型的動態(tài)映射[9]以實現(xiàn)系統(tǒng)性能優(yōu)化。有些方法中同時考慮了動態(tài)電壓和頻率調(diào)整(Dynamic Voltage and Frequency Scaling,DVFS)設(shè)置,以進一步提高性能(能量)效率[10-11];但大多數(shù)DVFS方法的目的是降低能耗,同時滿足應(yīng)用程序性能要求,如參考文獻[9],而未檢查它們的DVFS 設(shè)置解決方案是否會超過峰值功率以及安全溫度限制。

        TSP 除了可以作為系統(tǒng)的安全功率限制進而避免出現(xiàn)熱安全問題外,還可以用來進行處理核映射的決策[8]。實際上,芯片上不同位置的處理核具有不同的熱感受性[12],例如功耗相同的兩個處理核,位于芯片中心的處理核會比芯片邊緣的處理核溫度更高,這是因為處于芯片中心的處理核得到的來自于其他處理核傳遞的熱量更多。TSP 模型可以根據(jù)映射方案計算安全功率值,即TSP 值。不同的映射方案對應(yīng)不同的TSP 值,因此可以對所有的映射方案計算TSP 值,最后選出TSP 值最大的映射方案作為最終方案。根據(jù)TSP 模型計算的TSP 值是能夠保障系統(tǒng)溫度安全的,所以最終利用TSP 決策出的映射方案是滿足熱安全前提下最大化系統(tǒng)性能的方案。

        本文提出了一種基于溫度安全功率約束的動態(tài)映射方法,在滿足安全功率的前提下最大化異構(gòu)多核系統(tǒng)的性能。給定若干個應(yīng)用線程和一個異構(gòu)多核平臺,在確保處理核運行時的溫度約束的前提下,通過動態(tài)地調(diào)整線程到處理核的映射以及處理核的功率(或頻率電壓)來達到最大化系統(tǒng)性能的目標。首先,采用基于神經(jīng)網(wǎng)絡(luò)的預(yù)測模型得到線程到核心類型的綁定。其次,利用線程到核心類型的綁定關(guān)系以及溫度安全功率模型,對線程到處理核的具體映射位置進行映射評估和選擇,為下一階段的映射方案和每個映射核心的安全功率(或DVFS)設(shè)置作出決策。在保障溫度安全的同時盡可能使每個核心以最大的處理頻率工作,從而進一步提升系統(tǒng)性能。

        本文的主要工作:

        1)提出一種動態(tài)映射方法,將線程分配到異構(gòu)多核平臺上確定的具體位置,而不是只考慮線程到核心類型的映射;

        2)在異構(gòu)多核系統(tǒng)的動態(tài)映射決策中同時考慮線程-核類型的綁定關(guān)系和溫度安全功率預(yù)算,保證溫度安全的前提下最大化系統(tǒng)性能。

        1 相關(guān)工作

        目前,針對異構(gòu)多核系統(tǒng)映射問題的方法和技術(shù)可以歸為三類:離線方法、在線方法以及混合(離線和在線)方法。

        離線方法基于底層硬件和目標應(yīng)用對設(shè)計空間進行廣泛探索[9],如文獻[13-15]。在文獻[13]中,作者針對運行在異構(gòu)多核平臺的混合臨界應(yīng)用提出了一種分區(qū)算法,一方面保證了應(yīng)用執(zhí)行時在不同模式的時間限制,另一方面利用功率模型將應(yīng)用盡量分配到使能耗最低的處理核上運行。文獻[14]中,基于遺傳算法,提出了一種雙種群且?guī)в性鰪娦统跏挤N群的任務(wù)映射算法,利用功率模型和其他靜態(tài)模型對系統(tǒng)的任務(wù)調(diào)度進行優(yōu)化。文獻[15]提出了一種靜態(tài)調(diào)度方法,這是一種新的基于種群的算法,它可以在運行時動態(tài)地在探索性和開發(fā)性搜索模式之間切換,該靜態(tài)調(diào)度器可以進行任務(wù)映射、調(diào)度和電壓縮放。以上的離線方法通常采用離線分析來確定映射方案,雖然簡單但是會產(chǎn)生額外的分析開銷,并且未充分考慮線程程序在執(zhí)行過程中的動態(tài)變化。

        而動態(tài)調(diào)度通常在運行時進行決策或動態(tài)的調(diào)整,由于計算都是在運行時進行的,這些方法的目的是在較短時間內(nèi)找到一個可行的方案,而不是花費大量的時間去尋找最優(yōu)的解決方案,因而這類方法大都采用啟發(fā)式算法來在線地快速產(chǎn)生解決方案[16]。例如,文獻[1]中提出了一種將線程動態(tài)分配給系統(tǒng)處理核的啟發(fā)式算法,以期達到使性能最大化的同時最小化能耗的目的,該算法采用迭代的方式,找到使系統(tǒng)吞吐量最大的線程間位置交換的方案,啟發(fā)式地計算出線程到核心的最佳映射方案,該方法可應(yīng)用于異構(gòu)以及具有DVFS能力的同構(gòu)系統(tǒng);但是該方法具有一定的時間開銷,并且并未考慮程序的階段性變化以及溫度安全問題。文獻[17]中提出了一種動態(tài)調(diào)度方法,它使用預(yù)測方法將應(yīng)用程序調(diào)度到最佳配置,以降低具有可配置緩存的系統(tǒng)的能耗,采用人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network,ANN)對預(yù)測模型進行訓(xùn)練。訓(xùn)練后的ANN 可以用來預(yù)測最佳的核心,并通過調(diào)優(yōu)啟發(fā)式方法探索設(shè)計空間。跟本文的方法比較,該方法未考慮溫度安全問題,并且需要對應(yīng)用進行額外的離線分析。

        離線和在線混合的方法利用離線分析的結(jié)果進行在線映射的決策,由于同時利用了離線方法和在線方法的優(yōu)勢,混合型方法通常能夠取得較好的效果。文獻[3]提出了一種基于階段感知的負載平衡方法,該方法考慮在線運行時任務(wù)的階段變化特征,對于任務(wù)的每個執(zhí)行階段,利用經(jīng)驗數(shù)據(jù)模型進行下一執(zhí)行階段狀態(tài)的預(yù)測,從而將任務(wù)調(diào)度到合適的處理核上,能有效提升系統(tǒng)性能。文獻[9]提出了一種自適應(yīng)的映射方法,首先是性能監(jiān)測計數(shù)器進行在線的數(shù)據(jù)收集,然后利用離線訓(xùn)練的性能預(yù)測模型對應(yīng)用在不同類型上的性能表現(xiàn)進行預(yù)測,最后進行資源組合(處理核數(shù)量及類型)的評估及選擇,此外,該方法還設(shè)置了資源管理器,用于監(jiān)測應(yīng)用性能、工作負載,以及應(yīng)用的完成及新應(yīng)用的到達情況,進而對映射進行調(diào)整。文獻[2]提出了一種基于機器學(xué)習(xí)預(yù)測模型的在線映射方法:一方面通過采用機器學(xué)習(xí)技術(shù)來構(gòu)造系統(tǒng)性能預(yù)測模型來對不同映射方案和每個核的頻率值進行高效的性能評估;另一方面,將其與遺傳算法進行整合構(gòu)造了一個在線的映射調(diào)度方法。文獻[2]中,預(yù)測模型僅有一個預(yù)測器,且模型的構(gòu)建更為簡單,預(yù)測器的輸入僅僅是處理核的映射位置及頻率,衡量映射效果的指標是任務(wù)執(zhí)行的時間;預(yù)測模型的原始數(shù)據(jù)集的獲取是通過模擬器隨機生成的。本文中的性能預(yù)測模型分別為兩類處理核訓(xùn)練性能預(yù)測器,并且通過對線程及處理核的特征進行分析結(jié)合優(yōu)化目標對預(yù)測器的輸入和輸出進行了篩選;預(yù)測器原始數(shù)據(jù)集是通過在標準測試集上運行選取的應(yīng)用(barnes、cholesky、fft、fmm、lu、ocean、volread、radix、raytrace、radiosity)得到的。文獻[18]提出了一種基于階段檢測的異構(gòu)感知的多核調(diào)度方法,利用階段檢測技術(shù),當(dāng)線程相對于上一階段的變化大于一定的閾值時,根據(jù)性能預(yù)測器的預(yù)測結(jié)果對系統(tǒng)進行重調(diào)度。該方法只考慮一大核三小核的簡單異構(gòu)多核系統(tǒng)中線程到處理核類型的映射,而本文中是在兩大核四小核的更復(fù)雜的異構(gòu)多核系統(tǒng)中將線程分配到異構(gòu)多核平臺上確定的具體位置。最主要的是,以上文獻所提方法中均未考慮到當(dāng)前學(xué)者們普遍關(guān)注的熱安全問題,然而隨著半導(dǎo)體技術(shù)的發(fā)展,單芯片上集成的處理核數(shù)量逐漸增加,現(xiàn)代處理器具有更高的功率密度,熱安全問題逐漸引起相關(guān)研究者的重視。

        文獻[7]中利用熱安全功率模型計算功率限制,然后利用映射算法進行映射方法的選擇,由于不用再考慮核心間的熱量傳遞進而縮小了映射空間的探索。該方法在保證系統(tǒng)溫度安全的前提下,用功率約束來減小映射方案的探索空間,最終用系統(tǒng)吞吐量來評估映射方案。文獻[6]中提出了一種運行時任務(wù)遷移算法,根據(jù)任務(wù)的階段和處理核的特點遷移任務(wù)來提高異構(gòu)多核系統(tǒng)的性能。利用性能預(yù)測模型得到滿足溫度安全約束的最大化系統(tǒng)性能的映射方案,通過溫度安全功率模型計算處理核的功率預(yù)算,將功率預(yù)算加入到性能預(yù)測器的特征集中,從而使映射方案滿足溫度安全約束的同時最大化系統(tǒng)性能。文獻[6-7]方法均只考慮了線程到處理核類型的映射,而本文方法先利用性能預(yù)測模型進行線程到處理核類型的映射,接著利用溫度安全功率約束,在滿足線程到處理核類型的匹配關(guān)系的前提下,進一步將線程映射到芯片上的處理核的具體位置上。

        綜上,本文在綜合考慮線程的運行特點和不同類型處理核的優(yōu)勢后,利用離線和在線混合的動態(tài)映射方法,在溫度安全功率約束下進行映射,在保證溫度安全的前提下最大化異構(gòu)多核系統(tǒng)的性能。

        2 熱安全約束下異構(gòu)感知的動態(tài)映射方法

        本文中的系統(tǒng)性能通過平均每個時鐘周期內(nèi)程序所執(zhí)行的指令數(shù),即指令/周期(Instruction Per Cycle,IPC)來表征。一般情況下,多核映射問題都采用一個線程映射到一個處理核的模式[6],本文也采用這種模式。在對本文方法進行詳細描述時,為了便于對方法的理解,假設(shè)本文的異構(gòu)多核平臺由大核和小核兩類處理核組成,其中大核表示適合運行計算密集型線程的處理核,小核表示適合運行存儲密集型線程的處理核,其他更加復(fù)雜的處理核類型組成可以采用類似的處理方法。圖1 給出了該方法的整體框架,主要由基于ANN 的性能預(yù)測器(詳見2.1節(jié))、用于線程到核心類型綁定的線程-核心類型匹配部件(詳見2.2 節(jié))和熱安全映射計算部件(詳見2.3節(jié))三部分構(gòu)成。本文方法具體工作分為四個階段:

        圖1 本文方法的整體框架Fig.1 Overall framework of proposed method

        1)在每個系統(tǒng)調(diào)度周期收集異構(gòu)多核平臺上所運行的各個處理核和線程的運行信息(如IPC 值與程序行為變化相關(guān)的參數(shù)等),根據(jù)相關(guān)信息判斷是否需要進行重映射。

        2)性能預(yù)測器根據(jù)線程的運行信息來預(yù)測線程在不同類型處理核上的性能。

        3)線程-核心類型匹配部件根據(jù)性能預(yù)測器得出的各個線程在不同核心類型上的性能預(yù)測值,來決定當(dāng)前時刻最優(yōu)的匹配方案,即線程與處理核類型的最優(yōu)映射關(guān)系,完成線程到核心類型的綁定。

        4)在確定線程與處理核類型的綁定后,熱安全映射計算部件對線程到處理核的具體映射位置進行映射評估和選擇。通過在映射計算中考慮線程與處理核的匹配關(guān)系以及TSP的計算,確保處理核運行時不會達到其溫度約束前提下最大化異構(gòu)多核系統(tǒng)的處理性能。核心的最大電壓和頻率可根據(jù)安全功率預(yù)算進行相應(yīng)的設(shè)置。

        完成以上四個階段后,映射器進行映射方案的部署和電壓頻率設(shè)置。

        2.1 性能預(yù)測器

        為了找到一個最佳的映射方案以實現(xiàn)系統(tǒng)性能最大化的目標,需要對不同的資源分配方式進行評估。本文利用性能預(yù)測器對線程在不同類型處理核上的IPC 進行預(yù)測,由此得出對不同的映射方案的效果的預(yù)測,進而選出符合預(yù)期目標的方案。本文中分別為大核和小核構(gòu)建性能預(yù)測器,其輸入是經(jīng)過選取和處理的特征值集合,包括線程和處理核相關(guān)的信息,輸出是表征本文最大化性能目標的IPC。

        為了在異構(gòu)多核系統(tǒng)中合理分配資源以滿足應(yīng)用程序的性能要求,需要知道應(yīng)用程序在各種類型處理核上的性能表現(xiàn)[9]。通常有兩種方式:一種是將線程在所有處理核類型上運行;另一種是只在其中一種處理核類型上運行而通過利用其運行結(jié)果預(yù)測該線程在其他類型處理核上運行的性能表現(xiàn)。很顯然,第一種方式中,在切換處理核類型時需要進行線程的遷移,進而帶來遷移的時間開銷,并且隨著系統(tǒng)復(fù)雜度(處理核數(shù)量及類型)的增加,遷移代價也會隨之大幅增加,不利于在線映射方法中應(yīng)用。本文中使用后一種方法,即線程在其中一種處理核類型上運行,由該運行結(jié)果獲取的相關(guān)參數(shù)作為其他類型處理核的性能預(yù)測器的輸入,預(yù)測該線程在其他類型處理核上的性能表現(xiàn)。相對于根據(jù)線程在同一種類型核上運行的參數(shù)來預(yù)測其運行效果,采用線程在另一個核上的運行參數(shù)來預(yù)測其在該核的運行效果會有更大的誤差,但是由于在運行時,想要得到某線程在另一個核上的運行參數(shù),需要將其遷移到另一個核上運行來獲得,這會大幅度增加在線的運行開銷。而通過對不同核上的數(shù)據(jù)進行標準化處理后得到的模型誤差損失相對于這個在線遷移的開銷是可以接受的,因此,在本文的在線映射方法中選擇了后者。

        構(gòu)建一個性能預(yù)測模型,關(guān)鍵有三步:1)選取和性能相關(guān)的指標或參數(shù);2)特征數(shù)據(jù)的獲取與預(yù)處理;3)預(yù)測函數(shù)的選擇。

        2.1.1 參數(shù)選擇

        為了提高性能預(yù)測模型的預(yù)測準確度,對于模型的輸入?yún)?shù)或指標的選取應(yīng)當(dāng)與本文的目標輸出IPC、線程的行為以及處理核密切相關(guān)。現(xiàn)代處理器支持對各種架構(gòu)事件的監(jiān)控,可用于分析性能、功率等。然而,由于平臺提供的硬件性能監(jiān)控計數(shù)器數(shù)量有限,并不是所有性能指標都可以同時監(jiān)測[9]。此外,在進行參數(shù)的選擇時還要考慮在線映射時的高效性?;谝陨系姆治鲆约皡⒖嘉墨I[19-20]中的信息,本文從18 種參數(shù)中選取了和IPC 值關(guān)系較密切的9 個指標來構(gòu)建ANN 性能預(yù)測器。這9個指標包括與緩存命中率相關(guān)的三個參數(shù):一級數(shù)據(jù)緩存(Level 1 Data Cache,L1-D Cache)命中缺失率,二級緩存(Level 2 Cache,L2 Cache)命中缺失率和三級緩存(Level 3 Cache,L3 Cache)命中缺失率,以及與程序行為變化相關(guān)的六個參數(shù):讀內(nèi)存指令、寫內(nèi)存指令、浮點加法指令、浮點減法指令、浮點乘法指令和浮點除法指令。

        2.1.2 數(shù)據(jù)獲取與預(yù)處理

        本文使用Sniper工具來獲取用于訓(xùn)練大核和小核ANN性能預(yù)測器的兩個數(shù)據(jù)集。通過執(zhí)行SPLASH-2[21]中的所有應(yīng)用,收集每個周期的相關(guān)輸入?yún)?shù)和輸出標簽等數(shù)據(jù),以此來獲得原始數(shù)據(jù)集。

        本文中,利用線程在一種類型處理核上的運行信息作為性能預(yù)測器的輸入?yún)?shù),來預(yù)測該線程在其他類型處理核上的性能表現(xiàn),線程在不同類型的處理核上執(zhí)行時,指令條數(shù)會有數(shù)量級的差別,因此,作為輸入?yún)?shù)的數(shù)據(jù)需要具有通用性,在大核上運行線程得到的數(shù)據(jù)需要經(jīng)過處理才能作為小核性能預(yù)測器的輸入,反之亦然。此外,不同指標往往具有不同的量綱和量綱單位,這樣的情況會影響到數(shù)據(jù)分析的結(jié)果,為了消除指標之間的量綱影響,需要進行數(shù)據(jù)標準化處理,以實現(xiàn)數(shù)據(jù)指標之間的可比性。原始數(shù)據(jù)經(jīng)過數(shù)據(jù)標準化處理后,各指標處于同一數(shù)量級,適合進行綜合對比評價。因此本文對收集到的原始數(shù)據(jù)作了以下處理:

        1)針對上文提到的大核性能預(yù)測器和小核性能預(yù)測器指令條數(shù)的數(shù)量級差別問題,本文用比例(某類指令條數(shù)/指令總條數(shù))來表示指令的執(zhí)行情況。

        2)對所有參數(shù)進行數(shù)據(jù)歸一化,本文用Min-Max 歸一化(見式(1)),將特征縮放到最小和最大值之間的給定范圍規(guī)范化特征,保證特征之間可以比較,減少溢出錯誤的可能。

        其中:a表示需要縮放的范圍的最小值;b表示需要縮放的范圍的最大值;Xmin表示樣本數(shù)據(jù)最小值;Xmax表示樣本數(shù)據(jù)的最大值。

        2.1.3 預(yù)測函數(shù)

        本文希望找到一個能表征輸入變量和輸出變量之間關(guān)系的預(yù)測函數(shù),根據(jù)參考文獻[19],ANN 可以通過定期提供新的數(shù)據(jù)樣本來保持動態(tài)學(xué)習(xí)(通常稱為在線學(xué)習(xí))。此外,ANN 具有高速尋找優(yōu)化解的能力。因此,ANN 適合應(yīng)用于本文的在線的快速預(yù)測模型中??紤]到多核映射問題的復(fù)雜性較大,本文最終使用了帶有一個隱藏層的三層的神經(jīng)網(wǎng)絡(luò)來構(gòu)建ANN性能預(yù)測器。

        ANN 的輸入層由9 個神經(jīng)元節(jié)點組成,用來接收9 個輸入?yún)?shù)。隱層節(jié)點數(shù)目對神經(jīng)網(wǎng)絡(luò)的性能有一定的影響。隱層節(jié)點數(shù)過少時,學(xué)習(xí)的容量有限,不足以存儲訓(xùn)練樣本中蘊涵的所有規(guī)律;隱層節(jié)點過多不僅會增加網(wǎng)絡(luò)訓(xùn)練時間,而且會將樣本中非規(guī)律性的內(nèi)容(如干擾和噪聲)存儲進去,反而降低泛化能力,導(dǎo)致過擬合現(xiàn)象的出現(xiàn)。本文參考文獻[22]中所提出的經(jīng)驗公式:2n+m,來確立隱藏層節(jié)點的個數(shù),其中n為輸入節(jié)點的數(shù)量(本文中輸入節(jié)點個數(shù)為9),m為0~10的正整數(shù),在對m的數(shù)值進一步進行實驗分析后,選擇使ANN性能預(yù)測器在訓(xùn)練集上獲得最好效果的m值(即5),因此最終本文選擇的隱藏層節(jié)點個數(shù)為23。隱藏層的每個神經(jīng)元節(jié)點會接收所有的輸入節(jié)點結(jié)果,在對其完成計算后通過激活函數(shù)傳遞到輸出層。輸出層利用所有隱藏神經(jīng)元節(jié)點的計算結(jié)果得到最后的輸出值(IPC)。

        本文使用Maxout函數(shù)作為ANN 的激活函數(shù),Maxout的擬合能力非常強大,并且計算量較小,不含有指數(shù)等復(fù)雜的運算。因此,使用Maxout 在降低系統(tǒng)調(diào)度過程中的預(yù)測開銷具有顯著的效果,這對于在線調(diào)度方法來說是至關(guān)重要的。同時,Maxout函數(shù)在訓(xùn)練過程中也可以有效避免梯度飽和問題,防止訓(xùn)練失敗的情況出現(xiàn)。ANN 的結(jié)構(gòu)如圖2 所示,其中:W即Weight,表示權(quán)重;b即bias,表示偏置)。

        圖2 ANN的結(jié)構(gòu)Fig.2 ANN structure

        ANN 性能預(yù)測器屬于機器學(xué)習(xí)中的回歸模型,因此本文使用回歸模型常用的均方誤差(Mean Squared Error,MSE)損失函數(shù)來對ANN 性能預(yù)測器進行訓(xùn)練。使用MSE 函數(shù)訓(xùn)練ANN性能預(yù)測器時,整個ANN的梯度會隨MSE值的增大而增大,而MSE值趨于0時網(wǎng)絡(luò)的梯度則會減小,因此采用固定的學(xué)習(xí)率即可保證整個網(wǎng)絡(luò)可以有效的收斂,并在訓(xùn)練結(jié)束時取得良好的預(yù)測效果。一般常用的學(xué)習(xí)率有0.000 01、0.000 1、0.001、0.003、0.01、0.03、0.1、0.3、1、3、10,本文中通過基于經(jīng)驗的手動調(diào)整的方式,嘗試以上不同的固定學(xué)習(xí)率,觀察ANN 模型迭代次數(shù)和損失值的變化關(guān)系,找到損失值下降最快關(guān)系對應(yīng)的學(xué)習(xí)率為0.001,所以本文將學(xué)習(xí)率設(shè)置為固定的0.001。

        2.2 線程-核類型匹配

        對于每個線程,通過性能預(yù)測器得到了在不同類型處理核上運行時的性能預(yù)測IPC 值,而本文希望得到的是線程到核心的映射關(guān)系,使得異構(gòu)多核系統(tǒng)的整體性能最大化,因此本文設(shè)計了一個核類型匹配部件來找出線程與處理核類型的最優(yōu)匹配,使得總的IPC值最大化。

        該部件的主要功能是利用ANN 性能預(yù)測器給出的各個線程在不同類型處理核上的性能(假設(shè)有大核和小核兩種類型處理核,則對應(yīng)IPCbig、IPCsmal)l來對所有可行的匹配方案進行評估,找出使所有線程總的IPC,即IPCsum最大的匹配方案。假設(shè)異構(gòu)多核平臺需要映射的線程數(shù)量為M,其中N個需要映射到大核上,其余M-N個線程映射到小核上。核類型匹配部件每次選擇N個線程的IPCbig和其余M-N個線程的IPCsmall相加得到本次匹配的IPCsum,完成對所有可行匹配方案的探索,并將值最大的匹配方案輸出給下一步的熱安全映射計算部件。

        具體來說,假設(shè)有大核和小核兩種核心類型,大核數(shù)量為N,線程數(shù)為M,性能預(yù)測器給出的結(jié)果是每個線程在大核心上的值以及在小核心上的值。如此,由性能預(yù)測器便能得到所有線程在大核心上的性能表現(xiàn)集合和所有線程在小核心上的性能表現(xiàn)集合,即:

        核類型匹配部件需要從IPCbig_i集合中選出N個元素;再從IPCsmall_j集合中選出M-N個元素,且j≠i;計算選出的元素的和,記為SUM,將當(dāng)前最大的值記錄到SUMmax中。重復(fù)進行,直到所有組合都計算完畢,找到對應(yīng)的線程到處理核類型的匹配。

        2.3 熱安全映射計算

        一般來說,當(dāng)處理核在較高的電壓-頻率(Voltage-Frequency,V-F)級執(zhí)行時,為了實現(xiàn)系統(tǒng)的高性能就要以功耗為代價[8]。因此,為了進一步提高系統(tǒng)性能,一旦處理核上運行的線程確定以后,為了進一步提高性能,需要有盡可能高的V-F 設(shè)置。然而,V-F 的升高會導(dǎo)致功耗問題,進而造成熱安全問題。因此,功率預(yù)算技術(shù)(如TSP),為系統(tǒng)提供一個安全的功率限制,當(dāng)利用DVFS 調(diào)整V-F 來最大化性能時,確保功率與安全的功率預(yù)算接近而不超過它。

        假設(shè)Q是滿足線程-核心類型綁定的映射集:對于映射集中的每個映射Qi,TSP(Q)i表示所有核心的功率預(yù)算。為了最大化性能,本文需要找到使TSP 最大的映射方案,然后V-F 級別可根據(jù)功率預(yù)算進行調(diào)整。

        在本文的方法中,找到合適的功率預(yù)算是很重要的一步。如果處理核配備了功率表,則可以通過測量每個處理核的實際功率并采取相應(yīng)的措施來避免熱安全問題。但是,在硬件條件不足的情況下,也可以利用離線應(yīng)用程序分析或通過性能計數(shù)器進行運行時功率估計,將核心設(shè)置與功耗值關(guān)聯(lián)。本文使用參考文獻[8]中的功率預(yù)算技術(shù),為每個處理核計算統(tǒng)一的安全功率預(yù)算。

        處于芯片中不同位置的處理核具有不同的熱感受性[12]。對于同一類型的處理核,線程不同的映射位置也會帶來不同的映射效果,例如某一線程T適合的處理核類型為大核,而芯片中有兩個大核,對應(yīng)兩個不同的位置,此時對于線程T來說就有兩種位置的選擇。因此,在知道線程的適配處理核類型后,還需要對線程的具體映射位置進行探索。對于不同的映射方案,同時考慮前文工作中的線程和處理核類型的綁定以及功率預(yù)算限制,最終決策出最佳的映射方案。由于本文使用的處理核數(shù)量較少,可以通過遍歷的方法對所有可行的映射方案進行探索,當(dāng)處理核數(shù)量較大時,可通過啟發(fā)式的算法對探索空間進行簡化。具體偽代碼如算法1所示。

        本文中利用DVFS 來對系統(tǒng)中處理核的電壓和頻率進行調(diào)節(jié),而DVFS調(diào)節(jié)時需要提前為其提供V-F等級表(由電壓-頻率對組成的表格),當(dāng)系統(tǒng)需要進行電壓和頻率的調(diào)整時則根據(jù)該表進行調(diào)節(jié)。因此,本文在得到每個處理核的安全功率后,進一步探索了電壓和頻率的設(shè)置。利用文獻[23]中的功率計算模型(見式(2)),根據(jù)本文的硬件平臺的可用頻率范圍,利用文獻[24]中電壓和頻率的最佳對應(yīng)表,找到可用頻率對應(yīng)的電壓,根據(jù)式(2)計算每一組V-F 對的相應(yīng)功率,再結(jié)合熱安全功率約束選出功率不超過熱安全功率的V-F 對構(gòu)成V-F 等級表,為DVFS 提供科學(xué)的V-F 等級表,使得DVFS 在提高系統(tǒng)性能的同時避免造成熱安全問題。

        其中:Ceff代表有效開關(guān)電容;Vi和fi分別代表電壓和頻率。

        3 實驗評估

        為了驗證本文提出的熱安全約束下異構(gòu)多核感知的動態(tài)映射方法,本文基于Sniper模擬器搭建了一個異構(gòu)多核平臺,通過不同的程序組合來模擬現(xiàn)實世界中不同的應(yīng)用行為。此外,將本文方法與常見的輪詢調(diào)度(Round Robin Scheduler,RRS)[25]進行對比。

        3.1 實驗設(shè)置

        在本次實驗中,本文基于Sniper搭建了一個2大核-4小核的異構(gòu)多核平臺。大核和小核的指令集架構(gòu)均基于Intel Nehalem x86 架構(gòu),且處理核的主頻均為2.66 GHz,發(fā)射寬度均為4,兩種類型的處理核具有相同的緩存架構(gòu)(其中L1 Cache 為256 KB,L2 Cache 為512 KB,共享的L3 Cache 大小設(shè)置為8 MB)。但是大核擁有128 的指令窗口大小和長度為48的讀取隊列,而小核的指令窗口大小為16,讀取隊列長度為6。頻率調(diào)節(jié)的步長為0.20 GHz,對于每個頻率,電壓的設(shè)置參照文獻[24]。

        從常用的基準套件SPLASH-2 中獲得應(yīng)用:barnes、cholesky、fft、fmm、lu、ocean、volread、radix、raytrace、radiosity。用不同的執(zhí)行場景如單個應(yīng)用程序、多個應(yīng)用程序的并發(fā)執(zhí)行,來模仿現(xiàn)實世界的各種行為。為了對本文方法進行全面的評估,本文將SPLASH-2 基準測試集進行了分組,每組包含4 種程序,分組的原則是讓每種組合里盡量同時擁有MSE 較低和MSE 值較高的程序,具體分組見表1,并通過進行多組實驗來盡可能充分地模擬真實環(huán)境下的復(fù)雜調(diào)度場景。

        表1 實驗用的應(yīng)用程序組合Tab.1 Combinations of programs used in experiments

        本文選取RRS 作為對照組,采取實驗復(fù)雜度遞增的方式進行對照實驗,分別做了以下實驗:

        實驗1 將RRS 作為對照組,將本文的性能預(yù)測模型在不考慮安全功率的情況下對線程進行映射,即核類型匹配部件計算出結(jié)果后,不考慮線程映射的具體核心位置(具體的映射位置隨機指定),并且不考慮功率限制,將實驗結(jié)果與RRS方法比較,驗證本文的性能預(yù)測模型在性能(IPC)上的優(yōu)越性。

        實驗2 仍然以RRS 為對照組,比較本文提出的帶功率約束的映射方法與RRS 的性能表現(xiàn),驗證加了安全功率約束后對系統(tǒng)性能的影響。

        此外,為了比較使用熱安全功率模型計算安全功率預(yù)算與使用固定功率約束值下映射方法的不同效果,本文進行了不同的功率約束設(shè)置下,關(guān)于系統(tǒng)吞吐量和資源利用率的對比實驗。對于恒定的芯片級功率約束,由于這是一個模擬平臺,缺乏帶有關(guān)于TDP 信息的數(shù)據(jù)表,因此不能簡單地考慮TDP。本次實驗考慮兩種不同芯片級功率預(yù)算,在參考文獻[5]中取m=4和m=16,得到的值分別為70 W 和140 W,這也是當(dāng)前相關(guān)技術(shù)中的具有代表性TDP值[8]。

        3.2 實驗結(jié)果

        3.2.1 性能預(yù)測器評估

        本文考慮的是有大小兩種處理核的2大核-4小核的異構(gòu)多核平臺,需要建立兩個ANN 預(yù)測器:一個預(yù)測大核的性能,另一個預(yù)測小核的性能。兩個ANN 模型都是使用從運行SPLASH-2 中收集的數(shù)據(jù)集進行訓(xùn)練和評估的。將經(jīng)過預(yù)處理后的原始數(shù)據(jù)集按照機器學(xué)習(xí)模型訓(xùn)練和驗證常用的劃分方法,本文將總數(shù)據(jù)集的70%用來訓(xùn)練模型,剩下的30%作為測試集用來評估該模型在未知數(shù)據(jù)上的預(yù)測能力。性能預(yù)測器的MSE如圖3所示。

        圖3 ANN預(yù)測器的MSEFig.3 MSE of ANN predictor

        均方誤差(MSE)值越低表示ANN 性能預(yù)測器的效果越好。從圖3 可看出,小核性能預(yù)測器和大核性能預(yù)測器在barnes 上表現(xiàn)最好,MSE 值分別為0.022 和0.015;在volread上表現(xiàn)最差,MSE 值分別為0.510 和0.610。從平均值來看,小核在10 個應(yīng)用程序上的平均MSE 值為0.170,大核的平均MSE 值為0.200,由實驗數(shù)據(jù)可以看出,總體上大核性能預(yù)測器和小核性能預(yù)測器均具有較好的預(yù)測效果。

        3.2.2 熱安全約束下的動態(tài)映射方法實驗結(jié)果

        圖4 給出了實驗1 將RRS 作為對照組,并將本文的映射方法在不考慮安全功率的情況下對線程進行映射,驗證本文的預(yù)測模型在性能(IPC)上的優(yōu)越性。其中橫坐標表示不同的程序組合編號,縱坐標是本文提出的映射方法(不考慮安全功率)與RRS 比較所實現(xiàn)的IPC 加速比。從圖4 中可以看出,本文提出的映射方法(不考慮安全功率)相較于RRS 在組合1上加速比最低,在組合4 上加速比最高,分別是1.340 和1.721,在5 種組合下平均實現(xiàn)了1.500 的加速比。這是因為組合1 含有MSE 值最高的volread 和MSE 較高的fft,因此整體的ANN 性能預(yù)測器預(yù)測效果較其他組合相比最差,所以達到的IPC 加速比最低。同理,組合4 中各程序的MSE 值整體比較接近,ANN 性能預(yù)測器的整體預(yù)測效果較好,因而達到了最高的IPC 加速比。而RRS 采用輪流將任務(wù)調(diào)度到每個處理核的方式,忽略了任務(wù)的資源需求以及處理核的特點,未能充分利用異構(gòu)多核處理器的特點和優(yōu)勢。相比之下,本文所提出的方法通過感知線程行為的變化和不同時刻下線程對處理核資源的需求,將線程及時分配到最適合其運行的處理核上,從而能夠更好地發(fā)揮異構(gòu)多核所帶來的優(yōu)勢,獲得更好的映射效果。

        如圖5 所示,運用本文的方法在相同的實驗環(huán)境下進行調(diào)度時,6 種組合間的IPC 加速比的差異性跟圖4 中的實驗結(jié)果幾乎一致,但是,組合4 和組合6 的加速比均要比圖4 中相應(yīng)組合的加速比略低,這是由于加了熱安全功率約束,核心不能在其最大功率下運行,而是在熱安全功率的約束下以其能夠達到的在保障熱安全的最大功率運行。由實驗結(jié)果可以看出雖然加速比小于前者,但是最大差距是組合6,僅為0.060,所以在性能上沒有造成巨大的損失,但后者卻保證了系統(tǒng)的熱安全。此外從平均值來看,圖4 的平均加速比為1.500,而用本文的方法跟RRS 方法比較,加速比為1.530,指令/周期(IPC)提高53%左右,總體性能得到了一定的提升。由實驗結(jié)果可以看出本文方法不僅保證了系統(tǒng)的熱安全、穩(wěn)定性和可靠性,還進一步提升了系統(tǒng)的性能。

        圖4 本文方法(無TSP約束)和RRS的加速比Fig.4 Speedup ratio ofproposed method(without TSP constraint)and RRS

        圖5 本文方法和RRS的加速比Fig.5 Speedup ratio of proposed method and RRS

        此外,本文還考察了不同的功率約束設(shè)置對系統(tǒng)吞吐量和資源利用率的影響,對比功率約束為固定值與使用TSP 作為功率約束的不同效果。

        圖6 給出了本文所使用的加入安全功率約束后與使用固定的設(shè)計功率約束值的異構(gòu)感知調(diào)度方法的應(yīng)用吞吐量結(jié)果。從圖6 可以看出,引入安全功率約束的動態(tài)映射方法與使用70 W 和140 W 的TDP 值相比,系統(tǒng)吞吐量分別提升了29.0%和19.8%。這是由于引入了安全功率約束,可以保證在異構(gòu)多核平臺下每個處理核擁有更合理的功率閾值,和使用固定TDP相比,降低了處理核性能被限制的可能性,更多的處理核可以同時工作,減少了暗硅現(xiàn)象的出現(xiàn),因此具有更高的吞吐量。

        圖6 使用不同功率預(yù)算的系統(tǒng)吞吐量對比Fig.6 Comparison of system throughput using different power budgets

        圖7 給出了在三種不同的功率約束下,運行應(yīng)用程序時的資源利用率情況。很顯然,引入TSP 約束的動態(tài)映射方法的資源利用率(91%)高于另外兩種功率約束情況下的資源利用率(77%和83%)。這是因為當(dāng)功率預(yù)算固定時,在異構(gòu)多核平臺上處理核的熱量較高會導(dǎo)致暗硅現(xiàn)象的出現(xiàn),為了保證處理核不被燒壞,不少處理核進入低功耗模式運行,降低了系統(tǒng)的資源利用率;而在引入TSP 約束后,暗硅現(xiàn)象得以減少,更多的處理核可以發(fā)揮作用,因此系統(tǒng)的資源利用率較高。

        圖7 使用不同功率預(yù)算的資源利用率對比Fig.7 Comparison of resource utilization rate using different power budgets

        4 結(jié)語

        本文提出了一種基于溫度安全功率約束的動態(tài)映射方法,以最大化異構(gòu)多核系統(tǒng)的性能。該方法在考慮處理核的類型及線程執(zhí)行的階段性特征,以及芯片上不同位置的處理核具有不同熱感受性的基礎(chǔ)上,首先基于一個神經(jīng)網(wǎng)絡(luò)性能預(yù)測器來對線程與處理核類型進行匹配,然后再利用溫度安全功率模型將經(jīng)過匹配后的線程進一步映射到芯片上的具體位置上,從而達到在保證系統(tǒng)溫度安全下優(yōu)化系統(tǒng)性能的目的。

        在未來的工作中,雖然一般情況下功率越大則系統(tǒng)性能越好,但是IPC 和功率間的關(guān)系還有待探究,所以本文接下來一方面是尋找IPC 和功率之間的關(guān)系,從而能夠使系統(tǒng)在滿足應(yīng)用性能的情況下進一步優(yōu)化功率。另一方面,為了更好地驗證本文方法,將使用更多的處理核,并且采用實際的運行平臺來進一步進行實驗。

        猜你喜歡
        預(yù)測器線程異構(gòu)
        輸入延遲系統(tǒng)的切換偽預(yù)測鎮(zhèn)定控制器
        試論同課異構(gòu)之“同”與“異”
        一種改進型TAGE分支預(yù)測器的實現(xiàn)
        淺談linux多線程協(xié)作
        overlay SDN實現(xiàn)異構(gòu)兼容的關(guān)鍵技術(shù)
        LTE異構(gòu)網(wǎng)技術(shù)與組網(wǎng)研究
        在新興異構(gòu)SoCs上集成多種系統(tǒng)
        Linux線程實現(xiàn)技術(shù)研究
        商務(wù)英語學(xué)習(xí)過程中的“預(yù)測器”
        甘肅教育(2012年24期)2012-04-29 00:44:03
        么移動中間件線程池并發(fā)機制優(yōu)化改進
        亚洲黑寡妇黄色一级片| 曰本女人牲交全视频免费播放 | 国产老妇伦国产熟女老妇高清| 国产性感主播一区二区| 亚洲av午夜一区二区三| 亚洲精品无码国产| 久久无码人妻一区二区三区午夜 | 91精品福利一区二区| 亚洲一区二区三区在线观看蜜桃 | 男女激情床上视频网站| 精品国产亚洲一区二区三区四区| 人妻精品久久久久中文字幕| 日韩成人极品在线内射3p蜜臀| 中文字幕亚洲无线码高清| 日本超骚少妇熟妇视频| 亚洲 欧美 偷自乱 图片| 午夜成人鲁丝片午夜精品| 热久久亚洲| 日本岛国视频在线观看一区二区 | 青青草视频原手机在线观看| 国产tv不卡免费在线观看| 亚欧免费无码aⅴ在线观看| 91精品福利观看| 一区二区三区精品偷拍av| 日韩精品第一区二区三区| 欧美大屁股xxxx| JIZZJIZZ国产| 国产我不卡在线观看免费| 无码人妻h动漫中文字幕| 日本大片免费观看完整视频| 精品理论一区二区三区| 亚洲一区二区三区少妇| 无码av无码天堂资源网| 国产精品99精品一区二区三区∴| 风流少妇一区二区三区91| 国产aⅴ激情无码久久久无码| 成人性做爰aaa片免费看| 夜夜爽无码一区二区三区 | 日韩精品少妇专区人妻系列| 亚洲字幕中文综合久久| 国产精品毛片一区二区|