XiangShan icon indicating copy to clipboard operation
XiangShan copied to clipboard

bpu: disable ittage when no indirect branch

Open eastonman opened this issue 9 months ago • 1 comments

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

eastonman avatar May 09 '24 13:05 eastonman

[Generated by IPC robot] commit: 8e003d09b744bcf603340eaf9b04391d75d17fbc

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

XiangShanRobot avatar May 10 '24 13:05 XiangShanRobot

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

eastonman avatar May 12 '24 06:05 eastonman

[Generated by IPC robot] commit: 2a0baffab464332dba7aa7318d1413361c270975

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

XiangShanRobot avatar May 12 '24 17:05 XiangShanRobot

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.

eastonman avatar May 13 '24 02:05 eastonman

Timing doesn't meet, so turn to a less aggressive plan.

eastonman avatar May 31 '24 14:05 eastonman