You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(ci3): run uploadable benchmarks on a dedicated on-demand instance
Spot diversification means build instances land on variable EC2 types, so the
in-build benchmark phase produced hardware-dependent numbers that tripped the
105% regression alert. Move the uploadable benchmark series onto a dedicated,
fixed, on-demand m6a.16xlarge for stable single-run results.
- bootstrap.sh: drop the inline `bench` from ci-full/ci-full-no-test-cache. In
build_and_test (full builds only), once the build completes: on uploadable
runs (SHOULD_UPLOAD_BENCHMARKS=1) launch the dedicated box via `./ci.sh bench`
as a backgrounded, colored, denoised job (waited on, non-fatally, before
return); otherwise append bench_cmds to the test stream so benches run as
ordinary tests under contention — a breakage check, no upload. New `ci-bench`
mode = cache-hit `make full` + `bench` (no test engine), uploading the
existing bench-<treehash> cache key.
- ci.sh: new `bench` launcher — AWS_INSTANCE=m6a.16xlarge NO_SPOT=1 pins a fixed
on-demand type (CPUS unneeded; AWS_INSTANCE bypasses pool sizing).
- bench_engine: drop the 8-core OS isolation / HT-disable / pinning. The box is
dedicated, so benches run against the full machine honouring per-bench CPUS via
the strict scheduler (which already defaults to nproc/2 without BENCH_CPU_COUNT).
- ci3_labels_to_env.sh: scope SHOULD_UPLOAD_BENCHMARKS to merge-queue->next (it
now also gates the dedicated box). bootstrap_ec2: pass it through to the instance.
Results reach the GA upload step unchanged via the bench-<treehash> cache key
(ci3_success.sh `gh-bench`). Requires the ci3-build-instance-role launch perms
(separate iac PR) before enabling.
Expect a one-time baseline shift in bench/next (different machine + no isolation).
0 commit comments