47 lines
2.3 KiB
Bash
47 lines
2.3 KiB
Bash
|
|
#!/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[@]}
|