msharmavikram / ensembleMLBP

EnsembleMLBP is a ECE511 course project created by Vikram, Umur and Andrew. Here we explore ensemble+ML based branch predictor. Initially we analyse tournamentBP and provide it loopholes. In second half we discuss RNN-LSTM and reinforcement learning schemes for BP. More details of the project will be added soon. The project is in early stage of development.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ensembleMLBP

EnsembleMLBP is a ECE511 course project created by Vikram, Umur and Andrew. Here we explore ensemble+ML based branch predictor. Initially we analyzed tournamentBP and its downsides. Then we evaluated weighted majority selection scheme in the Ensemble context.

There are several commands to run different kinds of benchmarks. We assume you have built it to support ARM64 OoO core and that the benchmarks will be running in SE mode.

Command : gem5/rungem5.sh soplex gem5/run_microbench.sh gem5/run_sebench.sh gem5/run_all_benchmarks.sh

To reproduce the results discussed in the report, use run_all_benchmarks.sh

To parse and generate data, scripts are provided under the scripts subdirectory. The benchmarks used are precompiled and stored as binaries under benchmark The EnsembleBP predictor should be selected in the ARM OoO config scripts. EnsembleBP2 was used as an experiment file and it is not discussed in our report. TriTournament is the 3-way discrete selection. The report is available in the doc folder. Final results are included for your reference under results.

Please feel free to contact us regarding any questions.

About

EnsembleMLBP is a ECE511 course project created by Vikram, Umur and Andrew. Here we explore ensemble+ML based branch predictor. Initially we analyse tournamentBP and provide it loopholes. In second half we discuss RNN-LSTM and reinforcement learning schemes for BP. More details of the project will be added soon. The project is in early stage of development.


Languages

Language:C++ 75.2%Language:Python 17.4%Language:C 4.6%Language:Assembly 1.2%Language:HTML 0.5%Language:Shell 0.4%Language:M4 0.2%Language:CMake 0.1%Language:Makefile 0.1%Language:Perl 0.1%Language:Scala 0.0%Language:Roff 0.0%Language:Vim Script 0.0%Language:Awk 0.0%Language:Java 0.0%Language:Visual Basic 0.0%Language:Emacs Lisp 0.0%