Git Product home page Git Product logo

masc-ucsc / esesc Goto Github PK

View Code? Open in Web Editor NEW
132.0 32.0 64.0 123.8 MB

ESESC: A Fast Multicore Simulator

Home Page: http://masc.soe.ucsc.edu/esesc/

Makefile 0.68% C 86.62% C++ 7.98% CMake 0.04% Python 1.87% Shell 0.97% Ruby 0.02% Perl 0.34% Haxe 0.26% Objective-C 0.06% Assembly 1.06% NSIS 0.01% Lex 0.01% Yacc 0.02% GLSL 0.01% M4 0.01% Emacs Lisp 0.01% GDB 0.01% Roff 0.01% PHP 0.05%
sesc simulator memory-hierarchy emulation

esesc's Introduction

ESESC

Build Status

CodeFactor

To discuss about ESESC, there is a gitter channel (the mailing list are being deprecated)

Gitter

ESESC: A Fast Multicore Simulator

What is ESESC?

ESESC is a fast multiprocessor simulator with detailed power, thermal, and performance models for modern out-of-order multicores. ESESC is an evolution of the popular SESC simulator (Enhanced SESC) that provides many new features.

The main ESESC characteristics are the following:

  • It is very fast (over 40MIPS with sampling)
  • Uses QEMU and supports user mode RISCV and MIPS64r6 ISA
  • Models OoO and InOrder cores in detail (ROB, Instruction Window, etc)
  • Supports configurable memory hierarchy, and on-chip memory controller
  • Supports multicore, homogeneous and heterogeneous configurations
  • Simulates multithreaded and multiprogram applications
  • Models power and temperature in addition to performance, and their interactions

ESESC is a significant evolution/improvement over SESC:

  • ESESC has RISCV and MIPS64r6 ISA, sesc had MIPS ISA.
  • ESESC can run unmodified Linux RISCV and MIPS binaries, sesc required a custom toolchain.
  • ESESC uses QEMU for emulation, sesc had a custom emulator.
  • ESESC is integrated with McPat, sesc had an older Wattch model.
  • ESESC has a brand new memory hierarchy, sesc had a more complex coherence.
  • ESESC has improved thermal modeling, sesc had HotSpot
  • ESESC has many types of sampling (statistical, smarts, simpoint), sesc had none.
  • ESESC is actively maintained, sesc is no longer mantained.
  • ESESC has many bugs solved.

For more information on running ESESC see the docs directory. Use the gitter discussion group for questions.

If you publish research using ESESC please cite the paper ESESC: A Fast Multicore Simulator Using Time-Based Sampling from HPCA 2013.

@INPROCEEDINGS{esesc,
  author = {K. Ardestani, E. and Renau, J.},
  title = { {ESESC: A Fast Multicore Simulator Using Time-Based Sampling} },
  booktitle = {International Symposium on High Performance Computer Architecture},
  series = {HPCA'19},
  year = {2013}
}

esesc's People

Contributors

akashsridhar avatar bitdeli-chef avatar david-kooi avatar fallenhh avatar fzakaria avatar renau avatar rparihar avatar southerngs avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

esesc's Issues

Run MIPS benchmark

I am able to run RISCV binaries, but MIPS does not work.
Trace is below:
Might it have something to do with the line: CPU MODEL passed through elf rv64gcsu-v1.10.0 rv64gcsu-v1.10.0-riscv-cpu ?

Fill router is IL1(0)
Bottom:clear router is Memory(0)
single:clear router is L2(0)
single:clear router is IL1(0)
Fill router is DL1(0)
Bottom:clear router is Memory(0)
single:clear router is L2(0)
Creating ooorder processor 0
****PREFETCHING****PrefetchEngine 

Sampler: inst, R:2000000, W:0, D:100000, T:300000
Sampler: inst, nInstMax:10000000000, nInstSkip:1, maxnsTime:1000000000000
Power calculations disabled
STARTING QEMU ......
QEMUReader: Initializing qemu...
Starting qemu with
arg[0] is: qemu
arg[1] is: ./bins/mips64/blackscholes.mips64
arg[2] is: 2
arg[3] is: in_64K.txt
arg[4] is: out.log
CPU MODEL passed through elf rv64gcsu-v1.10.0 rv64gcsu-v1.10.0-riscv-cpu
QEMUReader_cpu_start(0)
./bins/mips64/blackscholes.mips64: Invalid ELF image for this architecture

Error when building

Hello, I believe I installed all the dependencies correctly; however I am still getting an undefined error on
isMarkAdd and isMarkDel. Any assistance would be much appreciated.

It appears to have been introduced with commit aafe01b.

Reverting to 342e3fa appears to fix it temporarily.

Full build log:

/usr/bin/cmake -H/home/waltz/Documents/git/esce/esesc -B/home/waltz/Documents/git/esce/build/debug --check-build-system CMakeFiles/Makefile.cmake 0
/usr/bin/cmake -E cmake_progress_start /home/waltz/Documents/git/esce/build/debug/CMakeFiles /home/waltz/Documents/git/esce/build/debug/CMakeFiles/progress.marks
make -f CMakeFiles/Makefile2 all
make[1]: Entering directory '/home/waltz/Documents/git/esce/build/debug'
make -f misc/libsuc/CMakeFiles/suc.dir/build.make misc/libsuc/CMakeFiles/suc.dir/depend
make[2]: Entering directory '/home/waltz/Documents/git/esce/build/debug'
[  0%] [FLEX][conflexer] Building scanner with flex 2.6.0
cd /home/waltz/Documents/git/esce/esesc && /usr/bin/flex -Cemr -o/home/waltz/Documents/git/esce/build/debug/misc/libsuc/conflexer.cpp /home/waltz/Documents/git/esce/esesc/misc/libsuc/conflex.l
[  0%] [BISON][confparser] Building parser with bison 3.0.4
cd /home/waltz/Documents/git/esce/esesc && /usr/bin/bison -p yyConf -d -o /home/waltz/Documents/git/esce/build/debug/misc/libsuc/confparser.cpp /home/waltz/Documents/git/esce/esesc/misc/libsuc/conflex.y
/home/waltz/Documents/git/esce/esesc/misc/libsuc/conflex.y: warning: 40 shift/reduce conflicts [-Wconflicts-sr]
/home/waltz/Documents/git/esce/esesc/misc/libsuc/conflex.y: warning: 3 reduce/reduce conflicts [-Wconflicts-rr]
cd /home/waltz/Documents/git/esce/build/debug && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/waltz/Documents/git/esce/esesc /home/waltz/Documents/git/esce/esesc/misc/libsuc /home/waltz/Documents/git/esce/build/debug /home/waltz/Documents/git/esce/build/debug/misc/libsuc /home/waltz/Documents/git/esce/build/debug/misc/libsuc/CMakeFiles/suc.dir/DependInfo.cmake --color=
Dependee "/home/waltz/Documents/git/esce/build/debug/misc/libsuc/conflexer.cpp" is newer than depends file "/home/waltz/Documents/git/esce/build/debug/misc/libsuc/CMakeFiles/suc.dir/depend.internal".
Dependee "/home/waltz/Documents/git/esce/build/debug/misc/libsuc/confparser.hpp" is newer than depends file "/home/waltz/Documents/git/esce/build/debug/misc/libsuc/CMakeFiles/suc.dir/depend.internal".
Dependee "/home/waltz/Documents/git/esce/build/debug/misc/libsuc/confparser.cpp" is newer than depends file "/home/waltz/Documents/git/esce/build/debug/misc/libsuc/CMakeFiles/suc.dir/depend.internal".
Clearing dependencies in "/home/waltz/Documents/git/esce/build/debug/misc/libsuc/CMakeFiles/suc.dir/depend.make".
Scanning dependencies of target suc
make[2]: Leaving directory '/home/waltz/Documents/git/esce/build/debug'
make -f misc/libsuc/CMakeFiles/suc.dir/build.make misc/libsuc/CMakeFiles/suc.dir/build
make[2]: Entering directory '/home/waltz/Documents/git/esce/build/debug'
[  1%] Building CXX object misc/libsuc/CMakeFiles/suc.dir/CodeProfile.cpp.o
cd /home/waltz/Documents/git/esce/build/debug/misc/libsuc && /usr/bin/c++    -I/home/waltz/Documents/git/esce/build/debug/misc/libsuc -I/home/waltz/Documents/git/esce/esesc/misc/libsuc  -g -O0 -DDEBUG=1 -fPIC   -o CMakeFiles/suc.dir/CodeProfile.cpp.o -c /home/waltz/Documents/git/esce/esesc/misc/libsuc/CodeProfile.cpp
[  1%] Building CXX object misc/libsuc/CMakeFiles/suc.dir/Report.cpp.o
cd /home/waltz/Documents/git/esce/build/debug/misc/libsuc && /usr/bin/c++    -I/home/waltz/Documents/git/esce/build/debug/misc/libsuc -I/home/waltz/Documents/git/esce/esesc/misc/libsuc  -g -O0 -DDEBUG=1 -fPIC   -o CMakeFiles/suc.dir/Report.cpp.o -c /home/waltz/Documents/git/esce/esesc/misc/libsuc/Report.cpp
[  1%] Building CXX object misc/libsuc/CMakeFiles/suc.dir/CacheCore.cpp.o
cd /home/waltz/Documents/git/esce/build/debug/misc/libsuc && /usr/bin/c++    -I/home/waltz/Documents/git/esce/build/debug/misc/libsuc -I/home/waltz/Documents/git/esce/esesc/misc/libsuc  -g -O0 -DDEBUG=1 -fPIC   -o CMakeFiles/suc.dir/CacheCore.cpp.o -c /home/waltz/Documents/git/esce/esesc/misc/libsuc/CacheCore.cpp
[  2%] Building CXX object misc/libsuc/CMakeFiles/suc.dir/TQueue.cpp.o
cd /home/waltz/Documents/git/esce/build/debug/misc/libsuc && /usr/bin/c++    -I/home/waltz/Documents/git/esce/build/debug/misc/libsuc -I/home/waltz/Documents/git/esce/esesc/misc/libsuc  -g -O0 -DDEBUG=1 -fPIC   -o CMakeFiles/suc.dir/TQueue.cpp.o -c /home/waltz/Documents/git/esce/esesc/misc/libsuc/TQueue.cpp
[  2%] Building CXX object misc/libsuc/CMakeFiles/suc.dir/callback.cpp.o
cd /home/waltz/Documents/git/esce/build/debug/misc/libsuc && /usr/bin/c++    -I/home/waltz/Documents/git/esce/build/debug/misc/libsuc -I/home/waltz/Documents/git/esce/esesc/misc/libsuc  -g -O0 -DDEBUG=1 -fPIC   -o CMakeFiles/suc.dir/callback.cpp.o -c /home/waltz/Documents/git/esce/esesc/misc/libsuc/callback.cpp
[  4%] Building CXX object misc/libsuc/CMakeFiles/suc.dir/Transporter.cpp.o
cd /home/waltz/Documents/git/esce/build/debug/misc/libsuc && /usr/bin/c++    -I/home/waltz/Documents/git/esce/build/debug/misc/libsuc -I/home/waltz/Documents/git/esce/esesc/misc/libsuc  -g -O0 -DDEBUG=1 -fPIC   -o CMakeFiles/suc.dir/Transporter.cpp.o -c /home/waltz/Documents/git/esce/esesc/misc/libsuc/Transporter.cpp
[  4%] Building CXX object misc/libsuc/CMakeFiles/suc.dir/md5.cpp.o
cd /home/waltz/Documents/git/esce/build/debug/misc/libsuc && /usr/bin/c++    -I/home/waltz/Documents/git/esce/build/debug/misc/libsuc -I/home/waltz/Documents/git/esce/esesc/misc/libsuc  -g -O0 -DDEBUG=1 -fPIC   -o CMakeFiles/suc.dir/md5.cpp.o -c /home/waltz/Documents/git/esce/esesc/misc/libsuc/md5.cpp
[  4%] Building CXX object misc/libsuc/CMakeFiles/suc.dir/SCTable.cpp.o
cd /home/waltz/Documents/git/esce/build/debug/misc/libsuc && /usr/bin/c++    -I/home/waltz/Documents/git/esce/build/debug/misc/libsuc -I/home/waltz/Documents/git/esce/esesc/misc/libsuc  -g -O0 -DDEBUG=1 -fPIC   -o CMakeFiles/suc.dir/SCTable.cpp.o -c /home/waltz/Documents/git/esce/esesc/misc/libsuc/SCTable.cpp
[  5%] Building CXX object misc/libsuc/CMakeFiles/suc.dir/lightson.cpp.o
cd /home/waltz/Documents/git/esce/build/debug/misc/libsuc && /usr/bin/c++    -I/home/waltz/Documents/git/esce/build/debug/misc/libsuc -I/home/waltz/Documents/git/esce/esesc/misc/libsuc  -g -O0 -DDEBUG=1 -fPIC   -o CMakeFiles/suc.dir/lightson.cpp.o -c /home/waltz/Documents/git/esce/esesc/misc/libsuc/lightson.cpp
[  5%] Building CXX object misc/libsuc/CMakeFiles/suc.dir/LiveCacheCore.cpp.o
cd /home/waltz/Documents/git/esce/build/debug/misc/libsuc && /usr/bin/c++    -I/home/waltz/Documents/git/esce/build/debug/misc/libsuc -I/home/waltz/Documents/git/esce/esesc/misc/libsuc  -g -O0 -DDEBUG=1 -fPIC   -o CMakeFiles/suc.dir/LiveCacheCore.cpp.o -c /home/waltz/Documents/git/esce/esesc/misc/libsuc/LiveCacheCore.cpp
[  5%] Building CXX object misc/libsuc/CMakeFiles/suc.dir/BloomFilter.cpp.o
cd /home/waltz/Documents/git/esce/build/debug/misc/libsuc && /usr/bin/c++    -I/home/waltz/Documents/git/esce/build/debug/misc/libsuc -I/home/waltz/Documents/git/esce/esesc/misc/libsuc  -g -O0 -DDEBUG=1 -fPIC   -o CMakeFiles/suc.dir/BloomFilter.cpp.o -c /home/waltz/Documents/git/esce/esesc/misc/libsuc/BloomFilter.cpp
[  7%] Building CXX object misc/libsuc/CMakeFiles/suc.dir/SescConf.cpp.o
cd /home/waltz/Documents/git/esce/build/debug/misc/libsuc && /usr/bin/c++    -I/home/waltz/Documents/git/esce/build/debug/misc/libsuc -I/home/waltz/Documents/git/esce/esesc/misc/libsuc  -g -O0 -DDEBUG=1 -fPIC   -o CMakeFiles/suc.dir/SescConf.cpp.o -c /home/waltz/Documents/git/esce/esesc/misc/libsuc/SescConf.cpp
[  7%] Building CXX object misc/libsuc/CMakeFiles/suc.dir/LiveCache.cpp.o
cd /home/waltz/Documents/git/esce/build/debug/misc/libsuc && /usr/bin/c++    -I/home/waltz/Documents/git/esce/build/debug/misc/libsuc -I/home/waltz/Documents/git/esce/esesc/misc/libsuc  -g -O0 -DDEBUG=1 -fPIC   -o CMakeFiles/suc.dir/LiveCache.cpp.o -c /home/waltz/Documents/git/esce/esesc/misc/libsuc/LiveCache.cpp
[  7%] Building CXX object misc/libsuc/CMakeFiles/suc.dir/GStats.cpp.o
cd /home/waltz/Documents/git/esce/build/debug/misc/libsuc && /usr/bin/c++    -I/home/waltz/Documents/git/esce/build/debug/misc/libsuc -I/home/waltz/Documents/git/esce/esesc/misc/libsuc  -g -O0 -DDEBUG=1 -fPIC   -o CMakeFiles/suc.dir/GStats.cpp.o -c /home/waltz/Documents/git/esce/esesc/misc/libsuc/GStats.cpp
[  8%] Building CXX object misc/libsuc/CMakeFiles/suc.dir/nanassert.cpp.o
cd /home/waltz/Documents/git/esce/build/debug/misc/libsuc && /usr/bin/c++    -I/home/waltz/Documents/git/esce/build/debug/misc/libsuc -I/home/waltz/Documents/git/esce/esesc/misc/libsuc  -g -O0 -DDEBUG=1 -fPIC   -o CMakeFiles/suc.dir/nanassert.cpp.o -c /home/waltz/Documents/git/esce/esesc/misc/libsuc/nanassert.cpp
[  8%] Building CXX object misc/libsuc/CMakeFiles/suc.dir/Port.cpp.o
cd /home/waltz/Documents/git/esce/build/debug/misc/libsuc && /usr/bin/c++    -I/home/waltz/Documents/git/esce/build/debug/misc/libsuc -I/home/waltz/Documents/git/esce/esesc/misc/libsuc  -g -O0 -DDEBUG=1 -fPIC   -o CMakeFiles/suc.dir/Port.cpp.o -c /home/waltz/Documents/git/esce/esesc/misc/libsuc/Port.cpp
[ 10%] Building CXX object misc/libsuc/CMakeFiles/suc.dir/Snippets.cpp.o
cd /home/waltz/Documents/git/esce/build/debug/misc/libsuc && /usr/bin/c++    -I/home/waltz/Documents/git/esce/build/debug/misc/libsuc -I/home/waltz/Documents/git/esce/esesc/misc/libsuc  -g -O0 -DDEBUG=1 -fPIC   -o CMakeFiles/suc.dir/Snippets.cpp.o -c /home/waltz/Documents/git/esce/esesc/misc/libsuc/Snippets.cpp
[ 10%] Building CXX object misc/libsuc/CMakeFiles/suc.dir/Config.cpp.o
cd /home/waltz/Documents/git/esce/build/debug/misc/libsuc && /usr/bin/c++    -I/home/waltz/Documents/git/esce/build/debug/misc/libsuc -I/home/waltz/Documents/git/esce/esesc/misc/libsuc  -g -O0 -DDEBUG=1 -fPIC   -o CMakeFiles/suc.dir/Config.cpp.o -c /home/waltz/Documents/git/esce/esesc/misc/libsuc/Config.cpp
[ 10%] Building CXX object misc/libsuc/CMakeFiles/suc.dir/confparser.cpp.o
cd /home/waltz/Documents/git/esce/build/debug/misc/libsuc && /usr/bin/c++    -I/home/waltz/Documents/git/esce/build/debug/misc/libsuc -I/home/waltz/Documents/git/esce/esesc/misc/libsuc  -g -O0 -DDEBUG=1 -fPIC   -o CMakeFiles/suc.dir/confparser.cpp.o -c /home/waltz/Documents/git/esce/build/debug/misc/libsuc/confparser.cpp
[ 11%] Building CXX object misc/libsuc/CMakeFiles/suc.dir/conflexer.cpp.o
cd /home/waltz/Documents/git/esce/build/debug/misc/libsuc && /usr/bin/c++    -I/home/waltz/Documents/git/esce/build/debug/misc/libsuc -I/home/waltz/Documents/git/esce/esesc/misc/libsuc  -g -O0 -DDEBUG=1 -fPIC   -o CMakeFiles/suc.dir/conflexer.cpp.o -c /home/waltz/Documents/git/esce/build/debug/misc/libsuc/conflexer.cpp
[ 11%] Linking CXX static library libsuc.a
cd /home/waltz/Documents/git/esce/build/debug/misc/libsuc && /usr/bin/cmake -P CMakeFiles/suc.dir/cmake_clean_target.cmake
cd /home/waltz/Documents/git/esce/build/debug/misc/libsuc && /usr/bin/cmake -E cmake_link_script CMakeFiles/suc.dir/link.txt --verbose=1
/usr/bin/ar qc libsuc.a  CMakeFiles/suc.dir/CodeProfile.cpp.o CMakeFiles/suc.dir/Report.cpp.o CMakeFiles/suc.dir/CacheCore.cpp.o CMakeFiles/suc.dir/TQueue.cpp.o CMakeFiles/suc.dir/callback.cpp.o CMakeFiles/suc.dir/Transporter.cpp.o CMakeFiles/suc.dir/md5.cpp.o CMakeFiles/suc.dir/SCTable.cpp.o CMakeFiles/suc.dir/lightson.cpp.o CMakeFiles/suc.dir/LiveCacheCore.cpp.o CMakeFiles/suc.dir/BloomFilter.cpp.o CMakeFiles/suc.dir/SescConf.cpp.o CMakeFiles/suc.dir/LiveCache.cpp.o CMakeFiles/suc.dir/GStats.cpp.o CMakeFiles/suc.dir/nanassert.cpp.o CMakeFiles/suc.dir/Port.cpp.o CMakeFiles/suc.dir/Snippets.cpp.o CMakeFiles/suc.dir/Config.cpp.o CMakeFiles/suc.dir/confparser.cpp.o CMakeFiles/suc.dir/conflexer.cpp.o
/usr/bin/ranlib libsuc.a
make[2]: Leaving directory '/home/waltz/Documents/git/esce/build/debug'
[ 11%] Built target suc
make -f emul/libemulint/CMakeFiles/emulint.dir/build.make emul/libemulint/CMakeFiles/emulint.dir/depend
make[2]: Entering directory '/home/waltz/Documents/git/esce/build/debug'
cd /home/waltz/Documents/git/esce/build/debug && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/waltz/Documents/git/esce/esesc /home/waltz/Documents/git/esce/esesc/emul/libemulint /home/waltz/Documents/git/esce/build/debug /home/waltz/Documents/git/esce/build/debug/emul/libemulint /home/waltz/Documents/git/esce/build/debug/emul/libemulint/CMakeFiles/emulint.dir/DependInfo.cmake --color=
make[2]: Leaving directory '/home/waltz/Documents/git/esce/build/debug'
make -f emul/libemulint/CMakeFiles/emulint.dir/build.make emul/libemulint/CMakeFiles/emulint.dir/build
make[2]: Entering directory '/home/waltz/Documents/git/esce/build/debug'
[ 11%] Building CXX object emul/libemulint/CMakeFiles/emulint.dir/Instruction.cpp.o
cd /home/waltz/Documents/git/esce/build/debug/emul/libemulint && /usr/bin/c++    -I/home/waltz/Documents/git/esce/esesc/misc/libsuc -I/home/waltz/Documents/git/esce/esesc/emul/libemulint  -g -O0 -DDEBUG=1 -fPIC   -o CMakeFiles/emulint.dir/Instruction.cpp.o -c /home/waltz/Documents/git/esce/esesc/emul/libemulint/Instruction.cpp
[ 13%] Building CXX object emul/libemulint/CMakeFiles/emulint.dir/EmulInterface.cpp.o
cd /home/waltz/Documents/git/esce/build/debug/emul/libemulint && /usr/bin/c++    -I/home/waltz/Documents/git/esce/esesc/misc/libsuc -I/home/waltz/Documents/git/esce/esesc/emul/libemulint  -g -O0 -DDEBUG=1 -fPIC   -o CMakeFiles/emulint.dir/EmulInterface.cpp.o -c /home/waltz/Documents/git/esce/esesc/emul/libemulint/EmulInterface.cpp
[ 13%] Building CXX object emul/libemulint/CMakeFiles/emulint.dir/EmuSampler.cpp.o
cd /home/waltz/Documents/git/esce/build/debug/emul/libemulint && /usr/bin/c++    -I/home/waltz/Documents/git/esce/esesc/misc/libsuc -I/home/waltz/Documents/git/esce/esesc/emul/libemulint  -g -O0 -DDEBUG=1 -fPIC   -o CMakeFiles/emulint.dir/EmuSampler.cpp.o -c /home/waltz/Documents/git/esce/esesc/emul/libemulint/EmuSampler.cpp
[ 14%] Building CXX object emul/libemulint/CMakeFiles/emulint.dir/DInst.cpp.o
cd /home/waltz/Documents/git/esce/build/debug/emul/libemulint && /usr/bin/c++    -I/home/waltz/Documents/git/esce/esesc/misc/libsuc -I/home/waltz/Documents/git/esce/esesc/emul/libemulint  -g -O0 -DDEBUG=1 -fPIC   -o CMakeFiles/emulint.dir/DInst.cpp.o -c /home/waltz/Documents/git/esce/esesc/emul/libemulint/DInst.cpp
In file included from /home/waltz/Documents/git/esce/esesc/emul/libemulint/Instruction.h:39:0,
                 from /home/waltz/Documents/git/esce/esesc/emul/libemulint/DInst.h:39,
                 from /home/waltz/Documents/git/esce/esesc/emul/libemulint/DInst.cpp:36:
/home/waltz/Documents/git/esce/esesc/emul/libemulint/DInst.cpp: In member function ‘void DInst::recycle()’:
/home/waltz/Documents/git/esce/esesc/emul/libemulint/DInst.cpp:138:16: error: ‘isMarkAdd’ was not declared in this scope
   GI(isMarkAdd(), isMarkDel());
                ^
/home/waltz/Documents/git/esce/esesc/misc/libsuc/nanassert.h:200:25: note: in definition of macro ‘GI’
 #define GI(g,e)  do{ if(g)  I(e); }while(0)
                         ^
/home/waltz/Documents/git/esce/esesc/emul/libemulint/DInst.cpp:138:29: error: ‘isMarkDel’ was not declared in this scope
   GI(isMarkAdd(), isMarkDel());
                             ^
/home/waltz/Documents/git/esce/esesc/misc/libsuc/nanassert.h:198:43: note: in definition of macro ‘I’
 #define I(aC)    do{                 if(!(aC)) doassert(); }while(0)
                                           ^
/home/waltz/Documents/git/esce/esesc/emul/libemulint/DInst.cpp:138:3: note: in expansion of macro ‘GI’
   GI(isMarkAdd(), isMarkDel());
   ^
/home/waltz/Documents/git/esce/esesc/emul/libemulint/DInst.cpp: In member function ‘void DInst::scrap(EmulInterface*)’:
/home/waltz/Documents/git/esce/esesc/emul/libemulint/DInst.cpp:149:16: error: ‘isMarkAdd’ was not declared in this scope
   GI(isMarkAdd(), isMarkDel());
                ^
/home/waltz/Documents/git/esce/esesc/misc/libsuc/nanassert.h:200:25: note: in definition of macro ‘GI’
 #define GI(g,e)  do{ if(g)  I(e); }while(0)
                         ^
/home/waltz/Documents/git/esce/esesc/emul/libemulint/DInst.cpp:149:29: error: ‘isMarkDel’ was not declared in this scope
   GI(isMarkAdd(), isMarkDel());
                             ^
/home/waltz/Documents/git/esce/esesc/misc/libsuc/nanassert.h:198:43: note: in definition of macro ‘I’
 #define I(aC)    do{                 if(!(aC)) doassert(); }while(0)
                                           ^
/home/waltz/Documents/git/esce/esesc/emul/libemulint/DInst.cpp:149:3: note: in expansion of macro ‘GI’
   GI(isMarkAdd(), isMarkDel());
   ^
/home/waltz/Documents/git/esce/esesc/emul/libemulint/DInst.cpp: In member function ‘void DInst::destroy(EmulInterface*)’:
/home/waltz/Documents/git/esce/esesc/emul/libemulint/DInst.cpp:162:16: error: ‘isMarkAdd’ was not declared in this scope
   GI(isMarkAdd(), isMarkDel());
                ^
/home/waltz/Documents/git/esce/esesc/misc/libsuc/nanassert.h:200:25: note: in definition of macro ‘GI’
 #define GI(g,e)  do{ if(g)  I(e); }while(0)
                         ^
/home/waltz/Documents/git/esce/esesc/emul/libemulint/DInst.cpp:162:29: error: ‘isMarkDel’ was not declared in this scope
   GI(isMarkAdd(), isMarkDel());
                             ^
/home/waltz/Documents/git/esce/esesc/misc/libsuc/nanassert.h:198:43: note: in definition of macro ‘I’
 #define I(aC)    do{                 if(!(aC)) doassert(); }while(0)
                                           ^
/home/waltz/Documents/git/esce/esesc/emul/libemulint/DInst.cpp:162:3: note: in expansion of macro ‘GI’
   GI(isMarkAdd(), isMarkDel());
   ^
emul/libemulint/CMakeFiles/emulint.dir/build.make:134: recipe for target 'emul/libemulint/CMakeFiles/emulint.dir/DInst.cpp.o' failed
make[2]: *** [emul/libemulint/CMakeFiles/emulint.dir/DInst.cpp.o] Error 1
make[2]: Leaving directory '/home/waltz/Documents/git/esce/build/debug'
CMakeFiles/Makefile2:397: recipe for target 'emul/libemulint/CMakeFiles/emulint.dir/all' failed
make[1]: *** [emul/libemulint/CMakeFiles/emulint.dir/all] Error 2
make[1]: Leaving directory '/home/waltz/Documents/git/esce/build/debug'
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

Boost Version

Which boost version does esesc use?

I am compiling esesc on a server and I have to do local installation of boost.

RISCV Tests and Running Benchmarks

I am trying to run the RISCV test on esesc. Specifically, dhrystone.

I cloned the riscv tests from: .
Then I built the binaries. The resulting dhyrstone.riscv binary I moved to esesc.
I changed esesc.conf to consume dhrystone.risv.

But I get an illegal instruction error.
dhrystone_run

The assembly dump of dhrystone.riscv is attached.
dhrystone.riscv.dump.txt

A related question is: Is there a standard was to compile and run benchmark programs?
Is it just compiling for RISCV and using the binary?

LTAG Branch Predictor

A couple questions:

What is RAS? I try running TAGE by itself and I get a pre-fetcher issue:
ltag_branch_predict

This is fixed by making the 1st branch predictor 2bit.
Does 2bit always have to be included?

Then, what is the benefit of running multiple branch predictors?
From the point of view of the simulation are they executed in parallel?

Thanks

--
+1 Curiosity:
Running the TAGE branch predictor uses a lot of memory compared to 2bit and 2level. It crashes on my laptop with 16GB memory because memory consumption keeps increasing. Why is that?

undefined reference to `gettid' error

I am getting 4 such errors when I run make after teh cmake command.

../qemu/riscv64-linux-user/linux-user/syscall.o: In function `clone_func':
/esesc/emul/qemu_riscv/linux-user/syscall.c:6359: undefined reference to `gettid'

Same error in function do_syscall line 11759, do_fork in lines 6508 and 6510.

Please tell me how to solve these errors.

Compilation error in DEBUG mode

Hi,
I get this error when compiling in the debug mode:
cmake -DCMAKE_BUILD_TYPE=Debug esesc-master/
make

[ 48%] Building CXX object simu/libcore/CMakeFiles/core.dir/BPred.cpp.o
In file included from esesc-master/simu/libcore/BPred.cpp:49:0:
esesc-master/simu/libcore/IMLIBest.h: In member function 'void IMLIBest::updatePredictor(AddrType, bool, bool, AddrType)':
esesc-master/simu/libcore/IMLIBest.h:1710:9: error: variable-sized object 'skip' may not be initialized
};
^
make[2]: *** [simu/libcore/CMakeFiles/core.dir/BPred.cpp.o] Error 1
make[1]: *** [simu/libcore/CMakeFiles/core.dir/all] Error 2
make: *** [all] Error 2

From esesc-master/simu/libcore/IMLIBest.h:
bool skip[nhist+1] = { false, };

Is this a known issue? I'm using RHEL 7.3 and g++ (GCC) 4.8.5.

ESESC Power model does not run

The ESESC Power model of Master branch is not running.

I simulated the ESESC Model by referring to this link, https://masc.soe.ucsc.edu/esesc/log/2013/09/24/tutorial/.

The simulator was runned from a docker that was created using the link[ubuntu version Docker]
https://github.com/masc-ucsc/docker-images/tree/master/ubuntu-masc

Timing model showed the right result, but the power model did not work.

I build esesc below command.

cmake ~/projs/esesc/ -DESESC_SYSTEM=1 -DESESC_MIPSR6=1

And According to Tutorial, I copied the conf file and bins file.

and I modified esesc.conf

benchName="./bins/mips64/crafty.in"
#enablePower=false
enablePower=true

but this not run, and error script is below

root@801fee27e480:~/build/release/run# ~/build/release/main/esesc < crafty.in
Fill router is IL1(0)
Bottom:clear router is Memory(0)
single:clear router is L2(0)
single:clear router is IL1(0)
Fill router is DL1(0)
Bottom:clear router is Memory(0)
single:clear router is L2(0)
Creating ooorder processor 0
PREFETCHINGPrefetchEngine
Sampler: inst, R:0, W:0, D:0, T:2000000000
Sampler: inst, nInstMax:10000000000, nInstSkip:1, maxnsTime:1000000000000
Config::getBool for inorder in tradCORE[0] not found in config file.
WARNING: GStat 'P(0)_BPRED_Hybrid:nMiss' needed by PowerModel not found
WARNING: GStat 'P(0)_AUNIT_rdRegPool' needed by PowerModel not found
WARNING: GStat 'P(0)_BUNIT_rdRegPool' needed by PowerModel not found
WARNING: GStat 'P(0)_LUNIT_rdRegPool' needed by PowerModel not found
WARNING: GStat 'P(0)_SUNIT_rdRegPool' needed by PowerModel not found
WARNING: GStat 'P(0)_AUNIT_wrRegPool' needed by PowerModel not found
WARNING: GStat 'P(0)_BUNIT_wrRegPool' needed by PowerModel not found
WARNING: GStat 'P(0)_LUNIT_wrRegPool' needed by PowerModel not found
WARNING: GStat 'P(0)_SUNIT_wrRegPool' needed by PowerModel not found
WARNING: GStat 'P(0)_CUNIT_rdRegPool' needed by PowerModel not found
WARNING: GStat 'P(0)_CUNIT_wrRegPool' needed by PowerModel not found
Initialize McPAT/CACTI
Config::getBool for inorder in tradCORE[0] not found in config file.
Config::getBool for scooreCore in tradCORE[0] not found in config file.
Config::getInt for tbits in BPredIssueX[0] not found in config file.
Config::getInt for tsize in BPredIssueX[0] not found in config file.
Config::getInt for tsize in BPredIssueX[0] not found in config file.
Config::getInt for tbits in BPredIssueX[0] not found in config file.
Config::getInt for tsize in BPredIssueX[0] not found in config file.
Config::getInt for tbits in BPredIssueX[0] not found in config file.
Config::getInt for numBanks in BPredIssueX[0] not found in config file.
Initializing CPU Memory objects
Attempting to set up icache
Done setting up icache
Attempting to set up icacheMissBuffer
Done setting up icacheMissBuffer
Attempting to set up InstBufferupdate Interval = 100000ERROR: no valid data array organizations found

Please help me, I want to simulate the power model.

Tutorial is not properly accurate

While trying to run the step 6, the terminal says some file are missing.
But, I found a solution. Instead of executing step 5 like the tutorial, execute this
cp ~/projs/esesc/conf/* ~/build/release/run
cp ~/projs/esesc/bins/mips64/* ~/build/release/run
That will copy the missing files.

report.pl does not report correct time if result file is copied

I am using git to synchronous benchmark result from virtual box to the host because I want to track the changes I made to configuration files, however I found when run report.pl <result-file>, I got different result in vm and host. I don't know perl, but I believe the script is using the create time of the result file as the start time of the bechmark, which is only true when you don't copy the result file.

The code that print the date is here

    printf "\n********************************************************************************************************\n";
    printf "# File  : %-20s : %20s\n", $file,ctime((stat($file))[9]);

    print "# THESE ARE PARTIAL STATISTICS\n" if( $cf->getResultField("OSSim","reportName") =~ /signal/i );

A possible solution is to use the beginTime and EndTime in the result file, i.e.

#END Configuration used. Extracted from "esesc.conf":
OSSim:reportName=done
OSSim:beginTime=Tue Jan 24 20:12:21 2017

OSSim:endTime=Tue Jan 24 20:19:58 2017

Prefetcher

Is there any support for prefetchers? How difficult would it be to add support for prefetchers?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.