Illumina - UCI chess engine
Author: Thomas Mergener (Brazil)
v.3.0:
Proud to announce the release of Illumina 3!
This version represents a huge leap in strength in comparison to version 2.0. In head-to-head play, using a balanced opening book (8moves_v3) and in 1m+1s time control, Illumina 3 is around 360 elo points stronger than its predecessor.
Highlights
NNUE growth and improvements
Illumina 3 has grown its evaluation net from 128 hidden layer neurons to 512, highly increasing its evaluation capabilities.
However, the most important part is not the network growth, but rather a very important fix in its layout -- previous versions of Illumina had a flawed layout that prevented a lot of SIMD optimizations. The new layout allows Illumina 3 to use a way bigger network and still be massively faster in nodes evaluated per second (may not apply to _base binaries).
Besides improving the layout, Illumina now has hand-written SIMD for AVX2 vectorization.
Like previous versions, the new network was trained on a self-play generated dataset comprising more than 500 million data points.
Threading
Although 2.0 shipped with threading support, crashes would still occur and the strength improvement brought by multi-threading was subpar.
In Illumina 3, multi-threading was hugely revisited, with several fixes and intensive testing being made to ensure correctness and strength improvements. No more crashes have occurred in tests ever since, and the engine is showing a good scaling with more threads, with recent tests pointing to a 140 elo gain with 4 threads versus 1.
Eval normalization
In previous versions, scores output by searches and eval commands were unnormalized, meaning that they would display internal units for scores. These internal units, however, were increasingly unmeaningful for the user, since every new network would inflate them very unpredictably.
Illumina 3 now normalizes its scores, so that a 100cp advantage equates to approximately a 50% win chance in self-play. Besides that, the UCI_ShowWDL option is now available, allowing you to view Win/Draw/Loss probabilities alongside centipawns.
The Stockfish WDL model repository was used to fit a WDL model for Illumina, using a small dataset of her LTC self-play games.
Comments
Post a Comment