Doc improved
This commit is contained in:
81
README.md
81
README.md
@@ -966,7 +966,7 @@ A description of the content each directory follows.
|
|||||||
### Log Collector Script
|
### Log Collector Script
|
||||||
|
|
||||||
Users can profit of running multiple simulations automatically with
|
Users can profit of running multiple simulations automatically with
|
||||||
[DRAMSylva](DRAMSys/library/resources/scripts/DRAMSylva/DRAMSylva.sh).
|
[DRAMSylva.sh].
|
||||||
|
|
||||||
Every time you run the script you get a new folder with the name containing
|
Every time you run the script you get a new folder with the name containing
|
||||||
the execution time: dram.sys\_YYYY\_MM\_DD-HH.MM.SS.
|
the execution time: dram.sys\_YYYY\_MM\_DD-HH.MM.SS.
|
||||||
@@ -1066,8 +1066,9 @@ If some traces in trace_list are compressed in a tar.gz and require
|
|||||||
decompression before execution the option **tgz_traces** can be set to
|
decompression before execution the option **tgz_traces** can be set to
|
||||||
**yes**. The tarball is specified by the variable **tgz_file** and it is
|
**yes**. The tarball is specified by the variable **tgz_file** and it is
|
||||||
expected to be available (already commited and pushed to be available after
|
expected to be available (already commited and pushed to be available after
|
||||||
cloning) in the [trace folder](DRAMSys/library/resources/traces). DRAMSylva
|
cloning) in the [trace folder](DRAMSys/library/resources/traces).
|
||||||
will uncompress the tarball extracting the traces before using them.
|
[DRAMSylva.sh] will uncompress the tarball extracting the traces before using
|
||||||
|
them.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
tgz_traces="yes"
|
tgz_traces="yes"
|
||||||
@@ -1078,16 +1079,15 @@ Set the variable **use_json_cfg** to **yes** in order to override sim_files
|
|||||||
with new simulation files generated from a JSON description. Otherwise the
|
with new simulation files generated from a JSON description. Otherwise the
|
||||||
simulation files are the ones specified by sim_files. Files are expected to be
|
simulation files are the ones specified by sim_files. Files are expected to be
|
||||||
available (already commited and pushed to be available after cloning) in
|
available (already commited and pushed to be available after cloning) in
|
||||||
[configs_json](DRAMSys/library/resources/scripts/DRAMSylva/configs_json).
|
[configs_json].
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
use_json_cfg="yes"
|
use_json_cfg="yes"
|
||||||
```
|
```
|
||||||
|
|
||||||
All the essential simuation files are auto generated accordingly to each of
|
All the essential simuation files are auto generated accordingly to each of
|
||||||
the JSON descriptions provided in **json_cfg_list**.
|
the JSON descriptions provided in **json_cfg_list**. Several examples of JSON
|
||||||
Several examples of JSON configuration files are provided in
|
configuration files are provided in [configs_json].
|
||||||
[configs_json](DRAMSys/library/resources/scripts/DRAMSylva/configs_json).
|
|
||||||
|
|
||||||
+ Insert the desired simulation data in one or multiple JSON files following
|
+ Insert the desired simulation data in one or multiple JSON files following
|
||||||
any of the examples provided, e.g.,
|
any of the examples provided, e.g.,
|
||||||
@@ -1095,7 +1095,7 @@ Several examples of JSON configuration files are provided in
|
|||||||
Multiple arrays are allowed and encouraged. Each array corresponds to a full
|
Multiple arrays are allowed and encouraged. Each array corresponds to a full
|
||||||
simulation setup.
|
simulation setup.
|
||||||
|
|
||||||
+ Add your JSON files to **json_cfg_list** in DRAMSylva.sh.
|
+ Add your JSON files to **json_cfg_list** in [DRAMSylva.sh].
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
json_cfg_list="
|
json_cfg_list="
|
||||||
@@ -1106,11 +1106,11 @@ ref_bw.json
|
|||||||
|
|
||||||
+ Commit and push your changes.
|
+ Commit and push your changes.
|
||||||
|
|
||||||
+ Run **DRAMSylva** as previously described. All generated files will be
|
+ Run **[DRAMSylva.sh]** as previously described. All generated files will be
|
||||||
inside the output folder, so it will be possible to keep a perfect track of
|
inside the output folder, so it will be possible to keep a perfect track of
|
||||||
all simulations.
|
all simulations.
|
||||||
|
|
||||||
For more information check the documentation in [DRAMSylva](DRAMSys/library/resources/scripts/DRAMSylva).
|
For more information check the documentation inside [DRAMSylva folder].
|
||||||
|
|
||||||
### Trace Generator Script
|
### Trace Generator Script
|
||||||
|
|
||||||
@@ -1438,7 +1438,7 @@ $ ./DRAMSys > output
|
|||||||
## DRAMSys with gem5
|
## DRAMSys with gem5
|
||||||
|
|
||||||
Install gem5 by following the instructions on the [gem5 wiki](http://gem5.org/Documentation#Getting_Started).
|
Install gem5 by following the instructions on the [gem5 wiki](http://gem5.org/Documentation#Getting_Started).
|
||||||
Optionally, use the scripts from [gem5.TnT](https://github.com/tukl-msd/gem5.TnT) to install gem5, build it, get some benchmark programs and learn more about gem5.
|
Optionally, use the scripts from [gem5.TnT] to install gem5, build it, get some benchmark programs and learn more about gem5.
|
||||||
|
|
||||||
In order to understand the SystemC coupling with gem5 it is recommended to
|
In order to understand the SystemC coupling with gem5 it is recommended to
|
||||||
read the documentation in the gem5 repository *util/tlm/README* and [12].
|
read the documentation in the gem5 repository *util/tlm/README* and [12].
|
||||||
@@ -1567,7 +1567,7 @@ Wait some minutes for the bubble sort application to finish.
|
|||||||
|
|
||||||
The hello application binary was copied from gem5 repository.
|
The hello application binary was copied from gem5 repository.
|
||||||
|
|
||||||
The bubble sort application was obtained with [gem5.TnT](https://github.com/tukl-msd/gem5.TnT).
|
The bubble sort application was obtained with [gem5.TnT].
|
||||||
|
|
||||||
Command template for generating **.ini** configuration files follows:
|
Command template for generating **.ini** configuration files follows:
|
||||||
|
|
||||||
@@ -1727,11 +1727,8 @@ If you need help please contact Matthias Jung.
|
|||||||
### DRAMSys + GEM5 Log Collector Scripts
|
### DRAMSys + GEM5 Log Collector Scripts
|
||||||
|
|
||||||
Users can profit of running multiple **DRAMSys + gem5** simulations
|
Users can profit of running multiple **DRAMSys + gem5** simulations
|
||||||
automatically with
|
automatically with [gem5ilva.sh] for **gem5 syscall emulation (SE) mode** and
|
||||||
[gem5ilva.sh](DRAMSys/library/resources/scripts/DRAMSylva/gem5ilva.sh) for **gem5
|
[gem5ilva_fs.sh] for **gem5 full system (FS) mode**.
|
||||||
syscall emulation (SE) mode** and
|
|
||||||
[gem5ilva_fs.sh](DRAMSys/library/resources/scripts/DRAMSylva/gem5ilva_fs.sh) for
|
|
||||||
**gem5 full system (FS) mode**.
|
|
||||||
|
|
||||||
Normally you will have to push your changes before running the scripts. This
|
Normally you will have to push your changes before running the scripts. This
|
||||||
approach makes it easier to track back what exactly was tested by the scripts.
|
approach makes it easier to track back what exactly was tested by the scripts.
|
||||||
@@ -1763,46 +1760,43 @@ the main repository (usually because they are too big to be added to the
|
|||||||
repository).
|
repository).
|
||||||
|
|
||||||
For those cases uncomment and properly set the variable
|
For those cases uncomment and properly set the variable
|
||||||
**external_inifile_path** in
|
**external_inifile_path** in [gem5ilva_fs.sh].
|
||||||
[gem5ilva_fs.sh](DRAMSys/library/resources/scripts/DRAMSylva/gem5ilva_fs.sh).
|
|
||||||
|
|
||||||
This allows you to use a gem5 **config.ini** file external to the repository.
|
This allows you to use a gem5 **config.ini** file external to the repository.
|
||||||
Note, however, that in this case it is up to you to keep track of your
|
Note, however, that in this case it is up to you to keep track of your
|
||||||
simulation setup.
|
simulation setup.
|
||||||
|
|
||||||
**Hint:**
|
**Hint:**
|
||||||
[gem5.TnT](https://github.com/tukl-msd/gem5.TnT) provides convenience scripts
|
[gem5.TnT] provides convenience scripts
|
||||||
to create gem5 disk images with benchmarking programs embedded.
|
to create gem5 disk images with benchmarking programs embedded.
|
||||||
|
|
||||||
### Notes for [Elwetritsch](https://elwe.rhrk.uni-kl.de/) Users
|
### Notes for [Elwetritsch] Users
|
||||||
|
|
||||||
Firstly, take a look at [High Performance Computing at the TU
|
Firstly, take a look at [High Performance Computing at the TU Kaiserslautern](https://elwe.rhrk.uni-kl.de/).
|
||||||
Kaiserslautern](https://elwe.rhrk.uni-kl.de/).
|
|
||||||
|
|
||||||
After that, please give yourself a change to learn a bit about [Batch Usage at
|
After that, please give yourself a change to learn a bit about [Batch Usage at
|
||||||
RHRK TU Kaiserslautern](https://elwe.rhrk.uni-kl.de/elwetritsch/batch.shtml).
|
RHRK TU Kaiserslautern](https://elwe.rhrk.uni-kl.de/elwetritsch/batch.shtml).
|
||||||
This will probably save you some time later on.
|
This will probably save you some time later on.
|
||||||
|
|
||||||
When using DRAMSys + gem5 on the [Elwetritsch](https://elwe.rhrk.uni-kl.de/)
|
When using DRAMSys + gem5 on the [Elwetritsch] gem5 can be installed with
|
||||||
gem5 can be installed with convenience scripts provided by
|
convenience scripts provided by [gem5.TnT].
|
||||||
[gem5.TnT](https://github.com/tukl-msd/gem5.TnT).
|
|
||||||
|
|
||||||
[gem5.TnT](https://github.com/tukl-msd/gem5.TnT) also provides convenience scripts
|
[gem5.TnT] also provides convenience scripts
|
||||||
to create gem5 disk images with benchmarking programs embedded. The creation
|
to create gem5 disk images with benchmarking programs embedded. The creation
|
||||||
of disk images for gem5 requires superuser privilege. A solution is to copy
|
of disk images for gem5 requires superuser privilege. A solution is to copy
|
||||||
(e.g., using scp or mounting a folder, etc.) the locally created disk images
|
(e.g., using scp or mounting a folder, etc.) the locally created disk images
|
||||||
to Elwetritsch. Since there is no compilation involved, copying disk images
|
to [Elwetritsch]. Since there is no compilation involved, copying disk images
|
||||||
created in one machine to another machine should not incur in incompatibility
|
created in one machine to another machine should not incur in incompatibility
|
||||||
problems.
|
problems.
|
||||||
|
|
||||||
On gem5.TnT repository open a gem5.TnT config file.
|
On [gem5.TnT] repository open a [gem5.TnT] config file.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ vim common/defaults.in
|
$ vim common/defaults.in
|
||||||
```
|
```
|
||||||
|
|
||||||
Note the variable **ROOTDIR**. Its default value is *ROOTDIR=$HOME/gem5_tnt*.
|
Note the variable **ROOTDIR**. Its default value is *ROOTDIR=$HOME/gem5_tnt*.
|
||||||
That means that gem5.TnT will download to *$HOME/gem5_tnt*.
|
That means that [gem5.TnT] will download to *$HOME/gem5_tnt*.
|
||||||
|
|
||||||
Currently the space one can use in its Elwetrich *$HOME* folder is limited to
|
Currently the space one can use in its Elwetrich *$HOME* folder is limited to
|
||||||
a few tens of GiB. Nevertheless, a directory **/scratch/$USER** is provided
|
a few tens of GiB. Nevertheless, a directory **/scratch/$USER** is provided
|
||||||
@@ -1817,7 +1811,7 @@ $ cd
|
|||||||
$ ln -s /scratch/$USER/gem5_tnt
|
$ ln -s /scratch/$USER/gem5_tnt
|
||||||
```
|
```
|
||||||
|
|
||||||
On gem5.TnT repository use the commands below to get files and build gem5:
|
On [gem5.TnT] repository use the commands below to get files and build gem5:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ ./get_essential_fs.sh
|
$ ./get_essential_fs.sh
|
||||||
@@ -1829,14 +1823,12 @@ $ ./build_gem5.sh
|
|||||||
To get DRAMSys installed follow the traditional setup instructions described
|
To get DRAMSys installed follow the traditional setup instructions described
|
||||||
in this document.
|
in this document.
|
||||||
|
|
||||||
For building DRAMSys one can profit from using
|
For building DRAMSys one can profit from using [DRAMSylva.sh] which loads the
|
||||||
[DRAMSylva.sh](DRAMSys/library/resources/scripts/DRAMSylva/DRAMSylva.sh) which
|
modules that are necessary for building DRAMSys on [Elwetritsch].
|
||||||
loads the modules that are necessary for building DRAMSys on Elwetritsch.
|
|
||||||
|
|
||||||
Regarding dependencies for building DRAMSys and DRAMSys + gem5, the scripts
|
Regarding dependencies for building DRAMSys and DRAMSys + gem5, the scripts
|
||||||
provided inside the [DRAMSylva
|
provided inside the [DRAMSylva folder], when running on [Elwetritsch], will
|
||||||
folder](DRAMSys/library/resources/scripts/DRAMSylva), when running on
|
load the required modules automatically.
|
||||||
Elwetritsch, will load the required modules automatically.
|
|
||||||
|
|
||||||
As usual, one may export environment variables from his/her **~/.bashrc** file
|
As usual, one may export environment variables from his/her **~/.bashrc** file
|
||||||
on Elwetritch. Some segments extracted from a functional ~/.bashrc file are
|
on Elwetritch. Some segments extracted from a functional ~/.bashrc file are
|
||||||
@@ -1877,10 +1869,9 @@ unset TMOUT
|
|||||||
```
|
```
|
||||||
|
|
||||||
[SLURM](https://slurm.schedmd.com/overview.html) **job scripts** are available
|
[SLURM](https://slurm.schedmd.com/overview.html) **job scripts** are available
|
||||||
inside the [DRAMSylva](DRAMSys/library/resources/scripts/DRAMSylva) folder.
|
inside the [DRAMSylva folder]. They can be used directly without changes or as
|
||||||
They can be used directly without changes or as examples on how to start jobs
|
examples on how to start jobs using nodes of the [Elwetritsch] cluster. Of
|
||||||
using nodes of the Elwetritsch cluster. Of course, one can create his/her own
|
course, one can create his/her own job scripts.
|
||||||
job scripts.
|
|
||||||
|
|
||||||
|
|
||||||
### Coverage Check
|
### Coverage Check
|
||||||
@@ -1942,3 +1933,11 @@ Conference on Embedded Computer Systems Architectures Modeling and Simulation
|
|||||||
Portable Radhika Jagtap, Stephan Diestelhorst, Andreas Hansson, Matthias Jung
|
Portable Radhika Jagtap, Stephan Diestelhorst, Andreas Hansson, Matthias Jung
|
||||||
and Norbert Wehn, IEEE International Conference on Embedded Computer Systems
|
and Norbert Wehn, IEEE International Conference on Embedded Computer Systems
|
||||||
Architectures Modeling and Simulation (SAMOS), 2016, Samos Island, Greece.
|
Architectures Modeling and Simulation (SAMOS), 2016, Samos Island, Greece.
|
||||||
|
|
||||||
|
[gem5.TnT]: https://github.com/tukl-msd/gem5.TnT
|
||||||
|
[gem5ilva.sh]: DRAMSys/library/resources/scripts/DRAMSylva/gem5ilva.sh
|
||||||
|
[gem5ilva_fs.sh]: DRAMSys/library/resources/scripts/DRAMSylva/gem5ilva_fs.sh
|
||||||
|
[Elwetritsch]: https://elwe.rhrk.uni-kl.de/
|
||||||
|
[DRAMSylva.sh]: DRAMSys/library/resources/scripts/DRAMSylva/DRAMSylva.sh
|
||||||
|
[DRAMSylva folder]: DRAMSys/library/resources/scripts/DRAMSylva
|
||||||
|
[configs_json]: DRAMSys/library/resources/scripts/DRAMSylva/configs_json
|
||||||
|
|||||||
Reference in New Issue
Block a user