Errors Implementing Hybrid Branch Predictors on RISCV BOOM core
Ogbo0810 opened this issue · 9 comments
I am working on implementing hybrid branch predictors listed below
- Gshare + TAGE
- TAGE + Alpha
- Perceptron + TAGE
- Gshare + Alpha
- Perceptron + Gshare
- Perceptron + Alpha
- Perceptron + TAGE + Alpha
I created a class definition of the hybrid predictor in the config-mixins.scala file and create a class instance in the BOOMConfigs.scala file.
When I try doing that, the results I get are the same as if I run the benchmark programs (multiplication.riscv, qsort.riscv, and dhrystone.riscv) without any branch predictor.
These are screenshots of what I did for the Gshare + TAGE hybrid combination.
The idea is to replace tagless base predictor (PC indexed 2-bit counter bimodal table) of TAGE with Gshare
Class Definition of Hybrid combination of Gshare and Tage in config-mixins.scala file
Class instance of Hybrid combination of Gshare and Tage in BOOMConfigs.scala file
The CPI I get for all three benchmark programs (multiplication.riscv, qsort.riscv, and dhrystone.riscv) with this hybrid combination is the same as the CPI for when I run the same benchmark programs with no branch predictor.
Reorder WithHybridGshareTAGE
above WithNSmallBooms
Thank you for your recommendation @jerryz123.
I reordered it as you suggested but I am still having the same results as before.
I would appreciate any further suggestions.
Hi @jerryz123
I reordered it as you recommended as follows:
I run into an error when I evaluate with multiplication.riscv benchmark
@jerryz123
I also reordered it as follows:
Can you show the full stack trace? Not just the end?
Hi @jerryz123
I think you have to increase bpdMaxMetaLength
in your predictor config.
Hi @jerryz123
I increased it as you recommended and I am able to get improved results as I aimed for.
Thank you very much. I really appreciate your help