These are just the normal SPLASH-2 benchmarks (the original page for
them has gone offline a while ago but you can find them mirrored at
[1]). We did have to do some patches to make them work for x86-64, and
add ROI begin and end markers. I'll see if I can clean up this patch a
bit and release it.
Regards,
Wim
[1] http://users.elis.ugent.be/~wheirman/simics/splash2/
> --
> --
> You received this message because you are subscribed to the Google
> Groups "Sniper simulator" group.
> To post to this group, send email to snip...@googlegroups.com
> To unsubscribe from this group, send email to
> snipersim+...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/snipersim?hl=en
I haven't been able to reproduce this yet. Can you give me some more
information on:
- the compiler and Linux version with which you compiled the benchmarks
- if you made any changes to the build config for the benchmarks
- what command-line options you use for the benchmarks and sniper (the
run-sniper command line should do)
- a copy of sim.cfg for one of the failing runs
Can you also try running Sniper with the --gdb command-line option and
get a backtrace? There are a few CircularQueues in use, the backtrace
should show which one is overflowing.
Thanks,
Wim
-Wim
Which version of GCC are you using, and is this on a 32-bit or a
64-bit platform?
Regards,
Wim
It looks like the __sync_fetch_and_add problem occurs when you compile
for a 32-bit architecture, using the default i386 target. Adding
-march=i486 to CFLAGS in splash2/codes/Makefile should solve this.
Alternatively, you can just disable the raytrace.opt benchmark by
removing $(TARGET).opt from the list next to "all:" near the bottom of
splash2/codes/apps/raytrace/makefile
However, we usually don't run Sniper in 32-bit mode, so I'm not even
sure it will work. Is it an option for you to use a 64-bit machine
instead?
Regards,
Wim
On 14 February 2012 01:27, Diana <guo...@gmail.com> wrote:
I am using gcc44 and the machine I am running on is 64 bit. The --march=i486 did not work out. I'll just leave out the $(TARGET).opt for the moment.
Is it possible for you to release the other benchmark suites on the website? For example, PARSEC with the simulator hook and run script.
Thanks a lot!
Diana
I've added PARSEC to the benchmarks distribution. Let me know if you
have any problems building or running it.
The other suite in our IISWC paper is Rodinia [1], but they released
version 2.0 recently so it doesn't make much sense in me releasing our
integration of Rodinia 1.0. We'll probably upgrade internally, I'll
try to release that as well. (Or, if you want to write your own
integration scripts and contribute them back, I'll gladly add them to
our distribution).
Regards,
Wim
[1] https://www.cs.virginia.edu/~skadron/wiki/rodinia/index.php/Main_Page
Thanks for your instant response. I've tried to compile the parsec benchmark, but the parsec/checkdependencies.py seems for Debain system only. Does sniper require the same operating system as Graphite? The current machine that I am running on is red hat, I could build a virtual machine if debain is required. Thanks!
best
xiao
Xiao Guo
School of Engineering and Applied Sciences
GSAS, Harvard
Email: xia...@fas.harvard.edu
Tel: 617-548-1456
We aim to support RedHat as well, although we do most of our
development on Ubuntu so I guess that's slightly better supported. I
made some updates for the dependency script, I'm now able to
successfully compile all Parsec applications on a CentOS 6 host. I
didn't try running them on Sniper yet so let me know if that fails.
Also, keep in mind that some Parsec applications do very weird things
for which we haven't been able to find a working solution yet, so only
the applications listed in our IISWC paper are supposed to work.
Regards,
Wim
The parsec benchmark works well on our machine now. Thanks a lot!
I have two other questions.
(1) Is it possible to run parsec/splash on multiple machines? It seems to me that parsec/splash2 can only run in graphite-lite mode because unimplemented system calls, and graphite-lite mode does not support multiple machines.
(2) Is it possible to run cpu2006 multi-programed benchmark on sniper?
best regards
(1) For Splash2, and a few of the Parsec benchmarks, it's possible to
implement sufficient system calls to make them work in full mode.
(Make sure to compile them in a relatively old environment, such as
Debian/Lenny, as the newer glibc libraries end up using a much larger
set of system calls). We spent a significant amount of time trying to
get more Parsec benchmarks working, but every additional one required
so much extra effort that we didn't feel it was worth it in the end.
Lite mode runs faster, and you can still simulate several hundred
cores on a single machine (assuming it has sufficient memory - but say
48 GB should get you up to 256 cores and isn't very expensive these
days).
(2) Graphite/Sniper is Pin based, and Pin works at the single process
level. So it's not possible out of the box. Since single-threaded
workloads usually aren't affected by timing, it should be possible
though to just dump an instruction stream from each application, and
then feed multiple of them (from a file, or even on-line through
inter-process communication) into the BasicBlockQueue and
DynamicInstructionInfoQueue of each core. No timing or synchronization
information needs to be fed back to the process, so I don't think
there would be much more to it (as long as your application doesn't
directly request the current time through an rdtsc instruction or a
SYS_clock system call, but you probably don't care about that being
correct since it would only be used for reporting, not for something
that could affect the application's control flow).
Regards,
Wim