[DYNAREC][ENV] Disabled SEP by default - #4045
Merged
Merged
Conversation
Now that we have callret enabled by default, I noticed SEP causes the branch misprediction by an order of magnitude in coremark, while the memory-saving effect is almost imperceptible.
```
ksco@steel [ coremark@main ] $ BOX64_LOG=0 BOX64_NOBANNER=1 BOX64_DYNACACHE=0 BOX64_DYNAREC_SEP=0 perf stat -e task-clock,cycles,instructions,branches,branch-misses -- taskset -c 2 box64 ./coremark.exe_x64 0 0 0x66 200000 7 1 >/dev/null
Performance counter stats for 'taskset -c 2 box64 ./coremark.exe_x64 0 0 0x66 200000 7 1':
16,339.65 msec task-clock:u
35,828,022,082 cycles:u
118,528,644,489 instructions:u
12,994,274,457 branches:u
36,068,961 branch-misses:u
16.348269274 seconds time elapsed
16.331188000 seconds user
0.009995000 seconds sys
ksco@steel [ coremark@main ] $ BOX64_LOG=0 BOX64_NOBANNER=1 BOX64_DYNACACHE=0 BOX64_DYNAREC_SEP=1 perf stat -e task-clock,cycles,instructions,branches,branch-misses -- taskset -c 2 box64 ./coremark.exe_x64 0 0 0x66 200000 7 1 >/dev/null
Performance counter stats for 'taskset -c 2 box64 ./coremark.exe_x64 0 0 0x66 200000 7 1':
18,571.57 msec task-clock:u
40,721,222,650 cycles:u
118,523,943,716 instructions:u
12,993,208,645 branches:u
383,363,320 branch-misses:u
18.581470637 seconds time elapsed
18.564061000 seconds user
0.008996000 seconds sys
ksco@steel [ coremark@main ] $ perf stat -e task-clock,cycles,instructions,branches,branch-misses -- taskset -c 2 ./coremark.exe 0 0 0x66 200000 7 1 >/dev/null
Performance counter stats for 'taskset -c 2 ./coremark.exe 0 0 0x66 200000 7 1':
9,757.79 msec task-clock:u
21,407,080,976 cycles:u
62,785,977,365 instructions:u
11,852,476,157 branches:u
18,851,352 branch-misses:u
9.762550998 seconds time elapsed
9.757495000 seconds user
0.000999000 seconds sys
```
Owner
|
Are you sure about the memory saving being minimmum? (how about it's enable by default on SAVE_MEM configuration?) |
Collaborator
Author
Do you have any workload where SEP reduces memory consumption noticeably? Because I can't find one. |
Collaborator
Author
|
Anyway, I think "enable by default on SAVE_MEM" is a good idea indeed. |
Collaborator
Author
|
Done |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Now that we have callret enabled by default, I noticed SEP causes the branch misprediction by an order of magnitude in coremark, while the memory-saving effect is almost imperceptible.