From 833c4f95f3c04f3c52412530fcb84508f6e2dba1 Mon Sep 17 00:00:00 2001 From: wocszwm <1228836973@qq.com> Date: Tue, 14 Apr 2026 09:57:40 +0800 Subject: [PATCH] feature:modify the file paths in the script --- .sconsign.dblite | Bin 1002202 -> 1323608 bytes SConstruct | 8 +- SConstruct0-yuanshiwenjian | 242 + common/DRAMPower/drampower | Bin 3523128 -> 3322752 bytes common/DRAMPower/src/CAHelpers.o | Bin 170096 -> 176280 bytes common/DRAMPower/src/CmdHandlers.o | Bin 364760 -> 393976 bytes common/DRAMPower/src/CmdScheduler.o | Bin 1157520 -> 1287632 bytes common/DRAMPower/src/CommandAnalysis.o | Bin 802184 -> 923336 bytes common/DRAMPower/src/MemArchitectureSpec.o | Bin 323872 -> 202888 bytes common/DRAMPower/src/MemCommand.o | Bin 80064 -> 80344 bytes common/DRAMPower/src/MemPowerSpec.o | Bin 637032 -> 185016 bytes common/DRAMPower/src/MemTimingSpec.o | Bin 651936 -> 206416 bytes common/DRAMPower/src/MemoryPowerModel.o | Bin 769296 -> 813576 bytes common/DRAMPower/src/MemorySpecification.o | Bin 182408 -> 189264 bytes common/DRAMPower/src/Parameter.o | Bin 303864 -> 321712 bytes common/DRAMPower/src/cli/drampower.o | Bin 736712 -> 788288 bytes common/DRAMPower/src/libdrampower.a | Bin 5707902 -> 4916070 bytes common/DRAMPower/src/libdrampowerxml.a | Bin 1214920 -> 1328986 bytes .../DRAMPower/src/xmlparser/MemSpecParser.o | Bin 612400 -> 726200 bytes common/booksim2/src/libbooksim.a | Bin 13847194 -> 51602842 bytes common/libconfig/INSTALL | 407 +- common/libconfig/Makefile | 95 +- common/libconfig/Makefile.in | 43 +- common/libconfig/ac_config.h | 103 +- common/libconfig/ac_config.h.in | 101 +- common/libconfig/ac_config.h.in~ | 116 + common/libconfig/aclocal.m4 | 224 +- common/libconfig/autom4te.cache/output.0 | 10822 +++++---- common/libconfig/autom4te.cache/output.1 | 10822 +++++---- common/libconfig/autom4te.cache/output.2 | 10823 +++++---- common/libconfig/autom4te.cache/requests | 517 +- common/libconfig/autom4te.cache/traces.0 | 915 +- common/libconfig/autom4te.cache/traces.1 | 287 +- common/libconfig/autom4te.cache/traces.2 | 2496 +- common/libconfig/aux-build/compile | 17 +- common/libconfig/aux-build/config.guess | 1694 +- common/libconfig/aux-build/config.sub | 2633 ++- common/libconfig/aux-build/depcomp | 10 +- common/libconfig/aux-build/install-sh | 422 +- common/libconfig/aux-build/ltmain.sh | 5893 +++-- common/libconfig/aux-build/missing | 16 +- common/libconfig/aux-build/mkinstalldirs | 26 +- common/libconfig/aux-build/test-driver | 38 +- common/libconfig/aux-build/texinfo.tex | 6315 +++-- common/libconfig/aux-build/ylwrap | 10 +- common/libconfig/config.log | 3479 +-- common/libconfig/config.status | 824 +- common/libconfig/configure | 10813 +++++---- common/libconfig/configure~ | 19578 ++++++++++++++++ common/libconfig/doc/Makefile | 70 +- common/libconfig/doc/Makefile.in | 18 +- common/libconfig/examples/Makefile | 74 +- common/libconfig/examples/Makefile.in | 22 +- .../libconfig/examples/c++/.deps/example1.Po | 677 +- .../libconfig/examples/c++/.deps/example2.Po | 677 +- .../libconfig/examples/c++/.deps/example3.Po | 677 +- .../libconfig/examples/c++/.deps/example4.Po | 677 +- common/libconfig/examples/c++/Makefile | 109 +- common/libconfig/examples/c++/Makefile.in | 57 +- common/libconfig/examples/c++/example1 | Bin 100688 -> 107592 bytes common/libconfig/examples/c++/example1.o | Bin 165656 -> 171384 bytes common/libconfig/examples/c++/example2 | Bin 43440 -> 42792 bytes common/libconfig/examples/c++/example2.o | Bin 61672 -> 54152 bytes common/libconfig/examples/c++/example3 | Bin 40320 -> 40144 bytes common/libconfig/examples/c++/example3.o | Bin 53168 -> 47760 bytes common/libconfig/examples/c++/example4 | Bin 40112 -> 39368 bytes common/libconfig/examples/c++/example4.o | Bin 52512 -> 45800 bytes common/libconfig/examples/c/.deps/example1.Po | 118 +- common/libconfig/examples/c/.deps/example2.Po | 118 +- common/libconfig/examples/c/.deps/example3.Po | 118 +- common/libconfig/examples/c/.deps/example4.Po | 154 +- common/libconfig/examples/c/Makefile | 109 +- common/libconfig/examples/c/Makefile.in | 57 +- common/libconfig/examples/c/example1 | Bin 21280 -> 24784 bytes common/libconfig/examples/c/example1.o | Bin 22920 -> 21656 bytes common/libconfig/examples/c/example2 | Bin 19224 -> 22752 bytes common/libconfig/examples/c/example2.o | Bin 17168 -> 16448 bytes common/libconfig/examples/c/example3 | Bin 18736 -> 22272 bytes common/libconfig/examples/c/example3.o | Bin 15496 -> 15264 bytes common/libconfig/examples/c/example4 | Bin 23936 -> 27144 bytes common/libconfig/examples/c/example4.o | Bin 27728 -> 24840 bytes .../lib/.deps/libconfig___la-grammar.Plo | 156 +- .../lib/.deps/libconfig___la-libconfig.Plo | 249 +- .../lib/.deps/libconfig___la-libconfigcpp.Plo | 724 +- .../lib/.deps/libconfig___la-scanctx.Plo | 167 +- .../lib/.deps/libconfig___la-scanner.Plo | 183 +- .../lib/.deps/libconfig___la-strbuf.Plo | 83 +- .../lib/.deps/libconfig___la-strvec.Plo | 83 +- .../lib/.deps/libconfig___la-util.Plo | 168 +- .../lib/.deps/libconfig___la-wincompat.Plo | 58 +- .../lib/.deps/libconfig_la-grammar.Plo | 156 +- .../lib/.deps/libconfig_la-libconfig.Plo | 249 +- .../lib/.deps/libconfig_la-scanctx.Plo | 167 +- .../lib/.deps/libconfig_la-scanner.Plo | 183 +- .../lib/.deps/libconfig_la-strbuf.Plo | 83 +- .../lib/.deps/libconfig_la-strvec.Plo | 83 +- .../libconfig/lib/.deps/libconfig_la-util.Plo | 168 +- .../lib/.deps/libconfig_la-wincompat.Plo | 58 +- common/libconfig/lib/.libs/libconfig++.a | Bin 877488 -> 883358 bytes common/libconfig/lib/.libs/libconfig++.lai | 6 +- .../libconfig/lib/.libs/libconfig++.so.11.0.2 | Bin 460184 -> 429520 bytes common/libconfig/lib/.libs/libconfig.a | Bin 278840 -> 327760 bytes common/libconfig/lib/.libs/libconfig.lai | 6 +- .../libconfig/lib/.libs/libconfig.so.11.0.2 | Bin 173768 -> 170968 bytes .../lib/.libs/libconfig___la-grammar.o | Bin 37984 -> 41128 bytes .../lib/.libs/libconfig___la-libconfig.o | Bin 107688 -> 122800 bytes .../lib/.libs/libconfig___la-libconfigcpp.o | Bin 540560 -> 446520 bytes .../lib/.libs/libconfig___la-scanctx.o | Bin 18720 -> 18624 bytes .../lib/.libs/libconfig___la-scanner.o | Bin 72600 -> 85704 bytes .../lib/.libs/libconfig___la-strbuf.o | Bin 7488 -> 8168 bytes .../lib/.libs/libconfig___la-strvec.o | Bin 5176 -> 5816 bytes .../libconfig/lib/.libs/libconfig___la-util.o | Bin 12512 -> 10744 bytes .../lib/.libs/libconfig___la-wincompat.o | Bin 2704 -> 2680 bytes .../lib/.libs/libconfig_la-grammar.o | Bin 37984 -> 41128 bytes .../lib/.libs/libconfig_la-libconfig.o | Bin 107688 -> 122800 bytes .../lib/.libs/libconfig_la-scanctx.o | Bin 18720 -> 18624 bytes .../lib/.libs/libconfig_la-scanner.o | Bin 72600 -> 85704 bytes .../libconfig/lib/.libs/libconfig_la-strbuf.o | Bin 7488 -> 8168 bytes .../libconfig/lib/.libs/libconfig_la-strvec.o | Bin 5176 -> 5816 bytes .../libconfig/lib/.libs/libconfig_la-util.o | Bin 12512 -> 10744 bytes .../lib/.libs/libconfig_la-wincompat.o | Bin 2704 -> 2680 bytes common/libconfig/lib/Makefile | 178 +- common/libconfig/lib/Makefile.in | 126 +- common/libconfig/lib/libconfig++.a | Bin 877488 -> 883358 bytes common/libconfig/lib/libconfig++.la | 6 +- common/libconfig/lib/libconfig++.pc | 2 +- common/libconfig/lib/libconfig++.so.11.0.2 | Bin 460184 -> 429520 bytes common/libconfig/lib/libconfig.a | Bin 278840 -> 327760 bytes common/libconfig/lib/libconfig.la | 6 +- common/libconfig/lib/libconfig.pc | 2 +- common/libconfig/lib/libconfig.so.11.0.2 | Bin 173768 -> 170968 bytes .../libconfig/lib/libconfig___la-grammar.lo | 2 +- common/libconfig/lib/libconfig___la-grammar.o | Bin 39040 -> 43448 bytes .../libconfig/lib/libconfig___la-libconfig.lo | 2 +- .../libconfig/lib/libconfig___la-libconfig.o | Bin 112152 -> 142320 bytes .../lib/libconfig___la-libconfigcpp.lo | 2 +- .../lib/libconfig___la-libconfigcpp.o | Bin 589176 -> 546216 bytes .../libconfig/lib/libconfig___la-scanctx.lo | 2 +- common/libconfig/lib/libconfig___la-scanctx.o | Bin 18712 -> 18616 bytes .../libconfig/lib/libconfig___la-scanner.lo | 2 +- common/libconfig/lib/libconfig___la-scanner.o | Bin 77208 -> 91080 bytes common/libconfig/lib/libconfig___la-strbuf.lo | 2 +- common/libconfig/lib/libconfig___la-strbuf.o | Bin 7488 -> 9216 bytes common/libconfig/lib/libconfig___la-strvec.lo | 2 +- common/libconfig/lib/libconfig___la-strvec.o | Bin 5168 -> 5808 bytes common/libconfig/lib/libconfig___la-util.lo | 2 +- common/libconfig/lib/libconfig___la-util.o | Bin 12512 -> 10736 bytes .../libconfig/lib/libconfig___la-wincompat.lo | 2 +- .../libconfig/lib/libconfig___la-wincompat.o | Bin 2696 -> 2672 bytes common/libconfig/lib/libconfig_la-grammar.lo | 2 +- common/libconfig/lib/libconfig_la-grammar.o | Bin 39040 -> 43448 bytes .../libconfig/lib/libconfig_la-libconfig.lo | 2 +- common/libconfig/lib/libconfig_la-libconfig.o | Bin 112152 -> 142320 bytes common/libconfig/lib/libconfig_la-scanctx.lo | 2 +- common/libconfig/lib/libconfig_la-scanctx.o | Bin 18712 -> 18616 bytes common/libconfig/lib/libconfig_la-scanner.lo | 2 +- common/libconfig/lib/libconfig_la-scanner.o | Bin 77208 -> 91080 bytes common/libconfig/lib/libconfig_la-strbuf.lo | 2 +- common/libconfig/lib/libconfig_la-strbuf.o | Bin 7488 -> 9216 bytes common/libconfig/lib/libconfig_la-strvec.lo | 2 +- common/libconfig/lib/libconfig_la-strvec.o | Bin 5168 -> 5808 bytes common/libconfig/lib/libconfig_la-util.lo | 2 +- common/libconfig/lib/libconfig_la-util.o | Bin 12512 -> 10736 bytes .../libconfig/lib/libconfig_la-wincompat.lo | 2 +- common/libconfig/lib/libconfig_la-wincompat.o | Bin 2696 -> 2672 bytes common/libconfig/lib/pkgconfig/libconfig++.pc | 2 +- common/libconfig/lib/pkgconfig/libconfig.pc | 2 +- common/libconfig/libtool | 6528 ++++-- common/libconfig/m4/libtool.m4 | 2771 ++- common/libconfig/m4/ltoptions.m4 | 127 +- common/libconfig/m4/ltsugar.m4 | 7 +- common/libconfig/m4/ltversion.m4 | 13 +- common/libconfig/m4/lt~obsolete.m4 | 7 +- .../tests/.deps/libconfig_tests-tests.Po | 136 +- common/libconfig/tests/Makefile | 96 +- common/libconfig/tests/Makefile.in | 44 +- common/libconfig/tests/libconfig_tests | Bin 6398 -> 84088 bytes .../libconfig/tests/libconfig_tests-tests.o | Bin 84312 -> 75352 bytes common/libconfig/tinytest/.deps/tinytest.Po | 134 +- common/libconfig/tinytest/Makefile | 107 +- common/libconfig/tinytest/Makefile.in | 55 +- common/libconfig/tinytest/libtinytest.a | Bin 55726 -> 56670 bytes common/libconfig/tinytest/tinytest.o | Bin 55432 -> 56376 bytes configs/ramulator/MultiPIM-hmc-dragonfly.cfg | 5 +- configs/ramulator/MultiPIM-hmc-mesh-16mem.cfg | 5 +- .../zsim/host_normal_idealtlb_dragonfly.cfg | 6 +- configs/zsim/host_normal_tlb_dragonfly.cfg | 6 +- configs/zsim/pim_idealdatamemnet_idealtlb.cfg | 6 +- configs/zsim/pim_idealdatamemnet_tlb.cfg | 6 +- configs/zsim/pim_idealmemnet_idealtlb.cfg | 6 +- configs/zsim/pim_idealmemnet_tlb.cfg | 6 +- .../zsim/pim_normal_idealtlb_dragonfly.cfg | 6 +- configs/zsim/pim_normal_tlb_dragonfly.cfg | 6 +- env.sh | 6 +- src/network.cpp | 1 + src/network.h | 1 + src/ramulator/StatType.h | 1 + test-env.sh | 4 +- .../datamining/correlation/correlation | Bin 14192 -> 17728 bytes .../datamining/covariance/covariance | Bin 14104 -> 17648 bytes .../Polybench/linear-algebra/kernels/2mm/2mm | Bin 14088 -> 17632 bytes .../Polybench/linear-algebra/kernels/3mm/3mm | Bin 14088 -> 17632 bytes .../linear-algebra/kernels/atax/Makefile.dep | 3 +- .../linear-algebra/kernels/atax/atax | Bin 14264 -> 17840 bytes .../linear-algebra/kernels/atax/atax.c | 8 + .../linear-algebra/kernels/bicg/Makefile.dep | 2 - .../linear-algebra/kernels/bicg/bicg | Bin 14096 -> 17632 bytes .../linear-algebra/kernels/cholesky/cholesky | Bin 14096 -> 17640 bytes .../linear-algebra/kernels/doitgen/doitgen | Bin 14056 -> 17592 bytes .../linear-algebra/kernels/gemm/Makefile.dep | 3 + .../linear-algebra/kernels/gemm/gemm | Bin 14048 -> 17592 bytes .../linear-algebra/kernels/gemm/gemm.c | 53 +- .../kernels/gemm/gemm_c/gemm_yuanshi.c | 136 + .../linear-algebra/kernels/gemver/gemver | Bin 14096 -> 17640 bytes .../linear-algebra/kernels/gesummv/gesummv | Bin 14056 -> 17592 bytes .../Polybench/linear-algebra/kernels/mvt/mvt | Bin 14088 -> 17632 bytes .../linear-algebra/kernels/symm/symm | Bin 14048 -> 17592 bytes .../linear-algebra/kernels/syr2k/syr2k | Bin 14096 -> 17640 bytes .../linear-algebra/kernels/syrk/syrk | Bin 14096 -> 17632 bytes .../linear-algebra/kernels/trisolv/trisolv | Bin 14096 -> 17640 bytes .../linear-algebra/kernels/trmm/trmm | Bin 14048 -> 17592 bytes .../linear-algebra/solvers/durbin/durbin | Bin 14096 -> 17640 bytes .../linear-algebra/solvers/dynprog/dynprog | Bin 14096 -> 17680 bytes .../solvers/gramschmidt/gramschmidt | Bin 14104 -> 17640 bytes .../Polybench/linear-algebra/solvers/lu/lu | Bin 14040 -> 17584 bytes .../linear-algebra/solvers/ludcmp/ludcmp | Bin 14096 -> 17640 bytes tests/benchmarks/Polybench/stencils/adi/adi | Bin 14088 -> 17632 bytes .../stencils/convolution-2d/convolution-2d | Bin 14056 -> 17600 bytes .../stencils/convolution-3d/convolution-3d | Bin 13920 -> 17464 bytes .../Polybench/stencils/fdtd-2d/fdtd-2d | Bin 14096 -> 17640 bytes .../Polybench/stencils/fdtd-apml/fdtd-apml | Bin 18152 -> 21696 bytes .../stencils/jacobi-1d-imper/jacobi-1d-imper | Bin 14112 -> 17656 bytes .../stencils/jacobi-2d-imper/jacobi-2d-imper | Bin 14112 -> 17656 bytes .../Polybench/stencils/seidel-2d/seidel-2d | Bin 14104 -> 17648 bytes .../benchmarks/Polybench/utilities/common.mk | 6 +- .../Polybench/utilities/polybench.h | 3 +- tests/cmd.cfg | 1 + tests/pin.log | 2 + 238 files changed, 68540 insertions(+), 38682 deletions(-) mode change 100755 => 100644 SConstruct create mode 100644 SConstruct0-yuanshiwenjian create mode 100644 common/libconfig/ac_config.h.in~ mode change 100644 => 100755 common/libconfig/aux-build/ltmain.sh create mode 100755 common/libconfig/configure~ create mode 100644 tests/benchmarks/Polybench/linear-algebra/kernels/gemm/gemm_c/gemm_yuanshi.c create mode 100644 tests/pin.log diff --git a/.sconsign.dblite b/.sconsign.dblite index 806688b28c36e2aa0f412b546e925d8ddef43257..662cbd34e2f16016f8651d0b21a482c851a8d5a6 100644 GIT binary patch delta 234640 zcmd>nd4L>MwRd`!p0y|YzRj?PEz{Lq-CYGFWMc~i5;l=-Qe9P@o+g=@OePReY@#Rv z{UBi`6fP`rd5H3ah&rx76c=0|(Wg&AmbjuQB#I&;@cquI^>){U32F6@&-XZ)?!I;J zt$WWs`#tB$Z3}+(>y_iKt=snb*ckrbHAC~3o@uSRzGmUz19!L83@y1W+WPYc=SOai z)C?`P#(%3(8hq~dy4Im3pKTs9=9=}9dFM~E_RVdXWL^8^)=R7{TI}2hAF2IK(}ba= zE!mCTYmH9B%x+vWv?SGIUHN)_>3xgau3y|18D890^O<$Cwso~dc+{b#Z5#Ua&OU98 zdE9`OU26_48Gij;H8hN=f=B0AJDMVMsO6ux)Esg&CKaP$HmzIRr}b|z`|-nJU#;2F zNPTuS)JoR1kJe7C9a?gZwXnH%J->~$rLk%3@Z*oxyq6bX)wgSs)ZhERU9)CBMmU|9 z%34(0+=8!Zt*pPC+tNNP{jH{lAGrIKnuYYhv#-<`jd{F@uAuD+(&C_rP|3uOUK!(+1oeJxuz>`YJK?a zx%%4o@F1A`GE94g6^XV^w&wi2-rkA9M{3)w6TaTkZ;fkey3g9yRJ$5opKNWfZ%gp2 z(f|vZYYR300K8qDS9JFe;J2@|*7jY~I<&3yUK=@<9zM9|j>GAxb8f7i8Ku|3JP&Cb zTG9e+xV9#U5A_eXTw%Y{@mp)xG|>|8ncq5haMxWE(Sf~B8$VLZ`?ScO(&}&462=YB zzoT|-4bK!iuUPT-*TqJ9yPKYCa^CL8+iO?TYjkeh(BIkJqp#g)n4N2SHln{%K302W zgf`z_!-2I~{P4q%*M9Lrn%R!iW2e_86ZmS^KQXp5*(0oYb8RclsPE0%nKYvlXuC7k z%0D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 JurGbH{vRNQ&dLA) delta 3733 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 diff --git a/SConstruct b/SConstruct old mode 100755 new mode 100644 index 239a045..919f19b --- a/SConstruct +++ b/SConstruct @@ -8,7 +8,7 @@ def buildSim(cppFlags, dir, type, pgo=None): ''' Build the simulator with a specific base buid dir and config type''' buildDir = joinpath(dir, type) - print "Building " + type + " zsim at " + buildDir + print("Building " + type + " zsim at " + buildDir) # 修复 env = Environment(ENV = os.environ, tools = ['default', 'textfile']) env["CPPFLAGS"] = cppFlags @@ -39,7 +39,7 @@ def buildSim(cppFlags, dir, type, pgo=None): if "PINPATH" in os.environ: PINPATH = os.environ["PINPATH"] else: - print "ERROR: You need to define the $PINPATH environment variable with Pin's path" + print("ERROR: You need to define the $PINPATH environment variable with Pin's path") # 修复 sys.exit(1) ROOT = Dir('.').abspath @@ -214,11 +214,11 @@ pgoPhase = GetOption('pgoPhase') # when you move the files. Check the repo for a version that tries this. if GetOption('pgoBuild'): for type in buildTypes: - print "Building PGO binary" + print("Building PGO binary") # 修复 root = Dir('.').abspath testsDir = joinpath(root, "tests") trainCfgs = [f for f in os.listdir(testsDir) if f.startswith("pgo")] - print "Using training configs", trainCfgs + print("Using training configs", trainCfgs) # 修复 baseDir = joinpath(baseBuildDir, "pgo-" + type) genCmd = "scons -j16 --pgoPhase=generate-" + type diff --git a/SConstruct0-yuanshiwenjian b/SConstruct0-yuanshiwenjian new file mode 100644 index 0000000..ae0444f --- /dev/null +++ b/SConstruct0-yuanshiwenjian @@ -0,0 +1,242 @@ +import os, sys +from os.path import join as joinpath + +useIcc = False +#useIcc = True + +def buildSim(cppFlags, dir, type, pgo=None): + ''' Build the simulator with a specific base buid dir and config type''' + + buildDir = joinpath(dir, type) + print "Building " + type + " zsim at " + buildDir + + env = Environment(ENV = os.environ, tools = ['default', 'textfile']) + env["CPPFLAGS"] = cppFlags + + allSrcs = [f for dir, subdirs, files in os.walk("src") for f in Glob(dir + "/*")] + versionFile = joinpath(buildDir, "version.h") + if os.path.exists(".git"): + #env.Command(versionFile, allSrcs + [".git/index", "SConstruct"], + # 'printf "#define ZSIM_BUILDDATE \\"`date`\\"\\n#define ZSIM_BUILDVERSION \\"`python misc/gitver.py`\\"" >>' + versionFile) + env.Command(versionFile, allSrcs + [".git/index", "SConstruct"], + 'printf "#define ZSIM_BUILDDATE \\"`date "+%Y-%m-%d %T"`\\"\\n#define ZSIM_BUILDVERSION \\"`python misc/getver.py`\\"" >>' + versionFile) + else: + env.Command(versionFile, allSrcs + ["SConstruct"], + 'printf "#define ZSIM_BUILDDATE \\"`date`\\"\\n#define ZSIM_BUILDVERSION \\"no git repo\\"" >>' + versionFile) + + # Parallel builds? + #env.SetOption('num_jobs', 32) + + # Use link-time optimization? It's still a bit buggy, so be careful + #env['CXX'] = 'g++ -flto -flto-report -fuse-linker-plugin' + #env['CC'] = 'gcc -flto' + #env["LINKFLAGS"] = " -O3 -finline " + if useIcc: + env['CC'] = 'icc' + env['CXX'] = 'icpc -ipo' + + # Required paths + if "PINPATH" in os.environ: + PINPATH = os.environ["PINPATH"] + else: + print "ERROR: You need to define the $PINPATH environment variable with Pin's path" + sys.exit(1) + + ROOT = Dir('.').abspath + + # NOTE: These flags are for the 28/02/2011 2.9 PIN kit (rev39599). Older versions will not build. + # NOTE (dsm 10 Jan 2013): Tested with Pin 2.10 thru 2.12 as well + # NOTE: Original Pin flags included -fno-strict-aliasing, but zsim does not do type punning + # NOTE (dsm 16 Apr 2015): Update flags code to support Pin 2.14 while retaining backwards compatibility + env["CPPFLAGS"] += " -g -std=c++0x -Wall -Wno-unknown-pragmas -fomit-frame-pointer -fno-stack-protector" + env["CPPFLAGS"] += " -MMD -DBIGARRAY_MULTIPLIER=1 -DUSING_XED -DTARGET_IA32E -DHOST_IA32E -fPIC -DTARGET_LINUX -D_GLIBCXX_USE_CXX11_ABI=0 -fabi-version=2" + + # Pin 2.12+ kits have changed the layout of includes, detect whether we need + # source/include/ or source/include/pin/ + pinInclDir = joinpath(PINPATH, "source/include/") + if not os.path.exists(joinpath(pinInclDir, "pin.H")): + pinInclDir = joinpath(pinInclDir, "pin") + assert os.path.exists(joinpath(pinInclDir, "pin.H")) + + # Pin 2.14 changes location of XED + xedName = "xed2" # used below + xedPath = joinpath(PINPATH, "extras/" + xedName + "-intel64/include") + if not os.path.exists(xedPath): + xedName = "xed" + xedPath = joinpath(PINPATH, "extras/" + xedName + "-intel64/include") + assert os.path.exists(xedPath) + + DRAMPOWERPATH = os.environ["DRAMPOWERPATH"] + BOOKSIMPATH = os.environ["BOOKSIMPATH"] + + env["CPPPATH"] = [xedPath, + pinInclDir, joinpath(pinInclDir, "gen"), + joinpath(PINPATH, "extras/components/include"), joinpath("/usr/include/hdf5/serial"), joinpath(DRAMPOWERPATH), joinpath(BOOKSIMPATH)] + + # Perform trace logging? + ##env["CPPFLAGS"] += " -D_LOG_TRACE_=1" + + # Uncomment to get logging messages to stderr + ##env["CPPFLAGS"] += " -DDEBUG=1" + + # Be a Warning Nazi? (recommended) + #env["CPPFLAGS"] += " -Werror " + + # Enables lib and harness to use the same info/log code, + # but only lib uses pin locks for thread safety + env["PINCPPFLAGS"] = " -DMT_SAFE_LOG " + + # PIN-specific libraries + env["PINLINKFLAGS"] = " -Wl,--hash-style=sysv -Wl,-Bsymbolic -Wl,--version-script=" + joinpath(pinInclDir, "pintool.ver") + + # To prime system libs, we include /usr/lib and /usr/lib/x86_64-linux-gnu + # first in lib path. In particular, this solves the issue that, in some + # systems, Pin's libelf takes precedence over the system's, but it does not + # include symbols that we need or it's a different variant (we need + # libelfg0-dev in Ubuntu systems) + env["PINLIBPATH"] = ["/usr/lib", "/usr/lib/x86_64-linux-gnu", "/usr/lib/x86_64-linux-gnu/hdf5/serial/", joinpath(PINPATH, "extras/" + xedName + "-intel64/lib"), + joinpath(PINPATH, "intel64/lib"), joinpath(PINPATH, "intel64/lib-ext")] + + # Libdwarf is provided in static and shared variants, Ubuntu only provides + # static, and I don't want to add -R because + # there are some other old libraries provided there (e.g., libelf) and I + # want to use the system libs as much as possible. So link directly to the + # static version of libdwarf. + + # Pin 2.14 uses unambiguous libpindwarf + pindwarfPath = joinpath(PINPATH, "intel64/lib-ext/libdwarf.a") + pindwarfLib = File(pindwarfPath) + if not os.path.exists(pindwarfPath): + pindwarfLib = "pindwarf" + + env["PINLIBS"] = ["pin", "xed", pindwarfLib, "elf", "dl", "rt"] + + # Non-pintool libraries + env["LIBPATH"] = [] + env["LIBS"] = ["config++"] + + env["LINKFLAGS"] = "" + + if useIcc: + # icc libs + env["LINKFLAGS"] += " -Wl,-R/data/sanchez/tools/intel/composer_xe_2013.1.117/compiler/lib/intel64/" + + # Use non-standard library paths if defined + if "LIBCONFIGPATH" in os.environ: + LIBCONFIGPATH = os.environ["LIBCONFIGPATH"] + env["LINKFLAGS"] += " -Wl,-R" + joinpath(LIBCONFIGPATH, "lib") + env["LIBPATH"] += [joinpath(LIBCONFIGPATH, "lib")] + env["CPPPATH"] += [joinpath(LIBCONFIGPATH, "include")] + + + if "POLARSSLPATH" in os.environ: + POLARSSLPATH = os.environ["POLARSSLPATH"] + env["PINLIBPATH"] += [joinpath(POLARSSLPATH, "library")] + env["CPPPATH"] += [joinpath(POLARSSLPATH, "include")] + env["PINLIBS"] += ["polarssl"] + env["CPPFLAGS"] += " -D_WITH_POLARSSL_=1 " + + # Only include DRAMSim if available + if "DRAMSIMPATH" in os.environ: + DRAMSIMPATH = os.environ["DRAMSIMPATH"] + env["LINKFLAGS"] += " -Wl,-R" + DRAMSIMPATH + env["PINLIBPATH"] += [DRAMSIMPATH] + env["CPPPATH"] += [DRAMSIMPATH] + env["PINLIBS"] += ["dramsim"] + env["CPPFLAGS"] += " -D_WITH_DRAMSIM_=1 " + + env["CPPPATH"] += ["."] + + # Ramulator + env["CPPFLAGS"] += " -DRAMULATOR=1" + env["CPPFLAGS"] += " -D_WITH_RAMULATOR_=1 " + # DRAMPower + env["PINLIBPATH"] += [DRAMPOWERPATH] + # booksim + env["PINLIBPATH"] += [BOOKSIMPATH] + #External lib + env["PINLIBS"] += ["boost_program_options", "booksim", "drampowerxml", "drampower", "xerces-c", "icui18n", "icuuc", "icudata", "curl"] + + # HDF5 +# env["PINLIBS"] += '-L/usr/lib/x86_64-linux-gnu/hdf5/serial/' + env["PINLIBS"] += ["hdf5", "hdf5_hl"] + env["LINKFLAGS"] += " -L/usr/lib/x86_64-linux-gnu/hdf5/serial/" + + + # Harness needs these defined + env["CPPFLAGS"] += ' -DPIN_PATH="' + joinpath(PINPATH, "intel64/bin/pinbin") + '" ' + env["CPPFLAGS"] += ' -DZSIM_PATH="' + joinpath(ROOT, joinpath(buildDir, "libzsim.so")) + '" ' + + # Do PGO? + if pgo == "generate": + genFlags = " -prof-gen " if useIcc else " -fprofile-generate " + env["PINCPPFLAGS"] += genFlags + env["PINLINKFLAGS"] += genFlags + elif pgo == "use": + if useIcc: useFlags = " -prof-use " + else: useFlags = " -fprofile-use -fprofile-correction " + # even single-threaded sims use internal threads, so we need correction + env["PINCPPFLAGS"] += useFlags + env["PINLINKFLAGS"] += useFlags + + env.SConscript("src/SConscript", variant_dir=buildDir, exports= {'env' : env.Clone()}) + +#### + +AddOption('--buildDir', dest='buildDir', type='string', default="build/", nargs=1, action='store', metavar='DIR', help='Base build directory') +AddOption('--d', dest='debugBuild', default=False, action='store_true', help='Do a debug build') +AddOption('--o', dest='optBuild', default=False, action='store_true', help='Do an opt build (optimized, with assertions and symbols)') +AddOption('--r', dest='releaseBuild', default=False, action='store_true', help='Do a release build (optimized, no assertions, no symbols)') +AddOption('--p', dest='pgoBuild', default=False, action='store_true', help='Enable PGO') +AddOption('--pgoPhase', dest='pgoPhase', default="none", action='store', help='PGO phase (just run with --p to do them all)') + + +baseBuildDir = GetOption('buildDir') +buildTypes = [] +if GetOption('debugBuild'): buildTypes.append("debug") +if GetOption('releaseBuild'): buildTypes.append("release") +if GetOption('optBuild') or len(buildTypes) == 0: buildTypes.append("opt") + +march = "core2" # ensure compatibility across condor nodes +#march = "native" # for profiling runs + +buildFlags = {"debug": "-g -O0", + "opt": "-march=%s -g -O3 -funroll-loops" % march, # unroll loops tends to help in zsim, but in general it can cause slowdown + "release": "-march=%s -O3 -DNASSERT -funroll-loops -fweb" % march} # fweb saves ~4% exec time, but makes debugging a world of pain, so careful + +pgoPhase = GetOption('pgoPhase') + +# The PGO flow calls scons recursively. Hacky, but pretty much the only option: +# scons can't build the same file twice, and although gcc enables you to change +# the fprofile path, it considers the whole relative path as the filename +# (e.g., build/opt/zsim.os), and all hell breaks loose when it tries to create +# files in another dir. And because it uses checksums for filenames, it breaks +# when you move the files. Check the repo for a version that tries this. +if GetOption('pgoBuild'): + for type in buildTypes: + print "Building PGO binary" + root = Dir('.').abspath + testsDir = joinpath(root, "tests") + trainCfgs = [f for f in os.listdir(testsDir) if f.startswith("pgo")] + print "Using training configs", trainCfgs + + baseDir = joinpath(baseBuildDir, "pgo-" + type) + genCmd = "scons -j16 --pgoPhase=generate-" + type + runCmds = [] + for cfg in trainCfgs: + runCmd = "mkdir -p pgo-tmp && cd pgo-tmp && ../" + baseDir + "/zsim ../tests/" + cfg + " && cd .." + runCmds.append(runCmd) + useCmd = "scons -j16 --pgoPhase=use-" + type + Environment(ENV = os.environ).Command("dummyTgt-" + type, [], " && ".join([genCmd] + runCmds + [useCmd])) +elif pgoPhase.startswith("generate"): + type = pgoPhase.split("-")[1] + buildSim(buildFlags[type], baseBuildDir, "pgo-" + type, "generate") +elif pgoPhase.startswith("use"): + type = pgoPhase.split("-")[1] + buildSim(buildFlags[type], baseBuildDir, "pgo-" + type, "use") + baseDir = joinpath(baseBuildDir, "pgo-" + type) + Depends(Glob(joinpath(baseDir, "*.os")), "pgo-tmp/zsim.out") #force a rebuild +else: + for type in buildTypes: + buildSim(buildFlags[type], baseBuildDir, type) + diff --git a/common/DRAMPower/drampower b/common/DRAMPower/drampower index 65c5e9ce0cd0c36d21a5494cea4ac0d16a381e41..d7b9064ea026e06a4d0ec393f22b0aa0fa5a2474 100755 GIT binary patch literal 3322752 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 A9{J(an8il%L;7l44O{+#w)mV&_ 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