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
fix(ci3): bind bench memory to its NUMA node to cut variance
Benches pin CPUs (docker --cpuset-cpus / taskset) but not memory. On the
dedicated bench box (m6a.32xlarge, 4 NUMA nodes of 16 cores) the MSM/commitment
phases of proving are memory-bandwidth-bound, so when their buffers land on a
remote node they run ~50% slower while the compute-bound phases (trace gen,
sumcheck) stay flat — the bimodal flip seen in bench history (e.g. avm_bulk
wire commitments 2.1s vs 3.2s).
Bind each bench's memory to its CPUs' NUMA node: --cpuset-mems on the docker
path, numactl --membind on the taskset path (new cpu_numa_nodes helper maps a
CPU list to node ids). Also disable automatic NUMA balancing during the bench
run so the kernel doesn't migrate pages mid-measurement.
0 commit comments