diff options
| author | Scott Gasch <[email protected]> | 2026-08-26 00:15:17 -0700 |
|---|---|---|
| committer | Scott Gasch <[email protected]> | 2026-08-26 00:15:17 -0700 |
| commit | e08387ae3e9049b22aa0e56ccfa934c997fa1f87 (patch) | |
| tree | 5700c3208523f422dbc2e87927ddbd1659dd6e1c /src/gamelist.c | |
| parent | 2245550e3c0344bcba093b24dc00f36b462fc940 (diff) | |
Disable qsearch danger-detection (SideCanStandPat) as an experiment
Profiling (pmcstat, sampled) showed SideCanStandPat as the single
hottest leaf function in the engine, ahead of Eval itself -- not from
expensive logic (it's a 3-line signature/lock/lookup), but from sheer
call volume (~95% of the tree is qsearch) combined with a likely-cold
16MB global hash table probe and an uncontended-but-nonzero lock/unlock
pair paid on every call even single-threaded.
Disabling it entirely: real bench nps was flat (~1.53M vs ~1.57M,
within noise -- the earlier "1.2M->1.75M" bench reading was itself an
uncontrolled, noisy single comparison on this shared box, not a real
effect). But ECM (sn 4M) came back at 655/879, the best result of the
whole session (vs 650 baseline) -- suggests the danger-detection
heuristic may have been net-negative for search quality on balance,
forcing exhaustive no-stand-pat search in some positions where
standing pat was actually fine. Speed claim didn't hold up; the
tactical-quality result is a genuine, unexpected positive worth
investigating further.
Not yet validated in self-play -- pending a clean match run.
Co-Authored-By: Claude Sonnet 5 <[email protected]>
Diffstat (limited to 'src/gamelist.c')
0 files changed, 0 insertions, 0 deletions
