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
eval: suppress the depth-0 heuristic batch-axis fallback under a batched objective
The batched evaluator's candidate_axes() falls back, at depth 0 on a node
carrying no accepted optimizer annotation, to batching the largest contracted
batchable index (batch_axis()). That legacy single-axis convenience predates
the per-node batch-axis annotations the batched (peak) objectives now emit.
Under such an objective the annotations are authoritative: an un-annotated
node means "do not batch here", so the fallback wrongly batches nodes the
peak-threshold objective declined -- measured on aux-only water-8 as 30 of 37
aux triggers, +34% product ops, and a small accuracy perturbation from the
per-batch screening relaxation.
Add BatchPolicy::suppress_heuristic_fallback, read only by the runtime
evaluator (make_evaluator -> make_batched_custom_evaluator); default false
preserves the legacy behavior byte-for-byte. Also add a behavior-neutral
BatchAxes trace line (depth / picked axis+kind / annotation / result indices),
gated on log::printing(), to diagnose which batch axes are annotation- vs
heuristic-driven.
0 commit comments