Between Tuesday August 20th, 5:00pm and Thursday August 22nd, 8:00am git.uwaterloo.ca will be down for an upgrade to version 10.8.7.

9f4b2f12 by Anirudh Mohan Kaushik

Traces and splash2

1 parent 799a131f
...@@ -19,13 +19,14 @@ This is the gem5 code repository for Predictable MSI (PMSI) presented in our RTA ...@@ -19,13 +19,14 @@ This is the gem5 code repository for Predictable MSI (PMSI) presented in our RTA
19 * Trace based simulation can be enabled by setting the `TRACE` flag in `src/cpu/testers/rubytest/Trace.hh`. 19 * Trace based simulation can be enabled by setting the `TRACE` flag in `src/cpu/testers/rubytest/Trace.hh`.
20 * The trace based simulation reads from a file `trace.trc` that consists of lines of requests of the form `Addr OP time`. OP is of type RD for read and WR for write, and time is a positive integer value that denotes the arrival time of the memory request to the memory hierarchy. 20 * The trace based simulation reads from a file `trace.trc` that consists of lines of requests of the form `Addr OP time`. OP is of type RD for read and WR for write, and time is a positive integer value that denotes the arrival time of the memory request to the memory hierarchy.
21 * The trace simulation automatically replicates the memory operations in `trace.trc` across multiple cores (specified by `-n` flag) with the same time-stamp. The issue of the request to the bus is handled by the TDM arbiter. To see a complete trace of the memory requests issued by the cores, enable the protocol trace by using the following command line option: `--debug-flags=ProtocolTrace`. 21 * The trace simulation automatically replicates the memory operations in `trace.trc` across multiple cores (specified by `-n` flag) with the same time-stamp. The issue of the request to the bus is handled by the TDM arbiter. To see a complete trace of the memory requests issued by the cores, enable the protocol trace by using the following command line option: `--debug-flags=ProtocolTrace`.
22 * A sample trace file can be found in `traces/`.
22 23
23 # Running PMSI 24 # Running PMSI
24 * To run PMSI, the following command line options need to be used for correct functioning: `--ruby, --cpu-type=timing, --topology=Crossbar --cpu-clock=xGHz --ruby-clock=yGHz`. 25 * To run PMSI, the following command line options need to be used for correct functioning: `--ruby, --cpu-type=timing, --topology=Crossbar --cpu-clock=xGHz --ruby-clock=yGHz`.
25 * Other options such as cache sizes, memory size, cache associativity, and number of cores can be configured accordingly. 26 * Other options such as cache sizes, memory size, cache associativity, and number of cores can be configured accordingly.
26 * For binary/normal execution, supply the binary name and the associated arguments using the `-c` and `-o` flags respectively. For example, to run FFT of the Splash2 benchmark: `./build/X86_MSI_Snooping_One_Level_RT/gem5.opt --stats-file=FFT-pmsi-stats.out ./configs/example/se.py --ruby -n4 --cpu-type=timing --l1d_size=16kB --l1i_size=16kB --l1d_assoc=1 --l1i_assoc=1 --mem-size=4194304kB --topology=Crossbar --cpu-clock=2GHz --ruby-clock=2GHz --mem-type=SimpleMemory -c $SPLASH/splash2/codes/kernels/fft/fft -o "-m 10 -p 4 -t"` 27 * For binary/normal execution, supply the binary name and the associated arguments using the `-c` and `-o` flags respectively. For example, to run FFT of the Splash2 benchmark: `./build/X86_MSI_Snooping_One_Level_RT/gem5.opt --stats-file=FFT-pmsi-stats.out ./configs/example/se.py --ruby -n4 --cpu-type=timing --l1d_size=16kB --l1i_size=16kB --l1d_assoc=1 --l1i_assoc=1 --mem-size=4194304kB --topology=Crossbar --cpu-clock=2GHz --ruby-clock=2GHz --mem-type=SimpleMemory -c $SPLASH/splash2/codes/kernels/fft/fft -o "-m 10 -p 4 -t"`
27 * For trace based execution, populate the `trace.trc` file with the necessary memory operations and execute: `./build/X86_MSI_Snooping_One_Level_RT/gem5.opt ./configs/example/ruby_random_test.py --ruby-clock=2GHz --ruby --cpu-clock=2GHz --topology=Crossbar --mem-type=SimpleMemory -n 4 --mem-size=4194304kB --wakeup_freq=1`. 28 * For trace based execution, populate the `trace.trc` file with the necessary memory operations and execute: `./build/X86_MSI_Snooping_One_Level_RT/gem5.opt ./configs/example/ruby_random_test.py --ruby-clock=2GHz --ruby --cpu-clock=2GHz --topology=Crossbar --mem-type=SimpleMemory -n 4 --mem-size=4194304kB --wakeup_freq=1`.
28 29 * We provide a script to run the SPLASH2 benchmarks in the `scripts/` directory.
29 30
30 # Contact 31 # Contact
31 * Feel free to contact [us](mailto:amkaushi@uwaterloo.ca) for questions regarding PMSI. 32 * Feel free to contact [us](mailto:amkaushi@uwaterloo.ca) for questions regarding PMSI.
......