diff --git a/README.md b/README.md index 22db70c4..3e3e3d65 100644 --- a/README.md +++ b/README.md @@ -1707,6 +1707,91 @@ If you need help please contact Matthias Jung. Users can profit of running multiple simulations automatically with [gem5ilva](DRAMSys/library/resources/scripts/DRAMSylva/gem5ilva.sh). +### Notes for Elwetritsch users + +For using DRAMSys + gem5 on the Elwetritsch gem5 can be installed with +convenience scripts provided by +[gem5.TnT](https://github.com/tukl-msd/gem5.TnT). + +[gem5.TnT](https://github.com/tukl-msd/gem5.TnT) provides convenience scripts +to create disk images too. The creation of disk images for gem5 requires +superuser privilege. A solution is to copy locally created the disk images +locally to Elwetritsch (e.g., scp or mounting a folder, etc.). Since there is +no compilation copying disk images should not incur in incompatibility +problems. + +Regarding dependencies for building DRAMSys and gem5, the scripts provided in +[DRAMSylva](DRAMSys/library/resources/scripts/DRAMSylva), when running on +Elwetritsch, will load the required modules automatically. + +On gem5.TnT repository open a gem5.TnT config file. + +```bash +$ vim common/defaults.in +``` + +Note the variable ROOTDIR. Its default value is readonly +ROOTDIR=$HOME/gem5_tnt. That means that gem5.TnT will download to +$HOME/gem5_tnt. + +Currently on Elwetritsch the space one can use in $HOME is limited to some +tens of GiB. + +One can create a symlink pointing to /scratch/$USER/gem5_tnt (/scratch/$USER +is a place where lots of space are available). + +```bash +$ cd $SCRATCH +$ mkdir gem5_tnt +$ cd +$ ln -s /scratch/$USER/gem5_tnt +``` + +On gem5.TnT repository use the commands below to get files and build gem5: + +```bash +$ ./get_essential_fs.sh +$ ./get_benchmarks.sh +$ ./get_extra_fs.sh +$ ./build_gem5.sh +``` + +Example of a functional ~/.bashrc on Elwetritsch: + +```bash +# User specific aliases and functions +# SystemC home +export SYSTEMC_HOME=$HOME/repos/systemc-2.3.1a +# SystemC target architecture +export SYSTEMC_TARGET_ARCH=linux64 +export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${SYSTEMC_HOME}/lib-linux64 + +# Qwt lib +export LIBQWT_HOME=$HOME/repos/qwt-6.1/lib +export LIBQWT_HEADERS=$HOME/repos/qwt-6.1/src +export LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+${LD_LIBRARY_PATH}:}$LIBQWT_HOME + +# Python lib +export LIBPYTHON_VERSION="3.4m" +export PYTHON_HOME=/usr/lib64 +export PYTHON_HEADERS=/usr/include/python3.4m + +# Gem5 + DRAMsys +export GEM5=$HOME/gem5_tnt/gem5 + +# Gem5 SystemC/TLM2.0 coupling (see also: $HOME/gem5_tnt/gem5/util/tlm/README) +export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${HOME}/gem5_tnt/gem5/build/ARM +export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${SYSTEMC_HOME}/lib-$SYSTEMC_TARGET_ARCH +export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:${SYSTEMC_HOME}/lib-$SYSTEMC_TARGET_ARCH/pkgconfig + +# M5_PATH for gem5 +export M5_PATH=$HOME/gem5_tnt/full_system/arm/aarch-system-20180409 + +# Do not close my terminal when inactive after a timeout +unset TMOUT +``` + + ## References [1] TLM Modelling of 3D Stacked Wide I/O DRAM Subsystems, A Virtual Platform for Memory Controller Design Space Exploration