Skip to content

eblissss/branch-prediction

Repository files navigation

BPTP (Branch Predictor Technique Predictor)

A Machine Learning-based Branch Prediction Technique for Performance Optimization

Abstract

Modern computer processors generally use static or dynamic branch prediction to accurately and efficiently predict branch outcomes. Here, we present a new method for branch prediction. This method was designed so that machine learning could choose the optimal method and pattern of prediction for a specific program or thread, for a discrete number of branches, in order to yield the most accurate results. Our results show that we can obtain a similar or greater level of performance than a traditional predictor when employing a feature-training machine learning predictor. In short, our method aims to determine the best standard branch predictor among the G-Share, Bimodal and Smith Predictors for a section of a program execution to maximize prediction accuracy across the entirety of program execution.

Evaluation results

Feature importance for a sample trace

The report is available to view in the repository.

Libraries Used

  • Matplotlib
  • NumPy
  • Scikit-learn
  • Pandas
  • XGBoost

Data collected with Intel Pin Tool

How to use

  • Install required libraries (pip install -r requirements.txt)
  • Configure and run featurefuture.py

C++ Files

A collection of basic simulators

Compile with make clean && make sim

About

Branch Prediction Prediction

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages