Branch Prediction Is Not A Solved Problem:Measurements, Opportunities, and Future Directions(IISWC)
雖然畝日安最先進(jìn)的預(yù)測(cè)器在大多數(shù)靜態(tài)分支上幾乎達(dá)到了完美的預(yù)測(cè)精度,但生于錯(cuò)誤預(yù)測(cè)的修正仍能帶來(lái)極大的性能提高。目前,錯(cuò)誤預(yù)測(cè)主要來(lái)自于:(1)一部分系統(tǒng)上難以預(yù)測(cè)的分支(H2P);(2)動(dòng)態(tài)執(zhí)行次數(shù)很少的罕見(jiàn)分支。
使用來(lái)自SPECint 2017的數(shù)據(jù)和額外的大代碼占用空間應(yīng)用,文章中量化了這兩種分支的出現(xiàn)和對(duì)IPC的影響,證明了增加資源提供給現(xiàn)有的分支預(yù)測(cè)器并不能單獨(dú)解決大多數(shù)錯(cuò)誤預(yù)測(cè)的根本原因。
此外,文中提出新的研究方向,例如,部署機(jī)器學(xué)習(xí)以改進(jìn) H2P 的模式匹配,并使用片上相位學(xué)習(xí)(phase learning)來(lái)跟蹤罕見(jiàn)分支的長(zhǎng)期統(tǒng)計(jì)數(shù)據(jù)。
當(dāng)前最先的預(yù)測(cè)器
- PPM:歷史長(zhǎng)度的數(shù)量和每個(gè)長(zhǎng)度下的表項(xiàng)數(shù)是其存儲(chǔ)/準(zhǔn)確性的主要驅(qū)動(dòng)因素。
- 感知器預(yù)測(cè)器:通過(guò)學(xué)習(xí)不同歷史位置的權(quán)重來(lái)減輕 PPM 精確模式匹配的缺點(diǎn)。在預(yù)測(cè)時(shí),權(quán)重乘以全局歷史序列、求和并設(shè)置閾值以生成預(yù)測(cè)。
- 針對(duì)特定程序執(zhí)行行為的預(yù)測(cè)器:循環(huán)預(yù)測(cè)器,Wormhole預(yù)測(cè)器,Inner-Most Loop Iteration counter(IMLI),store/load 預(yù)測(cè)器。
- Ensemble Models:例如TAGE-SC-L,其中統(tǒng)計(jì)校正器使用類(lèi)似感知器的模型將權(quán)重應(yīng)用于組成預(yù)測(cè)器的預(yù)測(cè)。
誤預(yù)測(cè)特征
1. H2P分支
特征:在每個(gè)workload的30M-指令 slice中(1)在8KB TAGE-SC-L預(yù)測(cè)器下,低于99%的預(yù)測(cè)準(zhǔn)確;(2)至少執(zhí)行15000次;(3)在slice中至少生成1000次誤預(yù)測(cè)。
選擇標(biāo)準(zhǔn)是表現(xiàn)出與系統(tǒng)錯(cuò)誤預(yù)測(cè)一致的行為,并產(chǎn)生足夠的歷史數(shù)據(jù)來(lái)訓(xùn)練機(jī)器學(xué)習(xí)模型的分支IP。
2. LCF(large code footprint)traces中的罕見(jiàn)分支
LCF分支的二進(jìn)制文件中每30M指令片中都包含比SPECint 2017數(shù)據(jù)集更多的靜態(tài)分支。
特征:(1)在TAGE-SC-L 8KB下的平均準(zhǔn)確率(0.85)大大低于SPECintv 2017數(shù)據(jù)集的準(zhǔn)確率(0.952);(2)對(duì)于每個(gè)應(yīng)用程序中的大量靜態(tài)分支(平均值:14,072),每個(gè)靜態(tài)分支的平均動(dòng)態(tài)執(zhí)行次數(shù)很少(平均值:612.8)。
如圖3所示,動(dòng)態(tài)執(zhí)行的分布(中間的圖)向左傾斜, 85% 的靜態(tài)分支 IP 執(zhí)行不到 100 次。
此外,動(dòng)態(tài)錯(cuò)誤預(yù)測(cè)的分布(左圖)偏向于零,即絕大多數(shù)分支都以高精度預(yù)測(cè),預(yù)測(cè)準(zhǔn)確度的分布(右圖)證實(shí)了這一點(diǎn),其中 55% 的分支的預(yù)測(cè)準(zhǔn)確度為 0.99 或更高。但是,可以看到,仍存在一大部分(12%)靜態(tài)分支IP以0.10或更低的準(zhǔn)確率預(yù)測(cè)。
3. CPU流水線規(guī)模對(duì)誤預(yù)測(cè)的影響
當(dāng)CPU流水線擴(kuò)大是H2Ps和罕見(jiàn)分支對(duì)性能的影響并不一樣顯著。雖然H2Ps在現(xiàn)在CPU上對(duì)SEPCint 2017具有超大一部分的影響,但隨著流水線擴(kuò)大和應(yīng)用規(guī)模的擴(kuò)大,罕見(jiàn)分支對(duì)潛在性能的影響變得同等重要。
一味擴(kuò)大BPU資源是不夠的
?由上圖可以看出,在固定的流水線寬度和深度下,從TAGE-SC-L 8KB到TAGE-SC-L 64KB,后者帶來(lái)的IPC的提高低的多(縱軸表示IPC得到的增益)。
H2Ps具有高歷史變化:H2Ps的依賴(lài)分支出現(xiàn)在許多不同的位置,并且它再次出現(xiàn)在同一位置的可能性是高度不均勻的。基于特定位置相關(guān)性或精確模式重復(fù)出現(xiàn)的預(yù)測(cè)必須應(yīng)對(duì)大量隨機(jī)變化,而且這種變化會(huì)隨著歷史長(zhǎng)度的增加而增加。在TAGE-SC-L 64KB中,具有高歷史序列變異的 H2P 分支將導(dǎo)致異常高的重新分配率。TAGE-SC-L 的底層模式匹配機(jī)制難以對(duì) H2P 歷史數(shù)據(jù)中的預(yù)測(cè)統(tǒng)計(jì)數(shù)據(jù)進(jìn)行分組,結(jié)果浪費(fèi)了很大一部分存儲(chǔ)資源。(好像懂了)
?罕見(jiàn)分支統(tǒng)計(jì)數(shù)據(jù)太少:對(duì)于LCF應(yīng)用,96%的靜態(tài)分支動(dòng)態(tài)執(zhí)行次數(shù)低于1000次,其中85%低于100次。由于 IPC 的很大一部分與動(dòng)態(tài)執(zhí)行少于 100 次的分支相關(guān)聯(lián),罕見(jiàn)的分支提供的統(tǒng)計(jì)數(shù)據(jù)太少,無(wú)法支持穩(wěn)定的學(xué)習(xí)和以后在運(yùn)行時(shí)的重用。即使在TAGE-SC-L 1024KB中也收效甚微,基本在TAGE-SC-L 64KB時(shí)已達(dá)到存儲(chǔ)和效益的最佳平衡,再增大預(yù)測(cè)表容量也改進(jìn)極小(如圖7所示)。
分支預(yù)測(cè)的新方向
?保留TAGE-SC-L預(yù)測(cè)絕大多數(shù)分支,同時(shí)增加額外的資源專(zhuān)門(mén)解決上述分支。
A.分支預(yù)測(cè)器設(shè)計(jì)中的一個(gè)關(guān)鍵假設(shè)是它們的部署方式
這可以根據(jù)預(yù)測(cè)統(tǒng)計(jì)數(shù)據(jù)是在線還是離線捕獲(即,訓(xùn)練)進(jìn)行分類(lèi),類(lèi)似地,預(yù)測(cè)是在線還是離線生成(即,通過(guò)推理)。 在這里,我們將在線定義為在 BPU 上執(zhí)行計(jì)算,將離線定義為使用需要將數(shù)據(jù)(例如分支歷史或其他微架構(gòu)狀態(tài)信息)移動(dòng)到其他地方的計(jì)算。離線訓(xùn)練使得預(yù)測(cè)器可以利用更多的數(shù)據(jù),及應(yīng)用如基于機(jī)器學(xué)習(xí)的更有效的模式識(shí)別算法。
B.使用更多的訓(xùn)練數(shù)據(jù)
C.使用機(jī)器學(xué)習(xí)模型
參考文獻(xiàn)
[1]?S. Tarsa, C.-K. Lin, G. Keskin, G. Chinya, and H. Wang, “Improving Branch Prediction By Modeling Global History with Convolutional Neural Networks,” ISCA AIDArc, 2019.
[2] S. Tarsa, C.-K. Lin, G. Keskin, G. Chinya, and H. Wang, “Improving Branch Prediction By Modeling Global History with Convolutional Neural Networks,” ISCA AIDArc, 2019.
[3]?A. Seznec, J. S. Miguel, and J. Albericio, “The inner most loop iteration counter: a new dimension in branch history,” in MICRO, 2015.
[4]?M. Farooq, Khubaib, and L. John, “Store-Load-Branch (SLB) Predictor:A Compiler Assisted Branch Prediction for Data Dependent Branches,”in HPCA 2013, 2013.
總結(jié)
以上是生活随笔為你收集整理的Branch Prediction Is Not A Solved Problem:Measurements, Opportunities, and Future Directions(IISWC)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: S32k144SDK版本——FTM_IC
- 下一篇: Siebel图解