Skip to content

Pygin v59

Choose a tag to compare

@IchNukeDichWeg IchNukeDichWeg released this 10 Aug 00:02
· 317 commits to main since this release

v59 -- lazy NNUE evaluation, and the first release measured as exactly the config that ships. The engine now skips the net's forward pass wherever a cheap bound already decides the node, and spends the saved time searching. One toggle, isolated for the first time, same net on both sides of the A/B.

Elo   | +13.84 +/- 6.4 (pooled 51.99%; stopped early -- magnitude bound-biased)
SPRT  | GSPRT[0,4] LLR +2.950 vs +/-2.944 -> ACCEPT H1  (stopped early)
Games | N: 4537  W: 1292  L: 1107  D: 2138
Penta | [69, 509, 975, 595, 116]   2,264 pairs, pair ratio 1.23
Conf  | TIMED 50+0.50, x86 EPYC 7443, Threads=1, Hash=192MB
Base  | vs Old Engine/58, SUBSET_SEED 58, corrected (post-fc82cb7) harness
Bench | 1,214,534 nodes (was 1,074,820 -- lazy trades net calls for nodes)

Search

  • FI-106, lazy NNUE eval (LAZY_NNUE = True): at nodes where a cheap bound
    already brackets the decision, the net is not consulted at all. On the d11
    bench that is +13% nodes for +2.2% NPS; on the clock the trade pays.

Why this one is different

  • Every earlier number for lazy priced the whole NNUE-plus-lazy package against
    HCE baselines. This A/B put the same v4 net on both sides with the toggle
    as the only difference -- the first isolated measurement of the mechanism.
  • The candidate was byte-equivalent to the shipped engine plus this flip.
    v58's own +19.11 turned out to have been measured with lazy ON while the
    release ran it OFF (found 2026-08-09); v59 closes that gap by shipping
    exactly what was measured. That rule is policy now.

Testing

  • First release measured entirely on the corrected harness: fc82cb7 fixed a
    bug where all three match runners claimed threefold draws that had merely
    become available rather than actually occurred (419 of 2,000 games in one
    A/B, zero real repetitions among them). Ladder re-pinned for the lazy
    config; opening-sample rotation advanced to the v59 era.

Known limits

  • The Elo magnitude is a bound-stopped estimate; a fixed-budget restatement is
    owed if the number is ever quoted rather than the verdict.
  • Measured on x86 only. arm64 is still owed for v58's net arm as well.

Full Changelog: v58...v59