Major Features: - Debug counter infrastructure for Refill Stage tracking - Free Pipeline counters (ss_local, ss_remote, tls_sll) - Diagnostic counters for early return analysis - Unified larson.sh benchmark runner with profiles - Phase 6-3 regression analysis documentation Bug Fixes: - Fix SuperSlab disabled by default (HAKMEM_TINY_USE_SUPERSLAB) - Fix profile variable naming consistency - Add .gitignore patterns for large files Performance: - Phase 6-3: 4.79 M ops/s (has OOM risk) - With SuperSlab: 3.13 M ops/s (+19% improvement) This is a clean repository without large log files. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
65 lines
2.0 KiB
Bash
65 lines
2.0 KiB
Bash
#!/usr/bin/env bash
|
||
set -euo pipefail
|
||
|
||
# Aggregate suite runner: tiny-hot triad, random-mixed triad, comprehensive pair, optional app benches
|
||
# Usage: scripts/run_suite_compare.sh [cycles_hot] [cycles_mixed] [with_apps]
|
||
# cycles_hot : tiny hot cycles (default 80000)
|
||
# cycles_mixed : random mixed cycles (default 120000)
|
||
# with_apps : 0/1 (default 0) — if 1, runs scripts/run_apps_with_hakmem.sh
|
||
|
||
ROOT_DIR=$(cd "$(dirname "$0")/.." && pwd)
|
||
cd "$ROOT_DIR"
|
||
|
||
cycles_hot=${1:-80000}
|
||
cycles_mixed=${2:-120000}
|
||
with_apps=${3:-0}
|
||
|
||
TS=$(date +%Y%m%d_%H%M%S)
|
||
OUTDIR="bench_results/suite_${TS}"
|
||
mkdir -p "$OUTDIR"
|
||
|
||
log() { echo "[$(date +%H:%M:%S)] $*"; }
|
||
|
||
log "tiny hot triad ($cycles_hot)"
|
||
bash scripts/run_tiny_hot_triad.sh "$cycles_hot" | tee "$OUTDIR/tiny_hot.log" >/dev/null || true
|
||
th_csv=$(sed -n 's/^\[done\] CSV: \(.*\)$/\1/p' "$OUTDIR/tiny_hot.log" | tail -n1)
|
||
|
||
log "random mixed triad ($cycles_mixed)"
|
||
bash scripts/run_random_mixed_matrix.sh "$cycles_mixed" | tee "$OUTDIR/random_mixed.log" >/dev/null || true
|
||
rm_csv=$(sed -n 's/^\[done\] CSV: \(.*\)$/\1/p' "$OUTDIR/random_mixed.log" | tail -n1)
|
||
|
||
log "comprehensive pair"
|
||
bash scripts/run_comprehensive_pair.sh | tee "$OUTDIR/comp_pair.log" >/dev/null || true
|
||
cp_csv=$(sed -n 's/^\[done\] CSV: \(.*\)$/\1/p' "$OUTDIR/comp_pair.log" | tail -n1)
|
||
|
||
if [[ "$with_apps" == "1" ]]; then
|
||
log "apps (LD-safe)"
|
||
bash scripts/run_apps_with_hakmem.sh | tee "$OUTDIR/apps.log" >/dev/null || true
|
||
fi
|
||
|
||
summary="$OUTDIR/summary.md"
|
||
{
|
||
echo "# HAKMEM vs System vs mimalloc – Suite ($TS)"
|
||
echo ""
|
||
echo "- tiny hot triad CSV: \
|
||
\
|
||
$th_csv"
|
||
echo "- random mixed triad CSV: \
|
||
\
|
||
$rm_csv"
|
||
echo "- comprehensive pair CSV: \
|
||
\
|
||
$cp_csv"
|
||
if [[ "$with_apps" == "1" ]]; then
|
||
echo "- apps log: $OUTDIR/apps.log"
|
||
fi
|
||
echo ""
|
||
echo "Quick peek (head):"
|
||
echo ""; echo '```'; sed -n '1,20p' "$th_csv"; echo '```'
|
||
echo ""; echo '```'; sed -n '1,20p' "$rm_csv"; echo '```'
|
||
echo ""; echo '```'; sed -n '1,30p' "$cp_csv"; echo '```'
|
||
} > "$summary"
|
||
|
||
log "done → $summary"
|
||
|