Hi all,
I had noticed that Ruby was running a little slower than the old M5
memory system and decided to run gprof on it to see if there was
anything obvious holding things up.

For 2, 4, and 8 core  ALPHA_FS_MOESI_CMP_directory, SimpleCPU runs for
the Fft benchmark, it seems that the MemoryControl::executeCycle
conributes to nearly 30% of the runtime. Looking at the comments for
that code, I see this:
"// executeCycle:  This function is called once per memory clock cycle"

I'm not familiar with this Memory Controller code but it would seem
that some type of optimization not requiring this to be run every
memory cycle would speed things up a good bit. So if someone has the
time or the need to do some Ruby optimization work (i know Nilay had
did some previously), then I think this will be a good place to
start...

I post some of the gprof output below:
=====
2 core
=====
time (%)   name
29.17  MemoryControl::executeCycle()
4.19    RubyEventQueue::scheduleEventAbsolute(Consumer*, long long)
3.52    PerfectSwitch::wakeup()
3.47    Set::Set(Set const&)
3.46    RubyEventQueueNode::process()


4 core
=====
time (%)   name
 27.49    MemoryControl::executeCycle()
  4.01    RubyEventQueue::scheduleEventAbsolute(Consumer*, long long)
  3.66    PerfectSwitch::wakeup()
  3.59   Set::Set(Set const&)
  3.50    RubyEventQueueNode::process()

8 core
=====
time (%)   name
26.09    MemoryControl::executeCycle()
  4.12   Set::Set(Set const&)
  3.91   PerfectSwitch::wakeup()
  3.88   RubyEventQueue::scheduleEventAbsolute(Consumer*, long long)
  3.41   RubyEventQueueNode::process()

-- 
- Korey
_______________________________________________
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to