A plethora of research efforts have focused on fine-Tuning branch predictors to increasingly higher levels of accuracy. However, several important optimization, financial, and statistical data analysis algorithms rely on probabilistic computation. These applications draw random values from a distribution and steer control flow based on those values. Such probabilistic branches are challenging to predict because of their inherent probabilistic nature. As a result, probabilistic codes significantly suffer from branch mispredictions. This paper proposes Probabilistic Branch Support (PBS), a hardware/software cooperative technique that leverages the observation that the outcome of probabilistic branches needs to be correct only in a statistical sense. PBS stores the outcome and the probabilistic values that lead to the outcome of the current execution to direct the next execution of the probabilistic branch, thereby completely removing the penalty for mispredicted probabilistic branches. PBS relies on marking probabilistic branches in software for hardware to exploit. Our evaluation shows that PBS improves MPKI by 45% on average (and up to 99%) and IPC by 6.7% (up to 17%) over the TAGE-SC-L predictor. PBS requires 193 bytes of hardware overhead and introduces statistically negligible algorithmic inaccuracy.
|Original language||English (US)|
|Title of host publication||Proceedings - 51st Annual IEEE/ACM International Symposium on Microarchitecture, MICRO 2018|
|Publisher||IEEE Computer Society|
|Number of pages||13|
|State||Published - Dec 12 2018|
|Event||51st Annual IEEE/ACM International Symposium on Microarchitecture, MICRO 2018 - Fukuoka, Japan|
Duration: Oct 20 2018 → Oct 24 2018
|Name||Proceedings of the Annual International Symposium on Microarchitecture, MICRO|
|Other||51st Annual IEEE/ACM International Symposium on Microarchitecture, MICRO 2018|
|Period||10/20/18 → 10/24/18|
Bibliographical noteFunding Information:
We thank the reviewers for their valuable suggestions. This work was supported by the European Research Council (ERC) Advanced Grant agreement No. 741097, and the FWO projects G.0434.16N and G.0144.17N. This work was further supported by U.S. National Science Foundation grant no. CCF-1438286. Any opinions, findings and conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of the NSF.
- Branch Prediction
- Probabilistic Branches
- Probabilistic Programs