Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Errors Implementing Hybrid Branch Predictors on RISCV BOOM core #5

Open
Ogbo0810 opened this issue Nov 27, 2023 · 9 comments
Open

Errors Implementing Hybrid Branch Predictors on RISCV BOOM core #5

Ogbo0810 opened this issue Nov 27, 2023 · 9 comments

Comments

@Ogbo0810
Copy link

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
image

Class instance of Hybrid combination of Gshare and Tage in BOOMConfigs.scala file
image

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.

@jerryz123
Copy link
Contributor

Reorder WithHybridGshareTAGE above WithNSmallBooms

@Ogbo0810
Copy link
Author

Thank you for your recommendation @jerryz123.
I reordered it as you suggested but I am still having the same results as before.
image
image

I would appreciate any further suggestions.

@jerryz123
Copy link
Contributor

No, I mean in this class:
image
, reorder them

@Ogbo0810
Copy link
Author

Hi @jerryz123
I reordered it as you recommended as follows:
image

I run into an error when I evaluate with multiplication.riscv benchmark
image

@Ogbo0810
Copy link
Author

@jerryz123
I also reordered it as follows:
image

I still have this error:
image

@jerryz123
Copy link
Contributor

Can you show the full stack trace? Not just the end?

@Ogbo0810
Copy link
Author

Hi @jerryz123

I has the stacktrace as follows:
image
image
image
image

@jerryz123
Copy link
Contributor

I think you have to increase bpdMaxMetaLength in your predictor config.

@Ogbo0810
Copy link
Author

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants