Grail - UCI chess engine
Author: Jรธrgen Hanssen
After working on it for a while, I feel my hobby chess engine is finally ready for v1.0.0. Not cutting edge, but plays a solid game.
Grail uses modern search techniques and evaluates positions using a simple NNUE trained on 500 million positions from self-play.
Development continues in my spare time, and I plan to release updates with several missing features and improvements like threading, tablebase support, and pondering. But don't worry! Grail supports all standard UCI time controls and analysis modes, so it works seamlessly with your favorite GUI for matches and analysis.
Grail 2.0.0 what's new?
Time for a new version with some improvements I have made to Grail! The NNUE is now a fully self-taught network, and I thought that warranted a major bump ๐ So here is 2.0.0:
New Features
Self-taught Evaluation
The new network has been trained from scratch over 6 generations of iterative self-play, totalling 67 million games. Previous versions used the old HCE as a bootstrap, but 2.0.0 uses knowledge derived from game outcomes.
Syzygy Endgame Tablebases
Grail can now load Syzygy tablebases for a slight increase in strength. Configurable with the new SyzygyPath and SyzygyProbeDepth UCI options.
go nodes
Added support for the go nodes UCI command.
Search Improvements
- History-scaled late move reductions (with continuation history)
- Capture history reductions
- Anti-reduction for PV moves replacing the old no-reduction guard
- Quadratic margin on singular extensions to prevent over-extension in long check chains.
NNUE Improvements
- Dual-perspective accumulator replacing the single STM input bit.
- Dead-neuron pruning in the linear layers for an NPS uplift.
- Per-neuron quantization scales in the accumulator instead of a single global scale.
Misc
- HCE has been yeeted.
- The
NNUE UCI toggle is gone with it. - General cleanup and module restructuring.
Elo gain over 1.1.0 (1 thread without endgame tablebases)
STC (10+0.1): +97.84 ± 4.66 Elo (10k games)
LTC (60+0.6): +75.03 ± 7.15 Elo (3k games)
VLTC (180+1.8): +80.27 ± 11.71 Elo (1k games)

Comments
Post a Comment