基于機器學習的預取能效優化自適應裝置及方法
【專利摘要】本發明公開了一種基于機器學習的預取能效優化自適應裝置及方法,本發明的結合機器學習的動態調整預取配置的方法,能夠根據應用的特征最大化預取能效。具體如下:a、提取程序特征:通過硬件計數器提取應用程序在運行時的存儲訪問行為及預取相關行為信息,作為程序特征觀測量;b、構建訓練數據集:根據程序特征提取的結果,選擇與預取能效最相關的特征及達到最大能效時預取的配置,作為一個有效數據;c、訓練學習模型:給定程序的特征觀測量及對應的最優預取配置作為模型的輸入,采用機器學習的算法訓練學習模型;d、動態預測預取配置:學習模型根據新的應用程序運行時收集程序特征觀測量對程序進行分類,預測預取的配置最大化能效。
【專利說明】
基于機器學習的預取能效優化自適應裝置及方法
技術領域
[0001] 本發明設及計算機存儲系統的性能優化領域,結合機器學習方法優化預取的能 效。
【背景技術】
[0002] 硬件數據預取是提升系統性能的有效方法之一。當前處理器系統多采用一種或多 種數據預取的方法來優化存儲系統。由于預取效果與應用程序及處理器結構密切相關,而 且同一應用程序在運行時的不同階段的運行特性表現不同,因此單一的預取引擎很難適合 所有的應用程序。另外,激進的過度預取會污染高速緩存、增加帶寬需求,從而導致性能降 低與功耗增加。為了應對上述問題,很多研究人員采用多種預取方式,如多模式自調預 取EU,能夠識別流模式和鏈式模式數據流,提升不同應用運行時的性能。但是當存在多種預 取配置時,如何選擇合適的預取是存在的挑戰之一。當前主要是通過經驗來調整,預取的準 確率并不是很高,而且實驗發現很多預取配置性能接近,不需要激進的預取。如何設計中折 中預取精度與硬件開銷,提高預取能效是未來處理器系統亟需解決的核屯、技術。
[0003] 機器學習系統自動地從數據中學習程序,挖掘出數據中的映射關系,能夠很好的 對目標預測分析,解決非線性問題,已經被廣泛地應用于計算機科學等領域。在體系結構的 研究中,很多研究人員借助機器學習的方法來加快設計空間的探索、資源分配、調度、負載 平衡、分支預測,W及根據程序的特性預測預取配置和縮小預取引擎的設計空間。研究人員 針對IBM POWERS處理器W(25比特配置表示)的大型預取配置空間結合線性判別分析的方 法縮小預取捜索空間(從225縮小到5種),并實現動態預測預取的配置。主要考慮的問題是捜 索空間的縮小,但是未考慮到功耗問題,實際上有很多種預取配置的性能接近但是功耗不 一樣,在性能優勢接近時應優先選擇功耗較低的配置。針對IntelCore2Quad Q6600中的多 種預取配置,研究人員提出結合機器學習方法最大化預取效率的方法W,主要對程序的特 征詳細分析,提取與預取性能最相關的特征,并量化表示不同程序間的特征,從而提高預測 的準確性,分析S種不同的機器學習方法(決策樹、logistic回歸和歐氏距離)來預測預取 的性能提升,離線分析,未實現動態調整,也未考慮能效問題。
[0004] 上文中設及的文獻如下:
[0005] [1]、多模式數據預取裝置及其管理方法。發明人:劉鵬,劉勇,辛愿,專利號 化201310134803.1 申請日:2013-04-18,授權公告日:2016-03-02。
[0006] [2]、Li Minghua,Chen Guancheng,Wang Qijun,Lin Yonghua,Peter Hofsee,Per Stenstrom,Dian Zhou,PATer:A Hardware Prefetching Automatic Tuner on IBM POWERSProcessor. IEEE Computer Architecture Letters,2015:DOI 10.1109/ LCA.2015.2442972(Li Minghua,Chen Guancheng,Wang Qijun,Lin Yonghua,Peter Hofsee,Per Stenstrom,Dian Zhou.PATer:IBM POWERS處理器上的一種硬件預取自調, IEEE Computer Architecture Letters其月甲J,2015)。
[0007] [3]、Saami 民ahmana,Martin Burtscher,Ziliang Zong,Apa Qasem.Maximizing Hardware Prefetch Effectiveness with Machine Learning.IEEE 17化 International Conference on High Performance Computing and Communications(HPCC),2015(Saami Rahmana,Martin Burtscher,Ziliang Zong,Apa Qasem,基于機器學習的最大化硬件預取 效率,第十屯屆IE邸高性能計算和通信國際會議,2015)。
【發明內容】
[0008] 本發明要解決的技術問題是提供一種基于機器學習的預取能效優化自適應裝置 及相應的適應法,本發明處理器系統能夠根據應用的特征,自動優化預取與結構的適應性, 實現能效的優化。
[0009] 為了解決上述技術問題,本發明提供一種基于機器學習的預取能效優化自適應裝 置,包括學習模塊部分和基本處理器運兩大組件;
[0010] 所述基本處理器包括處理器核、一級高速緩存單元、二級高速緩存單元、下一級存 儲、一級數據預取裝置、二級數據預取裝置、硬件計數器統計模塊、程序特征片段檢測模塊、 特殊目的寄存器;
[0011] 所述學習模塊部分包括特征提取模塊(9 )、學習模型。
[0012] 所述信號傳遞關系如下:
[0013] 處理器核發起訪問高速緩存請求信息給一級高速緩存單元,一級高速緩存單元將 數據信息返回給處理器核;一級高速緩存單元將收到的訪問地址信息傳遞給一級數據預取 裝置,一級數據預取裝置返回預取數據給一級高速緩存單元;一級高速緩存單元將收到的 訪問地址信息在一級高速緩存缺失時傳遞給二級高速緩存單元,二級高速緩存單元將取到 的數據返回給一級高速緩存單元;二級高速緩存單將收到的訪問地址信息傳遞給二級數據 預取裝置,二級數據預取裝置返回預取數據給二級高速緩存單元;二級高速緩存單元將收 到的訪問地址在二級高速緩存單元缺失時傳遞給下一級存儲,下一級存儲將取到的數據返 回給二級高速緩存單元;處理器核、一級高速緩存單元、二級高速緩存單元、一級數據預取 裝置、二級數據預取裝置將訪問各單元的訪存信息包括缺失次數、替換次數、寫回次數、預 取數、預取準確次數、預取污染次數等傳遞給硬件計數器統計模塊;硬件計數器統計模塊將 缺失次數、預取數、預取準確數、預取污染次數傳遞給程序特征片段檢測模塊;
[0014] 硬件計數器統計模塊將獲得的數據傳遞給學習模塊部分中的特征提取模塊;特征 提取模塊將提取的特征經過計算傳遞給學習模型;學習模型將經過已經學習好的算法處理 得到的分類結果傳遞給特殊目的控制器;特殊目的控制器將分類結果傳遞給基本處理器中 的一級和二級數據預取裝置。
[0015] 本發明還同時提供了一種基于機器學習的預取能效優化自適應方法;包括W下步 驟:
[0016] 1)、離線訓練學習模型:通過收集不同應用程序在不同預取配置下運行收集到的 硬件計數器信息及最佳的預取配置對機器學習算法實現的學習模型訓練,該步驟又包括W 下步驟:
[0017] 1.1)提取程序特征:處理器核、一級高速緩存單元及二級高速緩存單元的訪問信 息傳遞給硬件計數器統計模塊,特征提取模塊從硬件計數器統計模塊提取訪問高速緩存信 息作為應用程序在運行時的存儲訪問行為及預取相關行為信息,作為程序特征觀測量;
[0018] I. 2)構建訓練數據集:根據程序特征提取的結果,選擇與預取能效最相關的特征 及達到最大能效時預取的配置,作為一個有效數據;
[0019] 1.3)訓練學習模型:給定程序的特征觀測量及對應的最優預取配置作為模型的輸 入,采用機器學習的算法訓練學習模型;
[0020] 2)、動態預測預取配置:學習模型根據新的應用程序運行時處理器核、一級高速緩 存單元及二級高速緩存單元傳遞給硬件計數器統計模塊的訪存信息經特征提取模塊處理 后傳遞給學習模型,學習模型處理后將分類結果傳遞給特殊目的寄存器,特殊目的寄存器 控制一級數據預取裝置和二級數據預取裝置的預取距離和深度,從而實時預測預取的配置 最大化能效。
[0021] 作為對本發明的基于機器學習的預取能效優化自適應方法的進一步改進:所述步 驟1.1)中程序的特征觀測量通過特征提取模塊從硬件計數器統計模塊獲取,硬件計數器統 計模塊從一級高速緩存單元、二級高速緩存單元、一級數據預取裝置和二級數據預取裝置 獲取;
[0022] 統計結果包括處理器核中每周期執行指令數、一級高速緩存單元和二級高速緩存 單元中的讀寫指令隊列的占有數、讀指令數目、讀指令缺失數目、高速緩存的缺失次數、高 速緩存的替換次數、高速緩存的寫回次數、轉換旁路緩沖器缺失次數、高速緩存數據預取次 數、高速緩存數據預取準確數據次數、數據預取導致高速緩存污染次數、預取引起的高速緩 存替換次數。
[0023] 作為對本發明的基于機器學習的預取能效優化自適應方法的進一步改進:所述步 驟1.2)中構建訓練數據集包括W下步驟:
[0024] 1.2.1程序特征片段模擬點采樣:選擇能代表程序訪存行為的特征片段;
[0025] 1.2.2對特征片段分別采用不同預取方式進行模擬,獲取不同預取方式下的程序 特征觀測量;
[0026] 1.2.3數據標記:對于每個特征片段標記類別即選擇最優預取配置,每條有效數據 由程序特征觀測量及最優預取配置構成。
[0027] 作為對本發明的基于機器學習的預取能效優化自適應方法的進一步改進:最大化 能效依據是:(A)相近的性能下,選擇功耗消耗最低的配置,功耗消耗最低的標準是引起高 速緩存的數據污染、總線帶寬增加最少,W及預取單元的硬件開銷低;(B)性能提升不大,貝U 關閉預取。
[0028] 作為對本發明的基于機器學習的預取能效優化自適應方法的進一步改進:所述步 驟1.3)中訓練學習模型,學習模型采用機器學習的算法進行實現然后采用訓練數據集對學 習模型進行訓練。該學習模型輸入為各程序的特征觀測量,輸出為最優預取配置類別。預取 配置的類別包括關閉預取、開啟預取時不同的預取方式的深度和距離。
[0029] 作為對本發明的基于機器學習的預取能效優化自適應方法的進一步改進:所述步 驟2)中動態預測程序預取配置包括W下步驟:
[0030] 2.1數據采集階段:每運行一定數目的指令,實時硬件計數器模塊傳遞訪存信息給 程序特征片段檢測模塊,程序特征片段檢測模塊計算當前程序特征與前一階段的程序特征 的歐式距離,判斷程序是否進入另一階段即訪存行為發生變化;
[0031 ] 2.2如果程序訪存行為發生變化,特征提取模塊根據實時硬件計數器模塊傳遞過 來的訪存信息提取特征觀測量,并傳遞給學習模型處理后輸出預測的配置分類,傳遞給特 殊目的寄存器;
[0032] 2.3特殊目的寄存器傳遞配置結果給一級數據預取裝置和二級數據預取裝置,一 級數據預取裝置和二級數據預取裝置相應調整硬件預取的配置,包括關閉預取、調整預取 的深度和距離。
[0033] 作為對本發明的基于機器學習的預取能效優化自調方法的進一步改進:預取單元 的關閉、開啟及預取的不同配置作為學習模型的分類結果。預取配置參數的調整可通過控 制特殊目的寄存器來適應處理器參數。
[0034] 本發明具有如下技術優勢:
[0035] 1、基于機器學習的算法預測應用程序的預取配置(或預取激進程度),根據程序的 特性實時的調整預取的激進程度或及時關閉預取,從而提高預取的能效.
[0036] 2、采用特征片段檢測,通過定時檢測程序的訪問高速緩存缺失率及程序性能及預 取的命中率等的變化來判斷當前程序的訪存行為是否發生變化及當前的預取配置是否有 效,從而實現實時準確的調整;
[0037] 3、不需要更改硬件實現,可在現有的硬件預取機制上采用軟件實現選優。
【附圖說明】
[0038] 下面結合附圖對本發明的【具體實施方式】作進一步詳細說明。
[0039] 圖1為基于機器學習的動態調整預取裝置;
[0040] 圖2為離線訓練學習模型過程;
[0041 ]圖3為動態調整預取配置過程。
【具體實施方式】
[0042] 下面結合附圖對本發明的【具體實施方式】作進一步的說明。
[0043] 如圖1所示為本發明的實現框圖,在一個基本的處理器13中,包含處理器核1和一 個一級高速緩存單元2、一個二級高速緩存單元3與下一級存儲4。預取單元實現對一級高速 緩存單元2與二級高速緩存單元3的數據預取,包括一級數據預取裝置5、二級數據預取裝置 6、硬件計數器統計模塊7和程序特征片段檢測模塊8,其中一級數據預取裝置5和二級數據 預取裝置6分別用來調整一級高速緩存單元2與二級高速緩存單元3的預取配置,硬件計數 器統計模塊7從一級高速緩存單元2、二級高速緩存單元3、一級數據預取裝置5和二級數據 預取裝置則欠集程序運行時的存儲行為、預取效果信息。程序特征片段檢測模塊8從硬件計 數器統計模塊7提取信息分析是否進入新的訪存行為階段。特征提取模塊9讀取硬件計數器 統計模塊7中的存儲行為信息輸入學習模型10中預測對應的預取配置。預取配置的調整需 要通過特殊目的寄存器11來調整。在學習模塊部分12,通過從硬件計數器統計模塊7提取程 序特征,學習模型10根據特征提取模塊8的信息實時預測一級高速緩存單元3和二級高速緩 存單元4的最大化預取能效配置,寫入特殊目的寄存器11中,通過運個寄存器的值更改一級 數據預取裝置5和二級數據預取裝置6的硬件配置。圖2和圖3為本發明的具體實現過程。
[0044] 通過上述系統可W實現本發明的基于機器學習的預取能效優化自適應方法,該方 法是通過W下步驟實現:
[0045] 1、離線訓練學習模型:通過收集不同應用程序在不同預取配置下運行從硬件計數 器統計模塊7收集到的信息及最佳的預取配置對機器學習算法實現的學習模型10訓練,如 圖2所示為離線訓練學習模型框圖,該步驟又具體包括W下步驟:
[0046] 1.1、提取程序特征:硬件計數器統計模塊7從處理器核1、一級高速緩存單元2、二 級高速緩存單元3、一級數據預取裝置5和二級數據預取裝置6統計程序訪存及預取相關行 為信息,硬件計數器統計模塊7統計的參數包括:程序平均每個周期執行的指令數,讀寫指 令隊列的占有數、讀指令數目、讀指令缺失數目、高速緩存的缺失次數、高速緩存的替換次 數、高速緩存的寫回次數、轉換旁路緩沖器缺失次數、高速緩存數據預取次數、高速緩存數 據預取準確數據次數、數據預取導致高速緩存污染次數、預取引起的高速緩存替換次數、數 據預取引起的數據總線帶寬增加。
[0047] 1.2、根據步驟1.1的硬件計數器統計模塊7的反饋信息,特征提取模塊9計算程序 的訪存特性指標,包含平均每個周期執行的指令數(CPI),一級高速緩存每千條指令的缺失 次數(MPKLLl),一級高速緩存每千條指令的替換次數(RPKLLl),一級高速緩存每千條指 令的寫回次數(WPKLLl),二級高速緩存每千條指令的缺失次數(MPKI_L2),一級高速緩存 每千條指令的替換次數(RPKI_L2),二級高速緩存每千條指令的寫回次數(WPKI_L2),快速 查找表每千條指令的缺失次數(MPKI_D化B),讀指令數占總指令數的比例化0AD_RATE),讀 指令中發生缺失比例(L0AD_MI SS),讀寫指令隊列的占有率(LSQ_0CCUPANCY)。運些訪存特 性指標作為輸出給學習模型10進行訓練。上述訪存特性的指標相應的計算公式如表1所示。
[0048] 1.3、根據步驟1.2的訪存特性指標,線下收集訓練數據集。首先采用模擬仿真工 具,將程序劃分為固定指令片段,然后對指令片段中基本塊的執行頻率聚類分析得到程序 的特征樣本。對程序特征樣本分別采用不同預取配置進行模擬,選擇能使程序獲得最佳能 效的預取配置,標記為該程序樣本的最佳配置。最大化能效依據:相近的性能下,選擇功耗 消耗最低的配置,功耗消耗最低的標準是引起高速緩存的數據污染和總線帶寬增加最少, W及預取單元的硬件開銷低;在獲得系統性能提升小于2%時關閉預取單元。
[0049] 在本實例中,對每個程序特征樣本分別模擬一億條指令,每一百萬條指令收集訪 存特性指標及最佳配置,所W每個程序特征樣本可W產生100個訓練樣本,平均每個程序有 10個左右的特征樣本,那么整個每個程序可W產生1000個樣本。采用SPEC2006評測集及 OLDEN評測集,20個應用程序則能產生20000的樣本,每個樣本表示為(XI,X2,X3,X4,…,Xn; Y),其中Xl,X2,X3,…,Xn表示應用程序特征樣本訪存行為的n個特征,即為表1所示的指標, Y為獲得最大能效時的預取配置分類,Y的取值為1至9。本實例的預取的分類Y取值如表2所 示,根據保守預取、中等激進、激進預取=大類具體的預取距離化ist)及預取深度化egree) 分為9類。
[(K)加 ]表1
[0化1 ]
[0054] 1.4、根據步驟1.3的訓練數據的收集,建立學習模型進行訓練如圖2所示為整個建 立學習模型的過程。從程序的訪存特征中提取最相關的特征并歸一化處理,采用監督學習 的方法進行離線學習,建立程序訪存特征與預取配置分類的關系Y = ML(Xi,X2,X3, . . .,Xn) (ML:Machine Learning algorithm,Xi,枯,X3. . .Xn為表1所示的訪存特性的指標),使得預 測的Y與實際的Y誤差最小。本實例中采用決策樹及k鄰近距離的方法建立學習模型對預取 配置分類,決策樹采用信息賭來反映對象屬性與對象間的關系,常用于數據分析及預測中, 在數據不完整下也能有較好效果,k鄰近距離的方法通過描述測試數據與訓練數據間的距 離或者相關性來分類。
[0055] 2、根據步驟1.4訓練好的學習模型進行線上調整預取的配置。調整過程如圖3所 示,設定采樣間隔定時讀取硬件計數器統計模塊7的統計信息,檢測程序是否進入新的階 段,有新的訪存行為特性。
[0056]在本實例中設置采樣間隔為一千萬條指令,程序特征片段檢測模塊8根據從硬件 計數器統計模塊傳遞的訪存信息包括預取的命中次數、高速緩存污染次數、緩存的缺失率、 快速查找表的缺失次數及預取引起的高速緩存替換次數,計算預取的命中率、高數緩存污 染率、高速緩存的缺失率和轉換旁路緩沖器的缺失率的變化,采用歸一化之后的歐氏距離 (dis化nce)來判斷兩個片段的相似程度從而檢測是否到新的程序特征片段。
[0化7] 主。
[0化引
[0化9]
[0060] 其中Xii, Xi2分別表示采樣1和采樣2的n個維度變量(表3所示)的變化率,本實例中 為預取參數如預取準確率、預取導致高速緩存的污染率、一級緩存的缺失率、二級緩存的缺 失率、轉換旁路緩沖器的缺失率。
[0061] 2)檢測到新的程序特征片段,則關閉預取一段時間(1百萬條指令),特征提取模塊 9從硬件計數器統計模塊7中提取程序的特征變量(表1所示)進行計算,并將特征變量傳遞 給已經訓練好的學習模型10,學習模型10預測該階段的預取配置,將分類結果傳遞給特殊 目的寄存器11。
[0062] 3)特殊目的寄存器11更改一級數據預取裝置5和二級數據預取裝置6的預取配置。 程序在調整后的預取配置下運行,并保存當前配置下的預取準確率等(表3所示指標)直到 檢測到新的片段,重復1)至3)的過程。
[0063] 3、處理器運行新的應用程序時即按照步驟2執行。
[0064] 最后,還需要注意的是,W上列舉的僅是本發明的一個具體實施例。顯然,本發明 不限于W上實施例,還可W有許多變形。本領域的普通技術人員能從本發明公開的內容直 接導出或聯想到的所有變形,均應認為是本發明的保護范圍。
【主權項】
1. 基于機器學習的預取能效優化自適應裝置,其特征是:包括學習模塊部分(12)和基 本處理器(13)這兩大組件; 所述基本處理器(13)包括處理器核(1)、一級高速緩存單元(2)、二級高速緩存單元 (3)、下一級存儲(4)、一級數據預取裝置(5)、二級數據預取裝置(6)、硬件計數器統計模塊 (7)、程序特征片段檢測模塊(8)、特殊目的寄存器(11); 所述學習模塊部分(12)包括特征提取模塊(9 )、學習模型(IO)。2. 根據權利要求1所述的基于機器學習的預取能效優化自適應裝置,其特征是: 處理器核(1)發起訪問高速緩存請求信息給一級高速緩存單元(2),一級高速緩存單元 (2) 將數據信息返回給處理器核(1); 一級高速緩存單元(2)將收到的訪問地址信息傳遞給 一級數據預取裝置(5),一級數據預取裝置(5)返回預取數據給一級高速緩存單元(2);-級 高速緩存單元(2)將收到的訪問地址信息在一級高速緩存(2)缺失時傳遞給二級高速緩存 單元(3),二級高速緩存單元(3)將取到的數據返回給一級高速緩存單元(2);二級高速緩存 單元(3)將收到的訪問地址信息傳遞給二級數據預取裝置(6),二級數據預取裝置(6)返回 預取數據給二級高速緩存單元(3);二級高速緩存單元(3)將收到的訪問地址在二級高速緩 存單元缺失時傳遞給下一級存儲(4),下一級存儲將取到的數據返回給二級高速緩存單元 (3) ; 處理器核(1)、一級高速緩存單元(2)、二級高速緩存單元(3)、一級數據預取裝置(5)、 二級數據預取裝置(6)將訪問各單元的訪存信息傳遞給硬件計數器統計模塊(7),所述訪存 信息包括缺失次數、替換次數、寫回次數、預取數、預取準確次數、預取污染次數;硬件計數 器統計模塊(7)將缺失次數、預取數、預取準確數、預取污染次數傳遞給程序特征片段檢測 豐旲塊(8); 硬件計數器統計模塊(7)將獲得的數據傳遞給學習模塊部分(12)中的特征提取模塊 (9);特征提取模塊(9)將提取的特征經過計算傳遞給學習模型(10);學習模型(10)將經過 已經學習好的算法處理得到的分類結果傳遞給特殊目的控制器(11);特殊目的控制器(11) 將分類結果傳遞給基本處理器(13)中的一級數據預取裝置(5)和二級數據預取裝置(6)。3. 基于機器學習的預取能效優化自適應方法,其特征是包括以下步驟: 1) 、離線訓練學習模型:通過收集不同應用程序在不同預取配置下運行收集到的硬件 計數器信息及最佳的預取配置對機器學習算法實現的學習模型訓練,該步驟具體包括以下 步驟: 1.1) 提取程序特征:處理器核(1)、一級高速緩存單元(2)及二級高速緩存單元(3)的訪 問信息傳遞給硬件計數器統計模塊(7),特征提取模塊(9)從硬件計數器統計模塊(7)提取 訪問高速緩存信息作為應用程序在運行時的存儲訪問行為及預取相關行為信息,作為程序 特征觀測量; 1.2) 構建訓練數據集:根據程序特征提取的結果,選擇與預取能效最相關的特征及達 到最大能效時預取的配置,作為一個有效數據; 1.3) 訓練學習模型:給定程序的特征觀測量及對應的最優預取配置作為模型的輸入, 采用機器學習的算法訓練學習模型(10); 2) 、動態預測預取配置:學習模型(10)根據新的應用程序運行時處理器核(1)、一級高 速緩存單元(2)及二級高速緩存單元(3)傳遞給硬件計數器統計模塊(7)的訪存信息經特征 提取模塊(9)處理后傳遞給學習模型(10),學習模型(10)處理后將分類結果傳遞給特殊目 的寄存器(11),特殊目的寄存器(11)控制一級數據預取裝置(5)和二級數據預取裝置(6)的 預取距離和深度,從而實時預測預取的配置最大化能效。4. 根據權利要求3所述的基于機器學習的預取能效優化自適應方法,其特征是:所述步 驟1.1)中程序的特征觀測量通過特征提取模塊(9)從硬件計數器統計模塊(7)獲取,硬件計 數器統計模塊(7)從一級高速緩存單元(2)、二級高速緩存單元(3)、一級數據預取裝置(5) 和二級數據預取裝置(6)獲取; 統計結果包括處理器核(1)中每周期執行指令數、一級高速緩存單元(2)和二級高速緩 存單元(3)中的讀寫指令隊列的占有數、讀指令數目、讀指令缺失數目、高速緩存的缺失次 數、高速緩存的替換次數、高速緩存的寫回次數、轉換旁路緩沖器缺失次數、高速緩存數據 預取次數、高速緩存數據預取準確數據次數、數據預取導致高速緩存污染次數、預取引起的 高速緩存替換次數。5. 根據權利要求3所述的基于機器學習的預取能效優化自適應方法,其特征是: 所述步驟1.2)中構建訓練數據集包括以下步驟: 1.2.1、 程序特征片段模擬點采樣:選擇能代表程序訪存行為的特征片段; 1.2.2、 對特征片段分別采用不同預取方式進行模擬,獲取不同預取方式下的程序特征 觀測量; 1.2.3、 數據標記:對于每個特征片段標記類別即選擇最優預取配置,每條有效數據由 程序特征觀測量及最優預取配置構成。6. 根據權利要求3所述的基于機器學習的預取能效優化自適應方法,其特征是: 所述步驟1.2.3中最優預取配置即最大化能效依據,包括: 相近的性能下,選擇功耗消耗最低的配置,功耗消耗最低的標準是引起高速緩存的數 據污染、總線帶寬增加最少以及預取單元的硬件開銷少; 性能提升不大,則關閉預取。7. 根據權利要求3所述的基于機器學習的預取能效優化自適應方法,其特征是: 所述步驟1.3)中訓練學習模型(10),學習模型(10)采用機器學習的算法進行實現然后 采用訓練數據集對學習模型(10)進行線下訓練;該學習模型(10)輸入為各程序的特征觀測 量,輸出為最優預取配置類別;預取配置的類別包括關閉預取、開啟預取時不同的預取方式 的深度和距離。8. 根據權利要求3所述的基于機器學習的預取能效優化自適應方法,其特征是: 所述步驟2)中動態預測程序預取配置包括以下步驟: 2.1數據采集階段:每運行一定數目的指令,實時硬件計數器模塊(7)傳遞訪存信息給 程序特征片段檢測模塊(8),程序特征片段檢測模塊(8)計算當前程序特征與前一階段的程 序特征的歐式距離,判斷程序是否進入另一階段即訪存行為發生變化; 2.2如果程序訪存行為發生變化,特征提取模塊(9)根據實時硬件計數器模塊(7)傳遞 過來的訪存信息提取特征觀測量,并傳遞給學習模型(10)處理后輸出預測的配置分類,傳 遞給特殊目的寄存器(11); 2.3特殊目的寄存器(I 1)傳遞配置結果給一級數據預取裝置(5)和二級數據預取裝置 (6),一級數據預取裝置(5)和二級數據預取裝置(6)相應調整硬件預取的配置,包括關閉預 取、調整預取的深度和距離。9. 根據權利要求3所述的基于機器學習的預取能效優化自適應方法,其特征是: 所述步驟1.3)中預取單元的關閉、開啟及預取的不同激進程度作為學習模型的分類結 果,即學習模型(10)傳遞給特殊目的寄存器(11)的信息; 所述步驟2)中機器學習的模型在外部實現,通過特殊目的寄存器(11)傳遞給一級數據 預取裝置(5)和二級數據預取裝置(6)控制預取的配置。10. 根據權利要求3所述的基于機器學習的預取能效優化自適應方法,其特征是:當運 行新的應用時,按照步驟2)開始調整相應預取配置。
【文檔編號】G06N99/00GK105955709SQ201610236148
【公開日】2016年9月21日
【申請日】2016年4月16日
【發明人】劉鵬, 周英
【申請人】浙江大學