Illumina - UCI chess engine
Author: Thomas Mergener (Brazil)
v.2.0:
Highlights
Besides the jump in playing strength -- this version was measured to be about 400 elo points stronger than 1.0, with an estimated CCRL blitz elo of ~3200 --, Illumina 2.0 introduces several new features.
Search Tracing
In an effort to better understand the search tree produced by the Alpha-Beta pruning algorithm, Illumina is now capable of tracing all nodes it searches during its search and save them to a SQLite database efficiently.
In order to do so, simply add the trace keyword after a go command, and all nodes will be saved to a file. The desired file path is managed by the UCI option TraceFile. Note that multi-threaded tracing is not yet supported.
My main idea when writing this feature was to futurely write a software capable of visualizing each searched node. Hopefully, this can spark inspiration for features that could improve Illumina (or any other engine) or even improve search debugging experience.
Multi-Threaded Searches
Illumina now supports running searches with multiple threads via the Threads option.
In recent tests, 4 threads Illumina played approximately 70 elo points stronger than single threaded Illumina.
Bench
Illumina now supports 'benching' via the bench command or by simply invoking its executable via the command line with the bench argument.
Evaluation Random Margin
Illumina now offers the option to add random noise to it's static evaluation via the EvalRandomMargin option. Logically, this option defaults to 0.
Changelog
Search Improvements
Singular Extensions
SPSA tune on search parameters
Better pruning conditions
History rewritten
Better low depth move ordering heuristics
Discovered attack detection in SEE pruning
Check history
Adjusted the way search bounds were being handled in some specific scenarios
Reworked Futility Pruning
Eval Improvements
Improved NN architecture
From 768->(96x2)->1 CReLU to 768->(128x2)->1 SCReLU
Two higher generations dataset for NN training
NNUE accumulator stack
Other improvements
Static evaluation cache in TT
Better time management
New features
Multi-threading
Search tracing
EvalRandomMargin option
Fixes
Fixed FRC support.
Fixed several illegal moves from move generation
Fixed a bug where illegal moves would get played on heavy time constraints
Fixed undefined behavior caused by invalid reads at move history
Comments
Post a Comment