Files
gem5-ilp-experiments/integratedAnalysis/parse_integrated.sh
Carlos Gutierrez cd69096346 initial commit
2025-09-21 01:17:26 -04:00

28 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
set -eu
ROOT=/home/carlos/projects/gem5/gem5-data/results/integrated
printf "%-10s %-3s %-4s %8s %10s %10s %s\n" "BP" "W" "T" "IPC" "L1D MPKI" "Br MPKI" "Per-thread committed"
find "$ROOT" -name stats.txt | while read -r S; do
# decode BP/W/T from path: .../BP-<BP>/W<W>/SMT<T>/stats.txt
BP=$(echo "$S" | sed -n 's#.*/BP-\([^/]*\)/.*#\1#p')
W=$(echo "$S" | sed -n 's#.*/W\([0-9]*\)/.*#\1#p')
T=$(echo "$S" | sed -n 's#.*/SMT\([0-9]*\)/.*#\1#p')
awk -v BP="$BP" -v W="$W" -v T="$T" '
/^simInsts/ {I=$2}
/system\.cpu\.numCycles/ {C=$2}
/system\.l1d\.overall_misses::total/ {Dm=$2}
/branchPred\.mispredictions/ {Bm=$2}
/branchPred\.lookups/ {Bl=$2}
/commit\.committedInsts::([0-9]+)/ {tid=$1; gsub(/.*::/,"",tid); Tcommit[tid]=$2}
END{
ipc=(C>0)? I/C : 0;
dmpki=(I>0)? 1000*Dm/I : 0;
bmpki=(I>0)? 1000*Bm/I : 0;
per="";
for (t in Tcommit) per=per "t" t "=" Tcommit[t] " ";
printf "%-10s %-3s %-4s %8.3f %10.2f %10.2f %s\n", BP, W, T, ipc, dmpki, bmpki, per;
}' "$S"
done | sort -k1,1 -k2,2n -k3,3n