Branch Prediction Is Not A Solved Problem:Measurements, Opportunities, and Future Directions(IISWC)
雖然畝日安最先進的預測器在大多數靜態分支上幾乎達到了完美的預測精度,但生于錯誤預測的修正仍能帶來極大的性能提高。目前,錯誤預測主要來自于:(1)一部分系統上難以預測的分支(H2P);(2)動態執行次數很少的罕見分支。
使用來自SPECint 2017的數據和額外的大代碼占用空間應用,文章中量化了這兩種分支的出現和對IPC的影響,證明了增加資源提供給現有的分支預測器并不能單獨解決大多數錯誤預測的根本原因。
此外,文中提出新的研究方向,例如,部署機器學習以改進 H2P 的模式匹配,并使用片上相位學習(phase learning)來跟蹤罕見分支的長期統計數據。
當前最先的預測器
- PPM:歷史長度的數量和每個長度下的表項數是其存儲/準確性的主要驅動因素。
- 感知器預測器:通過學習不同歷史位置的權重來減輕 PPM 精確模式匹配的缺點。在預測時,權重乘以全局歷史序列、求和并設置閾值以生成預測。
- 針對特定程序執行行為的預測器:循環預測器,Wormhole預測器,Inner-Most Loop Iteration counter(IMLI),store/load 預測器。
- Ensemble Models:例如TAGE-SC-L,其中統計校正器使用類似感知器的模型將權重應用于組成預測器的預測。
誤預測特征
1. H2P分支
特征:在每個workload的30M-指令 slice中(1)在8KB TAGE-SC-L預測器下,低于99%的預測準確;(2)至少執行15000次;(3)在slice中至少生成1000次誤預測。
選擇標準是表現出與系統錯誤預測一致的行為,并產生足夠的歷史數據來訓練機器學習模型的分支IP。
2. LCF(large code footprint)traces中的罕見分支
LCF分支的二進制文件中每30M指令片中都包含比SPECint 2017數據集更多的靜態分支。
特征:(1)在TAGE-SC-L 8KB下的平均準確率(0.85)大大低于SPECintv 2017數據集的準確率(0.952);(2)對于每個應用程序中的大量靜態分支(平均值:14,072),每個靜態分支的平均動態執行次數很少(平均值:612.8)。
如圖3所示,動態執行的分布(中間的圖)向左傾斜, 85% 的靜態分支 IP 執行不到 100 次。
此外,動態錯誤預測的分布(左圖)偏向于零,即絕大多數分支都以高精度預測,預測準確度的分布(右圖)證實了這一點,其中 55% 的分支的預測準確度為 0.99 或更高。但是,可以看到,仍存在一大部分(12%)靜態分支IP以0.10或更低的準確率預測。
3. CPU流水線規模對誤預測的影響
當CPU流水線擴大是H2Ps和罕見分支對性能的影響并不一樣顯著。雖然H2Ps在現在CPU上對SEPCint 2017具有超大一部分的影響,但隨著流水線擴大和應用規模的擴大,罕見分支對潛在性能的影響變得同等重要。
一味擴大BPU資源是不夠的
?由上圖可以看出,在固定的流水線寬度和深度下,從TAGE-SC-L 8KB到TAGE-SC-L 64KB,后者帶來的IPC的提高低的多(縱軸表示IPC得到的增益)。
H2Ps具有高歷史變化:H2Ps的依賴分支出現在許多不同的位置,并且它再次出現在同一位置的可能性是高度不均勻的。基于特定位置相關性或精確模式重復出現的預測必須應對大量隨機變化,而且這種變化會隨著歷史長度的增加而增加。在TAGE-SC-L 64KB中,具有高歷史序列變異的 H2P 分支將導致異常高的重新分配率。TAGE-SC-L 的底層模式匹配機制難以對 H2P 歷史數據中的預測統計數據進行分組,結果浪費了很大一部分存儲資源。(好像懂了)
?罕見分支統計數據太少:對于LCF應用,96%的靜態分支動態執行次數低于1000次,其中85%低于100次。由于 IPC 的很大一部分與動態執行少于 100 次的分支相關聯,罕見的分支提供的統計數據太少,無法支持穩定的學習和以后在運行時的重用。即使在TAGE-SC-L 1024KB中也收效甚微,基本在TAGE-SC-L 64KB時已達到存儲和效益的最佳平衡,再增大預測表容量也改進極小(如圖7所示)。
分支預測的新方向
?保留TAGE-SC-L預測絕大多數分支,同時增加額外的資源專門解決上述分支。
A.分支預測器設計中的一個關鍵假設是它們的部署方式
這可以根據預測統計數據是在線還是離線捕獲(即,訓練)進行分類,類似地,預測是在線還是離線生成(即,通過推理)。 在這里,我們將在線定義為在 BPU 上執行計算,將離線定義為使用需要將數據(例如分支歷史或其他微架構狀態信息)移動到其他地方的計算。離線訓練使得預測器可以利用更多的數據,及應用如基于機器學習的更有效的模式識別算法。
B.使用更多的訓練數據
C.使用機器學習模型
參考文獻
[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.
總結
以上是生活随笔為你收集整理的Branch Prediction Is Not A Solved Problem:Measurements, Opportunities, and Future Directions(IISWC)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: S32k144SDK版本——FTM_IC
- 下一篇: Siebel图解