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