New version chess engine: Renegade 1.0.0
Rating CEDR=3002
Renegade is a chess engine written in C++ using Visual Studio 2019. It values readability and simplicity, and uses the UCI protocol to communicate, making it easy to connect it to chess frontends. Under construction since October 7, 2022 and released publicly on January 15, 2023.
The project can be compiled using Visual Studio 2019 with C++20 features enabled. The engine makes heavy use of `popcnt` and `lzcnt` instructions, thus only processors from 2013 or so are supported, but the calls to these instructions are wrapped in a custom function, and replacing them with something more compatible is relatively straightforward. Currently only Windows binaries are compiled, but in the future I would like to make them for Linux as well.
v.1.0.0:
After 15 months of development, I'm happy to announce version 1.0.0 of Renegade!
This release introduces NNUE evaluation, resulting in a large jump in playing strength. The medium-sized network was trained purely on self-play, starting with a custom king tropism-only evaluation, hopefully resulting in an interesting style of play. In total, close to a billion positions were generated during training.
A number of search improvements were added as well, alongside some much-needed bug fixes.
Finally, I would like to take this opportunity to thank everyone who helped me during the development of Renegade, providing feedback, and answering the countless questions I had! I've learned so much during the last year, and it improved my programming skills tremendously.
Changelog
Implemented a significantly stronger evaluation using NNUE
Network arch is 768->512x2->1 (perspective net) with a SCReLU activation
Trained on 640 million positions of self-play using bullet
Started learning from a king tropism only evaluation
Added win-draw-loss model using Stockfish's WDL tool
Normalized evaluation scores, 100 cp = 50% chance of winning
Search improvements
Added singular extensions
Added continuation history for ply-1, ply-2 and ply-4
Implemented threat history
Implemented node time management
Reductions for LMR are adjusted depending on history score
Doing LMR in check
History scores persist between searches
No check extensions on root
Changes to improving heuristic
Breaking out of the moves loop during LMP and futility pruning
Prefetching transposition table entries
Insta-move when only having one legal move
Updated pruning guards and parameters in a lot of places
Adjusted time management parameters
Added tools for datagen (position generation with self-play for NNUE data)
Separate input and search threads
Removed support for reading opening books
Bugfixes
Fixed often incorrect SEE score calculations
Fixed a bug where friendly pawns can be taken via en passant after null moves
Fixed incorrect history bonuses/penalties
Rating CEDR progres - Renegade
Pl | Engine | Rating | Score | Games | % |
1189 | Renegade 0.12.0 | 3002.6 | 73.50 | 212 | 34.67 |
1314 | Renegade 0.11.0 | 2817.7 | 93.00 | 241 | 38.59 |
1465 | Renegade 0.10.0 | 2603.3 | 28.00 | 123 | 22.76 |
1663 | Renegade 0.7.0 | 2319.8 | 19.50 | 148 | 13.18 |
1672 | Renegade 0.8.1 | 2311.8 | 16.50 | 126 | 13.10 |
1712 | Renegade 0.9.0 | 2245.3 | 18.50 | 138 | 13.41 |
github:https://github.com/pkrisz99/Renegade/releases/tag/v0.12.0
Comments
Post a Comment