Caissa - UCI chess engine, Author: Michał Witanowski
Rating Chess Engines Diary CEDR=3768
Caissa 1.26 - what's new?
This release switches the evaluation to an SCReLU network, improves endgames play and mate finding, and brings a set of search, move-ordering and speed refinements. On the infrastructure side, neural network files are no longer stored in the repository — both build systems now fetch them automatically — and the CUDA trainer got a large speedup.
Playing Strength
STC, 10+0.1, UHO_Lichess_4852_v1.epd:
Elo | 18.34 +- 1.78 (95%)
Conf | 10.0+0.10s Threads=1 Hash=16MB
Games | N: 40020 W: 10682 L: 8572 D: 20766
Penta | [108, 3946, 9913, 5814, 229]
LTC, 60+0.6, UHO_Lichess_4852_v1.epd:
Elo | 10.52 +- 3.21 (95%)
Conf | 60.0+0.60s Threads=1 Hash=128MB
Games | N: 10706 W: 2643 L: 2319 D: 5744
Penta | [7, 1085, 2849, 1401, 11]
VSTC, 1+0.01, UHO_Lichess_4852_v1.epd:
Elo: 15.14 +/- 1.81, nElo: 23.29 +/- 2.78
LOS: 100.00 %, DrawRatio: 42.17 %, PairsRatio: 1.28
Games: 60080, Wins: 18559, Losses: 15943, Draws: 25578, Points: 31348.0 (52.18 %)
Ptnml(0-2): [1128, 6488, 12669, 8150, 1605], WL/DD Ratio: 1.32
STC, 10+0.1, endgames_cdb95105.epd:
Elo: 55.66 +/- 13.81, nElo: 103.85 +/- 25.31
LOS: 100.00 %, DrawRatio: 41.71 %, PairsRatio: 3.22
Games: 724, Wins: 255, Losses: 140, Draws: 329, Points: 419.5 (57.94 %)
Ptnml(0-2): [3, 47, 151, 154, 7], WL/DD Ratio: 1.36
Changes
Evaluation
New SCReLU network — the last layer activation changed from clipped ReLU to squared clipped ReLU. Trained for 383B positions on a 20.5B-position dataset in four LR phases.
Training data extended with 32M self-play positions from endgames_cdb95105.epd opening book resulting in over +50 Elo on that book.
More KBPvK endgame knowledge.
Search
Improved mate search.
Use reduced depth (lmrDepth) in several quiet-move pruning heuristics.
Seed the aspiration-window running average with the first completed iteration's score instead of blending against zero — neutral at STC, but worth +38 Elo in fixed low-node searches.
Extended LmrScale resolution to 1024.
Tweaked the PV score averaging weight.
Fixed a crash when searching an already-mated / mate position.
Simplifications: HasNonPawnMaterial conditions removed from several pruning heuristics, "PV Move" tracking removed from the search stack.
Move Ordering
Retain more quiet/capture history between searches — 50% → 75% (+4.34 Elo STC), then 3/4 → 7/8 (+1.15 Elo, 147K games).
Performance
Dense packed magic bitboards — attack tables shrunk by finding novel dense magics (rooks 800 KB → 660 KB, bishops 41 KB → 37 KB; d1, g1 down to 10 bits and c2, d2, e2 down to 9 bits). Comes with a new findMagics utility.
Prefetch correction history entries alongside the TT probe (+2.40 Elo STC).
Generalized accumulator refresh into an N-stage walk that fills in every dirty node on the path from the closest valid ancestor, so sibling nodes at any level can reuse the intermediate accumulators (+1.24 Elo STC, non-functional).
Optimized Position::IsCapture.
UCI and Tools
eval now also prints the WDL estimate.
eval detailed — new NNUE inspection mode. For a single position it prints raw and post-activation accumulator values with saturated neurons highlighted, activation/saturation statistics, per-output-bucket evaluations and an NNUE-derived per-piece value board. eval detailed start enables collection over a whole search (go/bench), after which eval detailed reports activation-frequency grids, most/least activated and most saturated neurons, dead-neuron counts and output bucket usage; eval detailed stop clears it. Collection is lock-free and costs a single relaxed atomic check when disabled.
New pgnToTrainingData subcommand and a PGN parser: converts PGN files or whole directories into training data, extracting per-move engine scores from comment annotations, filtering to quiet non-check positions, and optionally enriching with Syzygy WDL.
Self-play generator improvements.
Infrastructure
Neural networks are no longer stored in this repository. They are hosted as GitHub Release assets in Witek902/Caissa-Nets, and both CMake and the makefile download the required .pnn automatically — no manual steps for anyone building from source.
CUDA trainer optimizations.

Comments
Post a Comment