一種基于人工神經(jīng)網(wǎng)絡(luò)的亂序處理器穩(wěn)態(tài)下平均吞吐率的預(yù)測方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及一種基于人工神經(jīng)網(wǎng)絡(luò)的亂序處理器穩(wěn)態(tài)下平均吞吐率的預(yù)測方法, 屬于軟硬件協(xié)同設(shè)計(jì)技術(shù)。
【背景技術(shù)】
[0002] 基于硬件行為建模的娃前架構(gòu)評(píng)估及設(shè)計(jì)空間探索可提供忍片設(shè)計(jì)指導(dǎo)意見,降 低忍片設(shè)計(jì)迭代周期。在特定處理器和指定程序運(yùn)行的情況下,亂序處理器穩(wěn)態(tài)下的平均 吞吐率表征了沒有缺失事件發(fā)生的情況下,處理器性能的極限,同時(shí)也在一定程度上反映 了應(yīng)用程序的設(shè)計(jì)與硬件是否適配。同時(shí),亂序處理器穩(wěn)態(tài)下的平均吞吐率有助于后續(xù)的 亂序處理器整體性能的分析建模。
[0003] 目前對(duì)亂序處理器穩(wěn)態(tài)下平均吞吐率的認(rèn)識(shí)經(jīng)歷過兩個(gè)階段,第一個(gè)階段是直接 將前端指令發(fā)射級(jí)的寬度作為亂序處理器穩(wěn)態(tài)下的平均吞吐率,該方法假設(shè):當(dāng)亂序處理 器沒有缺失事件發(fā)生時(shí),處理器每個(gè)時(shí)鐘內(nèi)能夠處理與前端指令發(fā)射級(jí)寬度等量的指令。 運(yùn)種方法忽略了對(duì)指令依賴、功能單元數(shù)量和種類、指令延遲、串行指令分布等因素的考 慮,是一種很粗粒度的假設(shè);第二個(gè)階段認(rèn)為亂序處理器穩(wěn)態(tài)下平均吞吐率與前端指令發(fā) 射級(jí)寬度、關(guān)鍵路徑長度、功能單元數(shù)目和種類相關(guān),并認(rèn)為平均吞吐率只受限于影響最大 的一個(gè)因素。該方法相比于第一種方法,考慮了更多影響平均吞吐率的因素,但局限于單一 的影響因素,沒有能夠考慮到各個(gè)要素之間的禪合關(guān)系。
[0004] 亂序處理器穩(wěn)態(tài)下的平均吞吐率是指在沒有缺失事件發(fā)生的情況下,平均每個(gè)時(shí) 鐘發(fā)射的指令數(shù)目。在指令并行度高且處理器后端功能單元充足的條件下,穩(wěn)態(tài)下平均吞 吐率等于前端指令發(fā)射級(jí)的寬度D,該參數(shù)也是理想狀態(tài)下的平均吞吐率。但當(dāng)指令間存在 較強(qiáng)的依賴關(guān)系時(shí),比如,后一條指令的執(zhí)行所需要的數(shù)據(jù)由前一條指令的執(zhí)行結(jié)果提供, 則平均每個(gè)時(shí)鐘能夠發(fā)射的指令數(shù)目減少,且隨著依賴鏈越長,越多,穩(wěn)態(tài)下平均吞吐率就 會(huì)越低。當(dāng)處理器后端功能單元數(shù)目及種類不充足時(shí),即使指令流本身有較高的并行度,硬 件單元受限于數(shù)目、種類W及執(zhí)行延遲的影響,也無法保證最高的平均吞吐率D。另外值得 注意的是,安卓系統(tǒng)中引入的串行指令058、018、158,也限制了穩(wěn)態(tài)下平均吞吐率,串行指 令要求在該指令之前的指令或者數(shù)據(jù)訪問必須全部完成,才能繼續(xù)執(zhí)行后續(xù)的指令,那么 即使在指令流本身并行度高且處理器后端功能單元充足的條件下,串行指令的分布也很大 程度上影響了穩(wěn)態(tài)下平均吞吐率。
[0005] 最后值得注意的是,穩(wěn)態(tài)下平均吞吐率的大小與各個(gè)影響因素之間并不是簡單的 單一作用關(guān)系,即各個(gè)因素之間的禪合效應(yīng)也在影響著穩(wěn)態(tài)下平均吞吐率的大小,運(yùn)無疑 加大了機(jī)理角度分析的難度。同時(shí)由于全仿真時(shí)間開銷過大,所W本發(fā)明針對(duì)上述問題提 出了一種基于人工神經(jīng)網(wǎng)絡(luò)的亂序處理器穩(wěn)態(tài)下平均吞吐率的預(yù)測方法,用于快速準(zhǔn)確地 預(yù)測穩(wěn)態(tài)下平均吞吐率
【發(fā)明內(nèi)容】
[0006] 發(fā)明目的:為了克服現(xiàn)有技術(shù)中存在的不足,本發(fā)明提供一種基于人工神經(jīng)網(wǎng)絡(luò) 的亂序處理器穩(wěn)態(tài)下平均吞吐率的預(yù)測方法,能夠根據(jù)微架構(gòu)無關(guān)參數(shù)快速準(zhǔn)確地預(yù)測亂 序處理器穩(wěn)態(tài)下平均吞吐率,且預(yù)測方法精度高、速度快。
[0007] 技術(shù)方案:為實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案為:
[0008] 一種基于人工神經(jīng)網(wǎng)絡(luò)的亂序處理器穩(wěn)態(tài)下平均吞吐率的預(yù)測方法,包括如下步 驟:
[0009] (1)將指令集模擬器仿真時(shí)線程號(hào)切換的時(shí)間點(diǎn)作為片段分割的間斷點(diǎn),從而將 整個(gè)目標(biāo)程序劃分為若干片段,對(duì)所有片段按線程號(hào)進(jìn)行劃分并排序,統(tǒng)計(jì)每個(gè)片段包含 的時(shí)鐘數(shù),刪除時(shí)鐘數(shù)小于闊值(比如1000)的片段;
[0010] (2)對(duì)目標(biāo)線程中保留下來的片段,利用指令集模擬器獲取每個(gè)片段的相關(guān)微架 構(gòu)無關(guān)參數(shù),所述微架構(gòu)無關(guān)參數(shù)包括動(dòng)態(tài)指令流混合比(浮點(diǎn)、定點(diǎn)、SIMD、Load/Store指 令的數(shù)目等)、關(guān)鍵路徑長度(針對(duì)處理器后端設(shè)計(jì)的不同,統(tǒng)計(jì)相應(yīng)的關(guān)鍵路徑長度分布, 本專利統(tǒng)計(jì)關(guān)鍵路徑長度為1到40的數(shù)目分布)、串行化指令、前端發(fā)射指令速率(針對(duì)處理 器前端設(shè)計(jì)的不同,統(tǒng)計(jì)相應(yīng)的發(fā)射指令數(shù)目分布,本專利統(tǒng)計(jì)發(fā)射指令數(shù)目為0到4的數(shù) 目分布)和目標(biāo)線程的運(yùn)行總時(shí)間;
[0011] (3)首先,考慮BP神經(jīng)網(wǎng)絡(luò)對(duì)輸入數(shù)據(jù)的要求(動(dòng)態(tài)指令流混合比、關(guān)鍵路徑長度 分布、串行化指令),對(duì)每個(gè)片段的相關(guān)微架構(gòu)無關(guān)參數(shù)進(jìn)行預(yù)處理,形成對(duì)應(yīng)片段的相關(guān) 微架構(gòu)無關(guān)參數(shù)向量;然后,通過主成分分析(PCA)對(duì)每個(gè)相關(guān)微架構(gòu)無關(guān)參數(shù)向量進(jìn)行降 維、去噪處理,形成對(duì)應(yīng)片段的Mica化化數(shù)據(jù)集(微結(jié)構(gòu)無關(guān)數(shù)據(jù)集)。
[0012] (4)對(duì)目標(biāo)線程中保留下來的片段,首先,通過S0M(SelfO;rganizi^Fea1:ureMaps, 自組織映射網(wǎng)絡(luò))將所有Mica化ta數(shù)據(jù)集分成N個(gè)大類(比如200個(gè)大類);然后,通過k-均值 聚類化means聚類)算法將第η個(gè)大類分成Μη個(gè)小類(一般每個(gè)小類的數(shù)目是大類里面片斷 數(shù)目的15% ),1含η含Ν;選取每個(gè)小類中離中屯、點(diǎn)距離最近的點(diǎn)作為該小類的特征點(diǎn);步驟 (3)和步驟(4)的處理,使得在保留原始數(shù)據(jù)主要信息的前提下減少了 ΒΡ神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練 的輸入數(shù)據(jù)并降低了 ΒΡ神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練所需的時(shí)間;
[0013] (5)對(duì)目標(biāo)線程中保留下來的片段,將所有特征點(diǎn)作為ΒΡ神經(jīng)網(wǎng)絡(luò)的輸入,Β巧申經(jīng) 網(wǎng)絡(luò)的輸出為目標(biāo)線程的穩(wěn)態(tài)平均吞吐率,對(duì)ΒΡ神經(jīng)網(wǎng)絡(luò)的輸入和輸出進(jìn)行擬合,通過調(diào) 節(jié)ΒΡ神經(jīng)網(wǎng)絡(luò)的迭代次數(shù)和訓(xùn)練精度,訓(xùn)練得到目標(biāo)線程的ΒΡ神經(jīng)網(wǎng)絡(luò)模型;
[0014] (6)ΒΡ神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練完成后,通過指令集模擬器獲得其他待預(yù)測線程的微架 構(gòu)無關(guān)參數(shù)信息,導(dǎo)入到訓(xùn)練好的ΒΡ神經(jīng)網(wǎng)絡(luò)模型中,即可快速準(zhǔn)確地預(yù)測實(shí)際穩(wěn)態(tài)平均 吞吐率值;其他待預(yù)測線程包括目標(biāo)程序中的線程,或者其他應(yīng)用程序中的線程。
[0015] 具體的,所述步驟(5)中,Β巧巾經(jīng)網(wǎng)絡(luò)有Ξ個(gè)隱含層,第一隱含層采用30個(gè)神經(jīng)元, 第二隱含層采用15個(gè)神經(jīng)元,第Ξ隱含層采用15個(gè)神經(jīng)元;輸入層和第一隱含層之間、第一 隱含層和第二隱含層之間采用logsig傳遞函數(shù),第二隱含層和第Ξ隱含層之間、第Ξ隱含 層和輸出層之間采用purelin傳遞函數(shù),各層結(jié)點(diǎn)之間的權(quán)重值均使用trainscg(量化共輛 梯度法)進(jìn)行調(diào)節(jié),訓(xùn)練方法采用LM化e venbergMarquard)算法。
[0016] 有益效果:與現(xiàn)有的穩(wěn)態(tài)平均吞吐率的預(yù)測方法相比,本發(fā)明提供的基于人工神 經(jīng)網(wǎng)絡(luò)的亂序處理器穩(wěn)態(tài)下平均吞吐率的預(yù)測方法,覆蓋了影響穩(wěn)態(tài)平均吞吐率的多個(gè)微 架構(gòu)無關(guān)參數(shù),其中包括:動(dòng)態(tài)指令混合比,關(guān)鍵路徑長度分布,串行指令分布;此外,本發(fā) 明采用神經(jīng)網(wǎng)絡(luò)對(duì)穩(wěn)態(tài)平均吞吐率進(jìn)行預(yù)測,能夠充分地考慮到微架構(gòu)無關(guān)參數(shù)之間的禪 合性,并且通過訓(xùn)練好的模型能夠準(zhǔn)確快速地預(yù)測到穩(wěn)態(tài)平均吞吐率的值。
【附圖說明】
[0017]圖巧采用本發(fā)明訓(xùn)練Ann模型的具體流程圖;
[0018] 圖2為神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練、測試的輸入與目標(biāo)輸出框圖;
[0019] 圖3為神經(jīng)網(wǎng)絡(luò)層級(jí)圖。
【具體實(shí)施方式】
[0020] 下面結(jié)合附圖對(duì)本發(fā)明作更進(jìn)一步的說明。
[0021] -種基于人工神經(jīng)網(wǎng)絡(luò)的亂序處理器穩(wěn)態(tài)下平均吞吐率的預(yù)測方法,包括如下步 驟: