Skip to content

Pygin v65

Latest

Choose a tag to compare

@IchNukeDichWeg IchNukeDichWeg released this 14 Oct 18:39
· 4 commits to main since this release

v65 -- a new evaluation network, +61.91 Elo on a fixed budget. The net is replaced; the search and the interface are v64's. It was screened at 10+0.1 on arm64 and confirmed at the shipping time control on x86 over a full budget with no early stop, so this is the number the ledger advances on.

Elo   | +61.91 +/- 4.3 vs v64 (FIXED budget, no early stop)
SPRT  | none on the confirm; the 10+0.1 screen was [0,4] normalized,
      | LLR +7.486 -> ACCEPT H1 at the 1,500-pair minimum (+60.46 +/- 8.5)
Games | N: 9976   two tranches on one box, same instrument, pooled
Penta | [65, 722, 1975, 1841, 385]   4988 pairs, pair ratio 2.83, norm Elo +100.02
Conf  | TIMED 50+0.50, x86 (2x EPYC 7443), workers 48, Threads=1, both sides
Base  | vs v64 on the same engine core; ledger ~+360 -> ~+422
Bench | 672,025 nodes (was 785,901)

What changed

  • A new evaluation network. Same architecture and size as the one it replaces; only the weights differ, so nothing about the search or the UCI interface changes.
  • Correctness fixes carried since v64, none moving the bench signature: the history bonus is clamped so deep iterations cannot overflow; no shift past the h8 square in the cuckoo table; an absurd time budget no longer wraps the deadline into the past; a Contempt change clears the TT so stalemates rescore, applied between searches rather than mid-search; MultiPV bestmove comes from the last completed depth; changing SyzygyPath re-detects the table piece count.
  • Speed on arm64: a real 4-row NEON dot kernel for the net, 4.5% fewer search cycles, node-identical. The binary is again a profile-guided build.

How it was measured

  • The confirm ran the full 10,000-game budget at 50+0.5. The first tranche was cut at 394 pairs when the box's session manager ended it; the second resumed at the next opening and pooled through the same state file, for 9,976 games in all.
  • The screen at 10+0.1 read +60.46 and the confirm at 50+0.5 read +61.91, so the gain held at the longer control.
  • Old Engine/65 is node-exact against the live engine in a fresh process at d10/d12/d14.

Known limits

  • The external placement (~3164 on the CCRL Blitz scale) was measured with v64. v65 has not been placed, and a self-play gain does not carry one to one onto another engine's scale.
  • The speed and mate-finding charts in the README still end at v64; they are re-swept as a whole on an idle machine, never appended to.
  • The confirm is x86 and the screen arm64; each architecture has one of the two measurements, not both.

Full Changelog: v64...v65