Since you’re here...

We hope you will consider supporting us today. We need your support to continue to exist, because good entries are more and more work time. Every reader contribution, however big or small, is so valuable. Support "Chess Engines Diary" even a small amount– and it only takes a minute. Thank you.
============================== My email: jotes@go2.pl

Caissa 1.26 - new version strong chess engine


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.

Caissa engine's best results in our tests:





Comments