Also see configs/common/Simulation.py
within you shall find:
for i in xrange(np):
switch_cpus[i].system = testsys
switch_cpus_1[i].system = testsys
if not m5.build_env['FULL_SYSTEM']:
switch_cpus[i].workload = testsys.cpu[i].workload
switch_cpus_1[i].workload = testsys.cpu[i].workload
switch_cpus[i].clock = testsys.cpu[0].clock
switch_cpus_1[i].clock = testsys.cpu[0].clock
# if restoring, make atomic cpu simulate only a few instructions
if options.checkpoint_restore != None:
testsys.cpu[i].max_insts_any_thread = 1
# Fast forward to specified location if we are not restoring
elif options.fast_forward:
testsys.cpu[i].max_insts_any_thread =
int(options.fast_forward)
# Fast forward to a simpoint (warning: time consuming)
elif options.simpoint:
if testsys.cpu[i].workload[0].simpoint == 0:
m5.panic('simpoint not found')
testsys.cpu[i].max_insts_any_thread = \
testsys.cpu[i].workload[0].simpoint
# No distance specified, just switch
else:
testsys.cpu[i].max_insts_any_thread = 1
and
if options.take_checkpoints != None and \
(options.simpoint or options.at_instruction):
offset = int(options.take_checkpoints)
# Set an instruction break point
if options.simpoint:
for i in xrange(np):
if testsys.cpu[i].workload[0].simpoint == 0:
m5.panic('no simpoint for
testsys.cpu[%d].workload[0]' % i)
checkpoint_inst =
int(testsys.cpu[i].workload[0].simpoint) + offset
testsys.cpu[i].max_insts_any_thread = checkpoint_inst
# used for output below
options.take_checkpoints = checkpoint_inst
else:
options.take_checkpoints = offset
# Set all test cpus with the right number of instructions
# for the upcoming simulation
for i in xrange(np):
testsys.cpu[i].max_insts_any_thread = offset
Ashutosh Jain wrote:
> HI
>
> Thanks for the response Will.
>
> Me too assuming that the Simpoint value should be lesser then the max
> instruction count. But then the point is" what should I take the
> standard simpoint value" for a simulation with max_inst_all_thread to
> be 100 Million instructions.
>
> I have tried simulations with standard simpoint value that have large
> value, it doesn't give any change in the results, while when using the
> early simpoint values that has lower simpoint values, it produces the
> desired result. Why is this so??
>
> Thanks in advance.
> Ashutosh Jain
>
> On Sun, Oct 4, 2009 at 3:24 PM, Will Beazley <[email protected]
> <mailto:[email protected]>> wrote:
>
> Since no one more knowledgeable is going to answer I'll take a
> stab at it:
>
> What is your max_insts = ?
>
> <for the three cases?>
>
> I had this problem and I found that if the Simpoint is greater
> than the
> max_insts, max_insts is reached before the Simpoint. Further, I should
> presume that max_insts should be the limit/end of what you are
> trying to
> sample so Simpoint is the start of your sample and max_insts is the or
> greater than the end of it.
>
>
>
> Ashutosh Jain wrote:
> > Hi
> >
> > I am trying to simulate two experiments dealing with multi-core
> > multi-threaded system. Say case is 2 core X 2 thread. So there are 4
> > benchmarks used. I am using following SPEC CPU 2000 benchmarks:
> swim,
> > lucas, equake, fma3d. I have also setup the early simpoint
> values for
> > each for them ( 5, 35, 194, 298 respectively) .
> >
> > Now I am running three simulations with max_insts_all_thread = 100M:
> >
> > case (0) when all benchmarks have simpoint values 0.
> >
> > case (1) When benchmarks are used in following order with their
> early
> > simpoint values
> >
> > system.cpu[0].workload = Benchmarks.SPECSWIM() (500,000,000),
> > Benchmarks.SPECFMA3D() (29,800,000,000)
> > system.cpu[1].workload = Benchmarks.SPECEQUAKE()(19,400,000,000),
> > Benchmarks.SPECART() (3,500,000,000)
> >
> > case (2) When benchmarks are used in with their early simpoint
> values
> > while inter-changing the benchmarks for cpu [0].
> >
> > system.cpu[0].workload = Benchmarks.SPECFMA3D() (29,800,000,000),
> > Benchmarks.SPECSWIM() (500,000,000)
> > system.cpu[1].workload = Benchmarks.SPECEQUAKE()(19,400,000,000),
> > Benchmarks.SPECART() (3,500,000,000)
> >
> > I have compared the simulations stats on m5stats file. The case (0)
> > and case (2) produces no differences in the statistics in the stats
> > file. But the case (1) produces the difference in the
> statistics. Why
> > this happens??
> >
> > Ashutosh Jain
> >
> > On Thu, Oct 1, 2009 at 9:49 AM, Shoaib Akram
> <[email protected] <mailto:[email protected]>
> > <mailto:[email protected] <mailto:[email protected]>>> wrote:
> >
> > I guess if you go through the ASPLOS presentation, there are
> good
> > examples.
> >
> > ---- Original message ----
> > >Date: Thu, 1 Oct 2009 10:43:14 -0400
> > >From: soumyaroop roy <[email protected]
> <mailto:[email protected]> <mailto:[email protected]
> <mailto:[email protected]>>>
> > >Subject: [m5-users] Workload Simpoint
> > >To: M5 users mailing list <[email protected]
> <mailto:[email protected]>
> > <mailto:[email protected] <mailto:[email protected]>>>
> > >
> > > How does the simpoint attribute work? Is it like
> > _______________________________________________
> > m5-users mailing list
> > [email protected] <mailto:[email protected]>
> <mailto:[email protected] <mailto:[email protected]>>
> > http://m5sim.org/cgi-bin/mailman/listinfo/m5-users
> >
> >
> >
> ------------------------------------------------------------------------
> >
> > _______________________________________________
> > m5-users mailing list
> > [email protected] <mailto:[email protected]>
> > http://m5sim.org/cgi-bin/mailman/listinfo/m5-users
>
> _______________________________________________
> m5-users mailing list
> [email protected] <mailto:[email protected]>
> http://m5sim.org/cgi-bin/mailman/listinfo/m5-users
>
>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> m5-users mailing list
> [email protected]
> http://m5sim.org/cgi-bin/mailman/listinfo/m5-users
_______________________________________________
m5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/m5-users