Hi Andrew,

 

I only used ARM_SE in my daily research work, and they all work fine. It now
seems that ARM_FS is the source of error.  Your debug trace would be very
helpful and I will look into this issue when I have time to do it.

 

Thank you!

 

Best,

Xiangyu

 

From: gem5-users-boun...@gem5.org [mailto:gem5-users-boun...@gem5.org] On
Behalf Of Andrew Cebulski
Sent: Tuesday, March 13, 2012 9:42 PM
To: gem5 users mailing list
Subject: Re: [gem5-users] A Patch for DRAMsim2 Integration

 

Here's a summary from running with the printfs showing the reads, writes and
receive timings reported by dram.cc for libquantum:

               reads,          writes,         receive timings
ARM_FS  1486578,     115473,       1605225

ARM_SE  347210,       3002,           350213

FS/SE      4.28,           38.47,          4.58

-Andrew

On Tue, Mar 13, 2012 at 11:33 PM, Andrew Cebulski <af...@drexel.edu> wrote:

I figured out how to run my benchmark in ARM_SE.  First, I had to recompile
my benchmark statically linked, since I run it dynamically linked in ARM_FS.
I was able to run the statically linked libquantum in ARM_SE with gem5.opt
without any errors, the same as your tests.  I did look at the committed
instruction count within the stats file for the ARM_SE run with the O3 CPU,
and it does look accurate.

 

Next, I added this new statically linked libquantum to my disk image to run
in ARM_FS with gem5.opt.  It failed with the same exact instcount error in
base_dyn_inst_impl.hh as with my dynamically linked libquantum benchmark.  

 

So it would seem that the problem only occurs in FS, not SE.  

 

Now the question is how to go about fixing the issue preventing your
integration of DramSim2 from working in ARM_FS...  Any ideas?

 

It looks like you have some debugging coded into your dram.cc, but commented
out (printf statements).  I'll add them back and compare their outputs
between ARM_SE and ARM_FS.  I might convert them to DPRINTFs too. 

 

Do you know how to setup one of your ARM_SE benchmarks to run in ARM_FS?  It
basically involves putting it into the Gem5 Ubuntu image (i.e. using
util/gem5img.py), creating a rcS file, and adding it in Benchmarks.py.  This
way you can try to reproduce the error in your environment.  That would be a
good start.

 

-Andrew

 

On Tue, Mar 13, 2012 at 6:08 PM, Andrew Cebulski <af...@drexel.edu> wrote:

As far as I can tell, the source of the instruction count problem either is
restricted to FS (don't know if restricted to ARM), varies with environment
setup or is caused by the cross-compiled binary file.  I'm doubtful of the
latter two since I've run with various benchmarks in gem5.fast to
completion, and they have been within 10% of the committed instructions that
the benchmarks have run on physical hardware (as measured with
valgrind...same binary files).  

 

At this point, it would be helpful to know if anyone else has run a
benchmark with your patch on ARM_FS (or other arch) successfully.  Luckily,
you have made it very easy to test since it replaces the old DRAMMemory
object.  Otherwise, I'll continue debugging this and emailing the list with
questions as I go.  

 

Is it possible for this assertion to only occur in ARM_FS, not ARM_SE, with
the same benchmarks?  I require full-system, so I haven't tested ARM_SE.  If
my benchmarks pass with ARM_SE in gem5.opt, that should narrow the source of
the problem down.

 

Thanks,

Andrew

 

On Tue, Mar 13, 2012 at 4:30 PM, Rio Xiangyu Dong <riosher...@gmail.com>
wrote:

I use gem5.opt, and never see this error.

 

From: gem5-users-boun...@gem5.org [mailto:gem5-users-boun...@gem5.org] On
Behalf Of Andrew Cebulski
Sent: Tuesday, March 13, 2012 12:12 PM


To: gem5 users mailing list

Subject: Re: [gem5-users] A Patch for DRAMsim2 Integration

 

Did you ever get this error building gem5.debug on revision 8643?

-----

 

cc1plus: warnings being treated as errors
In file included from build/dramsim2/SystemConfiguration.h:42:0,
                 from build/dramsim2/MemorySystem.h:42,
                 from build/ARM_FS/mem/dram.hh:42,
                 from build/ARM_FS/mem/dram.cc:39:
build/dramsim2/PrintMacros.h:49:0: error: "DEBUG" redefined
<command-line>:0:0: note: this is the location of the previous definition

-----

The DramSim2 repo has the same file:
https://github.com/dramninjasUMD/DRAMSim2/blob/master/PrintMacros.h 


The solutions seems to be adding "#undef DEBUG" right before it gets
defined.  I can't find where it's getting declared initially though...
Doing a grep of the gem5 src and ext repo's for a DEBUG define come up
empty.  Commenting out all defines of DEBUG in PrintMacros.h still results
in the redefine message...

 

I have two versions of gcc readily available (4.5.0 and 4.5.3), and I get it
on both.

 

-Andrew

On Tue, Mar 13, 2012 at 1:56 PM, Andrew Cebulski <af...@drexel.edu> wrote:

Hi Xiangyu,

 

    I just started looking into this some more.  So at first I thought it
was due to updating to a more recent revision, but then I went back to
revision 8643, added your patch, built and ran....and now get the error with
it too (when running ARM_FS/gem5.opt).  I"m testing now to see if an update
to SWIG might have resulted in this error, maybe someone on the mailing list
would know if that's possible.  The difference is 1.3.40 vs. 2.0.3, both of
which are supported according to the dependencies wiki page.

 

Just for completeness, here's the error from revision 8643:

build/ARM_FS/cpu/base_dyn_inst_impl.hh:149: void
BaseDynInst<Impl>::initVars() [with Impl = O3CPUImpl]: Assertion
`cpu->instcount <= 1500' failed. 

 

    I also removed all the changes I've added for my research from the test
with revision 8643 and your patch, aside from adding a new rcS file and the
cross-compiled binary to the disk image for Libquantum (SPEC CPU2006).  Note
that I use CodeSourcery for cross-compiling.

 

   I have not tried running with gem5.debug, so I will be doing that today.
Maybe this is an assertion that is occurring due to an optimization.  That
would mean it wouldn't be triggered in gem5.debug since it runs without
optimizations.  Have you tested all debug, opt and fast with your tests?

 

Thanks,

Andrew

 

On Tue, Mar 13, 2012 at 1:37 PM, Rio Xiangyu Dong <riosher...@gmail.com>
wrote:

Hi Andrew,

 

I didn't see this error in my simulations. May I ask which gem5 version you
are using? I find some of the latest code updates do not comply with my
changes. I am still using the DRAMsim2 patch on Gem5 repo8643, and have run
all the runnable benchmarks in SPEC2006, SPEC2000, EEMBC2, and PARSEC2 on
ARM_SE.

 

Thank you!

 

Best,

Xiangyu

 

From: Andrew Cebulski [mailto:af...@drexel.edu] 
Sent: Thursday, March 08, 2012 6:52 PM


To: gem5 users mailing list

Cc: riosher...@gmail.com; sa...@umich.edu


Subject: Re: [gem5-users] A Patch for DRAMsim2 Integration

 

Xiangyu,

 

   I've been having an issue recently with the number of instructions I've
been seeing committed to the CPU (I have a separate thread on this).  It
turns out the issue seems to be coming from this patch you created to
integrate DramSim2 with Gem5.  Unfortunately, I've been running with
gem5.fast, not gem5.opt.  So up until now, I haven't been seeing assertions.
I thought I'd run it with gem5.opt or debug back in December, but I must not
have.  My runs on the Arm O3 cpu fails with this assertion:

 

build/ARM/cpu/base_dyn_inst_impl.hh:149: void BaseDynInst<Impl>::initVars()
[with Impl = O3CPUImpl]: Assertion `cpu->instcount <= 1500' failed.

 

    Have you seen similar results?  Is this count how many instructions are
currently being processed by the cpu?  My initial guess is that memory
instructions being sent to DramSim2 are getting counted as committed
regardless of whether they are mispredicted (and rerun).  Any suggestions on
where to insert DPRINTFs, or use current ones, to find out if this is what
is happening?

 

   Ali helped me earlier with getting the checker and some debug flags to
track earlier.  I currently have traces with debug flags Exec, ExecAsid and
DynInst.  I just need to know what to search for in them for useful info.

 

Thanks,

Andrew   

 

On Sun, Dec 18, 2011 at 5:04 PM, Dong, Xiangyu <riosher...@gmail.com> wrote:

Thanks.  Actually I only tested it on ARM_SE and ARM_FS.  Let me know if it
also works for other processors.

 

In addition, I actually made more modification on the DRAMsim2 side.  Maybe
the most important one is that I changed the way how DRAMsim2 reports
latency/bandwidth statistics. DRAMsim2 reports all the statistics after
every EPOCH, and then resets all the numbers.  For Gem5 users who are only
interested in the statistics over the entire simulation time, you might want
to change the codes in DRAMsim2/MemoryController.cpp and make similar
changes like what I've done (that's NOT in the patch since it's more
DRAMsim2-related).

 

Best,

Xiangyu

 

From: gem5-users-boun...@gem5.org [mailto:gem5-users-boun...@gem5.org] On
Behalf Of Andrew Cebulski
Sent: Sunday, December 18, 2011 6:38 AM
To: gem5-users@gem5.org
Subject: Re: [gem5-users] A Patch for DRAMsim2 Integration

 

Thanks for the integration patch Xiangyu!  I'll let you know if I come
across any bugs.

 

-Andrew

 

 

Date: Sun, 18 Dec 2011 01:48:58 -0800
From: "Dong, Xiangyu" <riosher...@gmail.com>
To: "gem5 users mailing list" <gem5-users@gem5.org>
Subject: [gem5-users] A Patch for DRAMsim2 Integration
Message-ID: <001201ccbd6a$45102210$cf306630$@gmail.com>
Content-Type: text/plain; charset="us-ascii"

Hi all,



I have a Gem5+DRAMsim2 patch.  I've tested it under both SE and FS modes.
I'm willing to share it here.



For those who have such needs, please go to my website
www.cse.psu.edu/~xydong <http://www.cse.psu.edu/%7Exydong>  to download the
patch and test it.  To enable
DRAMSim2, use se_dramsim2.py script instead of se.py (for FS, you can create
by yourself).  The basic idea to enable the DRAMsim2 module is to use the
derived DRAMMemory class instead of PhysicalMemory class.



Please let me know if there are bugs.



Thank you!



Best,

Xiangyu Dong

-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://m5sim.org/cgi-bin/mailman/private/gem5-users/attachments/20111218/f3
fdf5da/attachment.html>


_______________________________________________
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

 

 

 


_______________________________________________
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

 

 

 

_______________________________________________
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to