gem5: Add the ability to create SimPoint BBV profiles
Review Request #1474 - Created Oct. 19, 2012 and discarded
| Information | |
|---|---|
| Mitch Hayenga | |
| gem5 | |
| Reviewers | |
| Default | |
Add the ability to create SimPoint basic block vector (BBV) files from gem5. This patch adds SimPoint profiling functionality to the atomic CPU model. Normally one has to use another tool like valgrind or pinpoints to perform this analysis. Using the --simpoint_profile and --simpoint_interval options, after running simulation a simpoint.bb.gz file will be created in the gem5 output directory. This file can then be fed to the simpoint tool to identify program sections representative of overall program behavior.
Ran a few benchmarks, output simpoint file and selected simpoints seem ok.
Issue Summary
15
15
0
0
Posted (Oct. 21, 2012, 6:02 p.m.)
Overall, seems like a useful addition. The keyword should be one of the following: base, stats, sim, config, ruby, mem, arm, x86, arch, cpu, dev, scons, alpha, mips, power, sparc
-
configs/common/Options.py (Diff revision 1) -
Should the type not be long long as in the Ticks?
-
configs/example/se.py (Diff revision 1) -
80 char? I would suggest to make the fastmem option responsible for checking that we run in atomic and skip that check here.
-
src/cpu/simple/AtomicSimpleCPU.py (Diff revision 1) -
Param.Tick? Alternatively even a more abstract frequency or latency for absolute time?
-
src/cpu/simple/atomic.hh (Diff revision 1) -
use the m5 hash_map and hide the implementation. Otherwise we have issues with the namespace and header for the map depending on gcc versions
-
src/cpu/simple/atomic.hh (Diff revision 1) -
see the base/hashmap for how to open and close this namespace using the defines provided
-
src/cpu/simple/atomic.hh (Diff revision 1) -
Doxygen please, for all the new bits :)
-
src/cpu/simple/atomic.hh (Diff revision 1) -
const?
-
src/cpu/simple/atomic.hh (Diff revision 1) -
const?
-
src/cpu/simple/atomic.cc (Diff revision 1) -
Please initialize all the variables that are introduced.
-
src/cpu/simple/atomic.cc (Diff revision 1) -
Do we really want to hardcode the file? what happens when you have many CPUs?
-
src/cpu/simple/atomic.cc (Diff revision 1) -
One if statement?
-
src/cpu/simple/atomic.cc (Diff revision 1) -
Comments please. Throughout.
-
src/cpu/simple/atomic.cc (Diff revision 1) -
Before we use auto anywhere everyone has to agree to drop gcc 4.3 support and _always_ use the c++0x flag. I am happy to do this, but this is the topic for an e-mail.
Posted (Oct. 21, 2012, 11:13 p.m.)
Thanks for posting this Mitch. I've got some minor issues and Andreas does as well, but we really appreciate the contribution.
-
src/cpu/simple/atomic.cc (Diff revision 1) -
Is tihs actually called? There was a thread on the mailing list about us not doing a good job calling destructors.
-
src/cpu/simple/atomic.cc (Diff revision 1) -
newline please
