Re: [Gems-users] Statistics


Date: Tue, 29 Aug 2006 21:21:44 -0500
From: Dan Gibson <degibson@xxxxxxxx>
Subject: Re: [Gems-users] Statistics
Hi Dave,

Dave wrote:
Hello,

I have some questions regarding Ruby statistics:

- As I understand, Ruby statistics provide "count" of certain events rather than timing of events.  Is it possible to obtain the cost of events in terms of time or cycles? What do "Ruby cycles" represent?
1 Ruby Cycle = RUBY_SIMICS_MUTLIPIER simics "cycles," modulo startup transients. So if RUBY_SIMICS_MULTIPLIER = 2, then 1 Ruby cycle is 2 simics "cycles". Essentially, Ruby_Cycles measures the relative execution time.

As far as "cost of events", it depends on the event. Many individual "event costs" are specified in rubyconfig.defaults.

- Ruby statistics provide cumulative results for all processors. Is it possible to obtain statistics per chip or processor? For example, cc transitions on each processor?
Some statistics are already broken-down on a per-processor basis (eg total misses). Others can be trivially added by modifying ruby/profiler/Profiler.[Ch]

- My benchmarks take a long time to simulate with Simics + Ruby. I would like to run a certain section of my benchmarks (e.g. initialization phase) in Simics only, and then load Ruby to get statistics of the memory system. Would this reduce the simulation time? How can this be done?
The best way to do this is to use a Simics "magic" instruction to break the simulation. Refer to the simics documentation on how to use a magic instruction -- your simics script will look something like this:
magic-break-enable
c       # run until you get a "magic" break
load-module ruby
ruby0.init
c       # run until you get another "magic" break, signalling the end of execution
ruby0.dump-stats filename

- Is it possible to simulate between cycle X and cycle Y and then dump the results? Can this be done by using magic instruction?
This can be done with magic instructions, though not precisely on cycle boundaries. If you want specific cycle boundaries I suggest you look at the simics "haps", especially those that count executed instructions. Beware that this behavior is highly variable in multiprocessor simulations.

- The "Profiler Stats" in Ruby results mention elapsed time and virtual time. Are these target and host machine runtimes?
Both are host times. One is true elapsed time, the other is the time that Simics+GEMS was actually running.

- Are the intra-chip network configuration options the same as the inter-chip network options? How do I configure intra-chip network?
GEMS ships with some basic, SMP topologies, like PT_TO_PT. Specific on-chip topologies (usually closely coupled to their coherence protocols) can also be specified (eg FILE_SPECIFIED topology).. have a look at the powerpoint online at www.cs.wisc.edu/gems and also in ruby/network.

- What is the max number of processors that can be simulated with sarek, MOESI_SMP_hammer?
It depends on a number of factors.
1) Your simics version
2) Your OS
3) Your patience
As a rule, doubling the number of processors at least doubles the simulation time. Also, I've had quite a bit of trouble making 256+ processor checkpoints, and anything over 32 is nontrivial. In theory, the maximum supported by Simics 2.2.19 is 384. The most I have ever had running an OS is 248.

As for the protocol, I doubt that MOESI_SMP_hammer will scale effortlessly to large number of processors (eg 32+).

- In $GEMS/ruby/generated/MOESI_SMP_hammer, there is only L1 cache controller, but no L2 cache controller. Why is that? Isn't there supposed to be an L2 cache controller?
Some protocols (esp. SMP protocols) use single controllers for both caches. Have a look at $GEMS/protocols/MOESI_SMP_hammer.* and notice that only one controller is defined there.

Thank you in advance.
Regards,
Dan Gibson


Want to be your own boss? Learn how on Yahoo! Small Business.

_______________________________________________ Gems-users mailing list Gems-users@xxxxxxxxxxx https://lists.cs.wisc.edu/mailman/listinfo/gems-users Use Google to search the GEMS Users mailing list by adding "site:https://lists.cs.wisc.edu/archive/gems-users/" to your search.
[← Prev in Thread] Current Thread [Next in Thread→]