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

bpu: disable ittage when no indirect branch #2959

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

eastonman
Copy link
Member

Quick and dirty approach. If the timing doesn't meet, will try ahead pipeline.

@XiangShanRobot
Copy link

[Generated by IPC robot]
commit: 8e003d0

commit astar copy_and_run coremark gcc gromacs lbm linux mcf microbench milc namd povray wrf xalancbmk
8e003d0 1.854 0.449 2.103 1.185 2.170 2.181 2.332 0.973 1.412 1.294 2.742 2.592 2.283 2.951

master branch:

commit astar copy_and_run coremark gcc gromacs lbm linux mcf microbench milc namd povray wrf xalancbmk
dc5a918
bad6084
c686adc 1.854 0.449 2.103 1.182 2.170 2.181 2.335 0.972 1.386 1.294 2.742 2.589 2.283 2.951
bc3d558 1.854 0.449 2.100 1.182 2.170 2.181 2.329 0.972 1.380 1.294 2.742 2.589 2.283 2.951
a58f171 1.854 0.449 2.104 1.182 2.170 2.181 2.329 0.972 1.386 1.294 2.742 2.586 2.283 2.951
ff74867 1.898 0.448 2.105 1.186 2.173 2.175 2.335 0.960 1.372 1.288 2.745 2.583 2.285 2.958
20e09ab 1.898 0.448 2.105 1.186 2.173 2.175 2.333 0.960 1.372 1.288 2.745 2.584 2.285 2.958
aab8ef9 1.862 0.450 2.092 1.174 2.178 2.174 2.331 0.966 1.379 1.253 2.738 2.556 2.283 2.930
d67f093 1.862 0.450 2.091 1.189 2.178 2.174 2.334 0.966 1.389 1.253 2.738 2.566 2.283 2.930
545d7be 1.862 0.450 2.092 1.175 2.178 2.174 2.333 0.966 1.370 1.253 2.738 2.556 2.283 2.930

@eastonman eastonman added the do not merge Do not merge this pull request label May 12, 2024
@eastonman
Copy link
Member Author

This PR may introduce timing violations. Wait for PT result.

@XiangShanRobot
Copy link

[Generated by IPC robot]
commit: 2a0baff

commit astar copy_and_run coremark gcc gromacs lbm linux mcf microbench milc namd povray wrf xalancbmk
2a0baff 1.854 0.450 2.103 1.190 2.468 2.593 2.331 0.962 1.378 1.427 3.123 2.649 2.451 2.960

master branch:

commit astar copy_and_run coremark gcc gromacs lbm linux mcf microbench milc namd povray wrf xalancbmk
1e018fb 1.854 0.450 2.103 1.190 2.468 2.593 2.330 0.962 1.377 1.427 3.123 2.639 2.451 2.960
3c71816 1.854 0.450 2.103 1.190 2.468 2.593 2.330 0.962 1.377 1.427 3.123 2.639 2.451 2.960
dfe034b 1.854 0.449 2.103 1.182 2.170 2.181 2.328 0.972 1.386 1.294 2.742 2.592 2.283 2.951
bdc1606 1.854 0.449 2.101 1.182 2.170 2.181 2.329 0.973 1.386 1.294 2.742 2.589 2.283 2.951
dc5a918 1.854 0.449 2.103 1.181 2.170 2.181 2.329 0.973 1.386 1.294 2.742 2.589 2.283 2.951
bad6084 1.854 0.449 2.103 1.182 2.170 2.181 2.329 0.972 1.386 1.294 2.742 2.589 2.283 2.951
c686adc 1.854 0.449 2.103 1.182 2.170 2.181 2.335 0.972 1.386 1.294 2.742 2.589 2.283 2.951
bc3d558 1.854 0.449 2.100 1.182 2.170 2.181 2.329 0.972 1.380 1.294 2.742 2.589 2.283 2.951
a58f171 1.854 0.449 2.104 1.182 2.170 2.181 2.329 0.972 1.386 1.294 2.742 2.586 2.283 2.951
ff74867 1.898 0.448 2.105 1.186 2.173 2.175 2.335 0.960 1.372 1.288 2.745 2.583 2.285 2.958

RET is JALR too, so !isRet && isJalr.
This condition is the same as ITTAGE updateValid, see ITTAGE.scala
@eastonman
Copy link
Member Author

On dhrystone, around 82% of BPU fire now does not use ITTAGE.

However, ITTAGE is literally unused is dhrystone (see ittage_provided_at_pred below)

[PERF ][time=               68488] TOP.SimTop.l_soc.core_with_l2.core.frontend.bpu.predictors.ittage: ittage_closed_due_to_uftb_info,                35840
[PERF ][time=               68488] TOP.SimTop.l_soc.core_with_l2.core.frontend.bpu.predictors.ittage: ittage_used,                 7778
[PERF ][time=               68488] TOP.SimTop.l_soc.core_with_l2.core.frontend.bpu.predictors.ittage: ittage_provided_at_pred,                   21

The other 20% ITTAGE usage is due to uftb miss when no branch is detected.

Screenshot 2024-05-13 at 10 31 11

The 20% can be further optimized after #2963 is ready.
If uftb miss && ftb closed, usually means there is no branch, and ITTAGE is obviously useless.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
do not merge Do not merge this pull request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants