Files
hakmem/scripts/box/pgo_fast_profile_config.sh

47 lines
2.3 KiB
Bash
Raw Normal View History

#!/bin/bash
# Box: PGO Profile Configuration (FAST minimal)
# Purpose: Define representative workloads for FAST minimal PGO collection.
# Contract:
# - Only deterministic workloads (fixed args/seeds).
# - Must complete quickly per workload (PGO box enforces timeout).
# - Keep baseline toolchain consistent (GCC + LTO; profile-generate/use handled by Makefile).
# Binaries to profile (must exist after `make pgo-fast-profile`)
PGO_BINARIES=(
"./bench_random_mixed_hakmem"
"./bench_tiny_hot_hakmem"
)
# Representative workloads (deterministic).
#
# Notes:
# - Keep these as shell strings: pgo_tiny_profile_box.sh runs them via `bash -lc`.
# - Prefer the same (iter, ws, seed) shape as the canonical Mixed 10-run, but shorter.
#
# Phase 68 Update: Diversify WS and seeds to reduce overfitting.
# - Mixed WS: Added 100, 256, 512, 1024 to existing 400 (5 patterns total).
# - Tiny hot: Added seed variants 60001, 60002 to 60000 (3 seeds total).
PGO_WORKLOADS=(
# Mixed: run via cleanenv to match benchmark presets (prevents PGO mismatch).
# Keep runs small; collector enforces per-workload timeout.
# Expanded WS range: 100, 256, 400, 512, 1024 (was: 128, 400, 800)
"HAKMEM_PROFILE=MIXED_TINYV3_C7_SAFE RUNS=2 ITERS=20000000 WS=100 BENCH_BIN=./bench_random_mixed_hakmem scripts/run_mixed_10_cleanenv.sh"
"HAKMEM_PROFILE=MIXED_TINYV3_C7_SAFE RUNS=2 ITERS=20000000 WS=256 BENCH_BIN=./bench_random_mixed_hakmem scripts/run_mixed_10_cleanenv.sh"
"HAKMEM_PROFILE=MIXED_TINYV3_C7_SAFE RUNS=2 ITERS=20000000 WS=400 BENCH_BIN=./bench_random_mixed_hakmem scripts/run_mixed_10_cleanenv.sh"
"HAKMEM_PROFILE=MIXED_TINYV3_C7_SAFE RUNS=2 ITERS=20000000 WS=512 BENCH_BIN=./bench_random_mixed_hakmem scripts/run_mixed_10_cleanenv.sh"
"HAKMEM_PROFILE=MIXED_TINYV3_C7_SAFE RUNS=2 ITERS=20000000 WS=1024 BENCH_BIN=./bench_random_mixed_hakmem scripts/run_mixed_10_cleanenv.sh"
# Tiny hot: C0-ish (16B) and C3-ish (64B) patterns with seed diversification.
# Extended seed set: 60000, 60001, 60002 (was: 60000 only)
"./bench_tiny_hot_hakmem 16 100 60000"
"./bench_tiny_hot_hakmem 16 100 60001"
"./bench_tiny_hot_hakmem 16 100 60002"
"./bench_tiny_hot_hakmem 64 100 60000"
"./bench_tiny_hot_hakmem 64 100 60001"
"./bench_tiny_hot_hakmem 64 100 60002"
)
# Configuration summary
PGO_WORKLOAD_COUNT=${#PGO_WORKLOADS[@]}
PGO_BINARY_COUNT=${#PGO_BINARIES[@]}