Meng Wang <meng <at> tupleapes.com> writes: > > Thanks Mitch! Your script does a great favor for me. I think It's very helpful to anyone who wants to reduce the simulation runtime or make the interval analysis more efficiently. Thanks again. > Meng > On Apr 5, 2013, at 6:54 PM, Mitch Hayenga <mitch.hayenga+gem5 <at> gmail.com> wrote: > Hi Meng, > I'm CC'ing the mailing list in case anyone else has interest in running with the simpoint patch. > > This part of the patch was coded by Ali I think. I originally wrote the profiling bit that generated the bbv file. I use this current patch with with my own custom se.py script. I've linked it as an example of how to use this patch (though its not greatly commented). > > A version of my config script can be found at http://www.ece.wisc.edu/~hayenga/mitch_config.tgz. I just didn't want to go through the trouble of hacking this into the main gem5 se.py script. It has a few modes 1) Running normally 2) Generating the BBV data 3) Swapping between detailed/atomic simulation at simpoints 4) Generating checkpoints at simpoints 5) Simulating a single simpoint (restored from a checkpoint) with a detailed CPU. > > Usage: > 1) General running of benchmarks (works like regular se.py, just fewer options) > ./build/ARM/gem5.opt configs/pharm/se2.py --cfg=configs/pharm/nehalem.cfg --cmd=../tests/libquantum_base.armv7a-O3-vfpv3d16-vect -o "15 2" > > 2) Running a benchmark dropping simpoint info (with an interval size of 1M instructions) > ./build/ARM/gem5.opt configs/pharm/se2.py --cfg=configs/pharm/nehalem.cfg --cmd=../tests/libquantum_base.armv7a-O3-vfpv3d16-vect -o "15 2" -- simpoint-mode=generate --simpoint-interval=1000000 > > 3) Running with an atomic cpu, swapping to detailed only during simpoints (stats are dumped for each simpoint) > ./build/ARM/gem5.opt configs/pharm/se2.py --cfg=configs/pharm/nehalem.cfg --cmd=../tests/libquantum_base.armv7a-O3-vfpv3d16-vect -o "15 2" --simpoint- mode=fastfwd --simpoint-interval=1000000 --simpoint-points=simpoints > > 4) Generating checkpoints at every simpoint > ./build/ARM/gem5.opt configs/pharm/se2.py --cfg=configs/pharm/nehalem.cfg --cmd=../tests/libquantum_base.armv7a-O3-vfpv3d16-vect -o "15 2" --simpoint- mode=checkpoint_gen --simpoint-interval=1000000 --simpoint-points=simpoints --checkpoint-dir=ckpt > > 5) Running a specific simpoint (restored from a checkpoint) > ./build/ARM/gem5.opt configs/pharm/se2.py --cfg=configs/pharm/nehalem.cfg --cmd=../tests/libquantum_base.armv7a-O3-vfpv3d16-vect -o "15 2" --simpoint- mode=checkpoint --simpoint-interval=1000000 --simpoint-points=simpoints -- checkpoint-dir=ckpt --checkpoint-num=1 > > Hope this helps. > > > On Fri, Apr 5, 2013 at 9:43 AM, Meng Wang <meng <at> tupleapes.com> wrote: > Hi Mitch,I am reading your patch for profiling simpoint vector. (http://reviews.gem5.org/r/1705/) I don't understand the code snippet: > > > > 155 > > > 156 > > // Set up instruction-count-based termination events for SimPoints > > > > > 157 // Typically, there are more than one action points. > > > > > > > 158 // Simulation.py is responsible to take the necessary actions upon > > > > > 159 // exitting the simulation loop. > > > > > > 160 if (!p->simpoint_start_insts.empty()) { > > > > > 161 const char *cause = "simpoint starting point found"; > > > > > 162 for (size_t i = 0; i < p->simpoint_start_insts.size(); ++i) { > > > > > 163 Event *event = new SimLoopExitEvent(cause, 0); > > > > > 164 comInstEventQueue[0]->schedule(event, p- >simpoint_start_insts[i]); > > > > > 165 } > > > > > > > 166 } > > > Why does exiting event has to be specified explicitly? When the binary calls exit(), should gem5 terminate simulation? > > Best Wishes, > Meng Wang > > > > > > > > > > > > > _______________________________________________ > gem5-users mailing list > gem5-users <at> gem5.org > http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
Hi Mitch and Meng, Thanks for bringing this thread up! I am fairly new to gem5. Please execuse me if my questions are silly. My questions are: I am wondering, if we would like to find some representative points of program behavior, what should we do after we generate this BBV file? Should we feed this BBV file to UCSD SimPoint? (http://cseweb.ucsd.edu/~calder/simpoint) If yes, after getting the result from UCSD SimPoint, how should we execute those representative points on gem5? I saw from Mitch's reply that we can run a specific simpoint by executing: 5) Running a specific simpoint (restored from a checkpoint) > ./build/ARM/gem5.opt configs/pharm/se2.py --cfg=configs/pharm/nehalem.cfg --cmd=../tests/libquantum_base.armv7a-O3-vfpv3d16-vect -o "15 2" --simpoint- mode=checkpoint --simpoint-interval=1000000 --simpoint-points=simpoints -- checkpoint-dir=ckpt --checkpoint-num=1 however, when I studied the patch, I figured that the patch was for generating the BBV file, but not for resuming the simpoint. Is this functionality (resuming the selected simpoint) has already been shipped with the latest gem5-stable? Thanks! -Chang-Hong _______________________________________________ gem5-users mailing list [email protected] http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
