The evaluation will be run on 3 different machines, base, plat-1, and plat-2.
base is the "master" machine, and the other two are "slave" machines.
Install experiments requirements on all machines, if you are using our offered computer for artifacts, all the requirements have been installed.
pacman -S wget rsync \
jre11-openjdk-headless sbt \
base-devel clang llvm \
python3 python-pip python-numpy python-scipy python-pandas \
python-matplotlib python-seaborn python-tqdm \
cmake ninja boost ccache \
flex bison help2man perfInstall pdf build dependencies on base:
pacman -S texlive # select all groups in texlive
pacman -S python-jinja # to generate latex tableSometimes language may break the auto scripts, use the following command to reset language before evaluation:
unset LC_ALL LANG LANGUAGEThe platform names are shown in env.sh.
Configure ~/.ssh/config, ~/.ssh/authorized_keys correctly to make sure no password is needed for ssh on each machine, i.e. the following command should not require password or throw errors.
ssh base true # no password is needed
ssh plat-1 true # no password is needed
ssh plat-2 true # no password is neededNote: Make sure base can ssh itself.
Clone this repo to the $HOME directory on each machine.
git clone [this-repo] ~/ksim-aeUse the auto script to evaluate run build and evaluation on each machine.
make autoFinally, run the report script on base machine
make reportThen, download the report.pdf file and check the paper, the pdf file looks like this:
If fail, please see the evaluation details.
Tools are in sims and tools folder, run the following command to set up all simulators.
make -j1 prepare-setup
make -j$(nproc) setupSometimes setup fails due to multi-threading or sbt failure. You need to rerun make setup.
After setup, run . ./env.sh to check the environment. Please note that vcs is only available on base. Make sure vcs is in runs list on base and not on plat-1 and plat-2.
Check Tools
ksim is at ./sims/install/bin/ksim
llc is at ./sims/install/bin/llc
verilator is at ./sims/install/bin/verilator
firtool is at ./sims/install/bin/firtool
firrtl is at ./tools/bin/firrtl
g++ is at /usr/bin/g++
clang++ is at /usr/bin/clang++
essent is at ./sims/bin/essent
repcut is at ./sims/bin/repcut
KaHyPar is at ./sims/bin/KaHyPar
firclean is at ./tools/bin/firclean
timeit is at ./tools/bin/timeit
vcs is at /opt/synopsys/vcs/O-2018.09-SP2/bin/vcs
Runs: circt-verilator verilator-1 verilator-2 verilator-4 ksim essent repcut-1 repcut-2 repcut-4 repcut-6 repcut-8 vcs
Check SSH Connectivity
base success to connect
plat-1 success to connect
plat-2 success to connectThe experiment is divided into two phases, first, build executable files and then run the executable file to collect performance data.
Build the executable:
make -j$(nproc) buildRun the executable:
make -j1 run-allThe experiment data is listed in results folder, like this:
$ tree -L 1 results
results
├── cpu-info.json
├── extra-info.csv
├── fuse.csv
├── result.csv
├── runs
└── size.csvOn the base machine, run the following command to generate a performance report (report.pdf).
This command will copy results in base, plat-1, plat-2 into analysis/data and generate a report file according to the template in analysis/report.
make reportPlease download the report.pdf and see the performance.
