Files
Carlos Gutierrez cd69096346 initial commit
2025-09-21 01:17:26 -04:00

58 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/env bash
set -eu
# --- Paths (match your cache script style) ---
export GEM5=/home/carlos/projects/gem5/gem5src/gem5
export RUN=/home/carlos/projects/gem5/gem5-run
export OUTROOT=/home/carlos/projects/gem5/gem5-data/results
# Workload (reuse your memtouch; swap for any x86 bin you like)
CMD="$RUN/memtouch/memtouch"
[ -x "$CMD" ] || CMD="/bin/ls"
# Convenience
BIN="$GEM5/build/X86/gem5.opt"
SEPY="$GEM5/configs/deprecated/example/se.py"
# ------------- 1) Baseline O3 run -------------
OUT="$OUTROOT/pipeline/o3-baseline"
mkdir -p "$OUT"
"$BIN" \
--outdir="$OUT" \
"$SEPY" \
--cmd="$CMD" \
--cpu-type=DerivO3CPU \
--cpu-clock=2GHz --sys-clock=2GHz \
--caches --l2cache \
--l1i_size=32kB --l1d_size=32kB --l2_size=1MB \
--maxinsts=200000000
echo "[baseline] stats: $OUT/stats.txt"
awk '
/simInsts/ {I=$2}
/system\.cpu\.numCycles/ {C=$2}
END{if(C>0) printf("Baseline IPC = %.3f (insts=%s cycles=%s)\n", I/C, I, C)}' \
"$OUT/stats.txt"
# ------------- 2) Cycle-by-cycle trace -------------
OUT="$OUTROOT/pipeline/o3-trace"
mkdir -p "$OUT"
"$BIN" \
--outdir="$OUT" \
--debug-flags=O3CPU,Fetch,Decode,Rename,IEW,Commit,Branch,Activity \
--debug-file=pipe.trace \
"$SEPY" \
--cmd="$CMD" \
--cpu-type=DerivO3CPU \
--cpu-clock=2GHz --sys-clock=2GHz \
--caches --l2cache \
--maxinsts=5000000
echo "[trace] debug trace: $OUT/pipe.trace"
echo "[trace] quick peek:"
grep -E 'Fetch|Decode|Rename|IEW|Commit|Branch' "$OUT/pipe.trace" | head -60
echo "[trace] stage/queue highlights:"
egrep 'iq|ROB|LQ|SQ|idleCycles' "$OUT/stats.txt" | sed -n '1,200p'