diff --git a/README.md b/README.md index 0d113dede..191a24df5 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@

ChampSim

-

ChampSim is a trace-based simulator for a microarchitecture study. You can sign up to the public mailing list by sending an empty mail to champsim+subscribe@googlegroups.com. A set of traces used for the 2nd Cache Replacement Championship (CRC-2) can be found from this link. (http://bit.ly/2t2nkUj)

+

ChampSim is a trace-based simulator for a microarchitecture study. You can sign up to the public mailing list by sending an empty mail to champsim+subscribe@googlegroups.com. Traces for the 3rd Data Prefetching Championship (DPC-3) can be found from here (https://dpc3.compas.cs.stonybrook.edu/?SW_IS). A set of traces used for the 2nd Cache Replacement Championship (CRC-2) can be found from this link. (http://bit.ly/2t2nkUj)

# Clone ChampSim repository @@ -18,30 +18,38 @@ $ ./build_champsim.sh bimodal no no no lru 1 $ ./build_champsim.sh ${BRANCH} ${L1D_PREFETCHER} ${L2C_PREFETCHER} ${LLC_PREFETCHER} ${LLC_REPLACEMENT} ${NUM_CORE} ``` +# Download DPC-3 trace + +Professor Daniel Jimenez at Texas A&M University kindly provided traces for DPC-3. Use the following script to download these traces (~20GB size and max simpoint only). +``` +$ cd scripts + +$ ./download_dpc3_traces.sh +``` + # Run simulation -Copy `scripts/run_champsim.sh` to the ChampSim root directory and change `TRACE_DIR` in `run_champsim.sh`
+Execute `run_champsim.sh` with proper input arguments. The default `TRACE_DIR` in `run_champsim.sh` is set to `$PWD/dpc3_traces`.
* Single-core simulation: Run simulation with `run_champsim.sh` script. ``` -$ ./run_champsim.sh bimodal-no-no-no-lru-1core 1 10 bzip2_183B - -$ ./run_champsim.sh ${binary} ${n_warm} ${n_sim} ${trace} ${option} +Usage: ./run_champsim.sh [BINARY] [N_WARM] [N_SIM] [TRACE] [OPTION] +$ ./run_champsim.sh bimodal-no-no-no-lru-1core 1 10 400.perlbench-41B.champsimtrace.xz -${binary}: ChampSim binary compiled by "build_champsim.sh" (bimodal-no-no-lru-1core) -${n_warm}: number of instructions for warmup (1 million) -${n_sim}: number of instructinos for detailed simulation (10 million) -${trace}: trace name (bzip2) -${option}: extra option for "-low_bandwidth" (src/main.cc) +${BINARY}: ChampSim binary compiled by "build_champsim.sh" (bimodal-no-no-lru-1core) +${N_WARM}: number of instructions for warmup (1 million) +${N_SIM}: number of instructinos for detailed simulation (10 million) +${TRACE}: trace name (400.perlbench-41B.champsimtrace.xz) +${OPTION}: extra option for "-low_bandwidth" (src/main.cc) ``` -Simulation results will be stored under "results_${n_sim}M" as a form of "${trace}-${binary}-${option}.txt".
+Simulation results will be stored under "results_${N_SIM}M" as a form of "${TRACE}-${BINARY}-${OPTION}.txt".
* Multi-core simulation: Run simulation with `run_4core.sh` or `run_8core.sh`.
-Note that `${trace}` is replaced with `${num}` that represents a unique ID for randomly mixed multi-programmed workloads. +Note that `${TRACE}` is replaced with `${num}` that represents a unique ID for randomly mixed multi-programmed workloads. ``` -$ ./run_4core.sh ${binary} ${n_warm} ${n_sim} ${num} ${option} +$ ./run_4core.sh ${BINARY} ${N_WARM} ${N_SIM} ${num} ${OPTION} ${num}: mix number is the corresponding line number written in sim_list/4core_workloads.txt ``` diff --git a/run_champsim.sh b/run_champsim.sh index da32222f6..13a69ffca 100755 --- a/run_champsim.sh +++ b/run_champsim.sh @@ -1,5 +1,11 @@ #!/bin/bash +if [ "$#" -lt 4 ]; then + echo "Illegal number of parameters" + echo "Usage: ./run_champsim.sh [BINARY] [N_WARM] [N_SIM] [TRACE] [OPTION]" + exit 1 +fi + TRACE_DIR=$PWD/dpc3_traces BINARY=${1} N_WARM=${2}