Skip to content

Add internal iterative reduction for nodes without TT move - #1133

Open
Zibri wants to merge 2 commits into
codedeliveryservice:mainfrom
Zibri:main
Open

Zibri wants to merge 2 commits into
codedeliveryservice:mainfrom
Zibri:main

Conversation

@Zibri

@Zibri Zibri commented Sep 29, 2026

Copy link
Copy Markdown

Reduce depth by one at non-PV nodes that have no TT move.

A node reached with no transposition-table entry has nothing to order moves by
and nothing to cut on, so searching it one ply shallower still finds a move
sooner and shrinks the subtree. Placed immediately before the // ProbCut
block, so the depth tested is the pre-extension depth.

Root::PV is true, so this condition already excludes the root and does not
need a separate root check.

baseline this patch delta
bench 64 1 12 nodes 2901260 2226337 -23.3%
bench 64 1 12 NPS ~1,075,000 ~1,120,000 +4.3%

Interleaved A/B, n=9: +4.28% (single-run spread ±6-8%). Two further
independent n=7 runs: +4.9%, +5.1%.

When a TT cutoff ends a node whose parent explored few quiet moves,
apply a negative continuation-history bonus to the piece that moved
on the previous ply. Without this, a shallow parent that failed low
leaves its last mover with no ordering penalty for a shuffle that the
parent never got around to examining.
@Zibri

Zibri commented Sep 29, 2026

Copy link
Copy Markdown
Author

Adds a continuation-history penalty applied at a TT cutoff when the
parent node explored fewer than 5 moves and the previous move was not
a capture. The piece that moved is penalised, discouraging quiet
shuffles that a shallow parent never had the chance to refute.

  • bench 64 1 12: 2226337 -> 1894088 nodes (-14.9% vs IIR)
  • time-to-depth 2.145s -> 1.891s (+13.5% vs IIR, +48.6% vs
    unpatched ref), interleaved median of 7
  • node reduction holds with depth: -42.9% (d13), -44.6% (d15)
  • NPS flat (within the +/-10-14% host noise band), as expected: this
    cuts nodes to depth, not nodes/second

@Zibri

Zibri commented Sep 29, 2026 •

Copy link
Copy Markdown
Author

The first commit does not have any adverse effects, the second one might. But I don't have the hardware to do all tests.
I hope it helps.

@0wwafa

0wwafa commented Sep 30, 2026

Copy link
Copy Markdown

Interesting:

binary bench 64 1 12 vs ref
reckless-ref 2,901,260 --
reckless-prevsqonly 2,534,019 -12.7% <- prevSq ALONE
reckless-iir 2,226,337 -23.3%
reckless-prevsq 1,894,088 -34.7% <- IIR + prevSq

@87flowers

Copy link
Copy Markdown
Contributor

I note that IIR was previously simplified out of Reckless in #716 in favor of an LMR reduction.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants