2012年3月12日 星期一

45/243 <- ARM
15/172
32/390

2012年3月11日 星期日


mibench http://www.eecs.umich.edu/mibench/
coremark http://www.coremark.org/home.php

i73,
TRACE_MERGE=1 TRACE_MERGE_USE_DBO=1 FUNCTION_OPT=0 TRACE_OPT=1 NUM_TRACE_WORKER=3 TRACE_MERGE_NUM_TARGETS=2
hmmer   1547 1254 -18.939883645766, really bad!














Wrong setting, indirect exit handling is used!













2012年3月9日 星期五

build 32-bit PARSEC binaries on 64-bit host



Here are the directions I use to build 32-bit PARSEC binaries on 64-bit 
versions of Fedora/RHEL.  I don't guarantee that these are the most 
efficient directions for getting everything to compile properly, but 
they work for me.

Note that I temporarily replace 'uname', which requires root access. 
There were a number of scripts (I don't remember which ones) that use 
uname to detect the architecture. If it returns x86_64, these scripts 
will always attempt to compile the 64-bit versions of libraries (or 
whatever).  If you don't have root access, you'll have to find where 
these checks are and replace them yourself. :)

1. Modify the GCC build config:
   * Open ./config/gcc.bldconf
   * Change CC_HOME="/n/fs/parsec/local/gcc-4.4.0-static" to CC_HOME="/usr"
   * Change BINUTIL_HOME="/usr/local" to BINUTIL_HOME="/usr"
   * Make sure GNUTOOL_HOME is set to ="/usr"
   * Make sure BINARY_PREFIX is set to =""
   * Add '-m32' to CFLAGS, CXXFLAGS, CPPFLAGS, CXXCPPFLAGS, and LDFLAGS
   * Add in 'export INCLUDES="-m32"'
   * Remove '-L${CC_HOME}/lib64' from LDFLAGS
2. Change the environment variable HOSTTYPE to i386
   * In bash: 'HOSTTYPE=i386' 'export HOSTTYPE'
   * In csh: 'setenv HOSTTYPE i386'
3. Make sure /usr/lib/libXmu.so and /usr/lib/libX11.so exist. If they don't:
   * 'ln -s /usr/lib/libXmu.so.6 /usr/lib/libXmu.so'
   * 'ln -s /usr/lib/libX11.so.6 /usr/lib/libX11.so'
4. Make a copy of uname
   * 'sudo mv /bin/uname /bin/uname.orig'
5. Make a wrapper shell script to make uname return i686 instaed of x86_64:
   * Open a new file /bin/uname and add in:
 !/bin/sh
         /bin/uname.orig $* | sed 's/x86_64/i686/g'
   * 'sudo chmod a+x uname'
6. Change ./pkgs/apps/facesim/src/TaskQ/lib/Makefile 'CXXARGS' to 'CXXFLAGS'
7. Modify ./pkgs/libs/ssl/src/Configure.pl
   * Add '$cflags .= " -m32 ";' to line 976 (below the big list of "my" 
variable declarations.
8. Change ./pkgs/libs/mesa/src/configure line 4685 to 'asm_arch=x86'
9. Change ./pkgs/libs/glib/src/configure line 40390 to 'G_ATOMIC_I486'
10. Run compilation
   * ./bin/parsecmgmt -a build -p all -c gcc
   * Note that you'll need to do "./bin/parsecmgmt -a build -p freqmine 
-c gcc-openmp" if you want freqmine to compile, as it doesn't use pthreads.
11. Return the original uname
   * 'sudo mv /bin/uname.orig /bin/uname'

Good luck!
-Joe

Added by TK:
In parsec-2.1/pkgs/libs/ssl/parsec/gcc.bldconf, change line 20 to build_env="PATH=\"${PATH}\""

If something goes wrong, try not to use -jxxx when make

2012年3月2日 星期五

TODO


  1. identify trace head with