Releases: Nonlinear2/Bread-Engine
Bread Engine 1.1.0
Bread Engine 1.1.0 is around 130 elo stronger than version 1.0.0 in short time controls, and 65 elo stronger in long time controls.
Additions:
- Mate scores
- Internal iterative reductions
- uci information for tablebase moves
- history heuristic
- razoring
- static exchange evaluation pruning
- and... there is now a nonsense option, which makes Bread bongcloud occasionally, underpromote to bishops and knights as well as print lyrics from "never gonna give you up" during search.
Improvements/bug fixes:
- switched from using float to integer scores
- improved reverse futility pruning
- removed late move reduction for killer moves
- fixed WDL probing bug
Results of bread_engine_1.1.0 vs bread_engine_1.0.0 (10+0.1, 1t, MB, UHO_2024_8mvs_big_+115_+134.pgn):
Elo: 132.04 +/- 31.13, nElo: 182.16 +/- 38.93
LOS: 100.00 %, DrawRatio: 30.07 %, PairsRatio: 5.69
Games: 306, Wins: 167, Losses: 56, Draws: 83, Points: 208.5 (68.14 %)
Ptnml(0-2): [2, 14, 46, 53, 38]
LLR: 2.95 (-2.94, 2.94) [0.00, 10.00]
Results of bread_engine_1.1.0 vs bread_engine_1.0.0 (40+0.5, 1t, MB, UHO_2024_8mvs_big_+115_+134.pgn):
Elo: 64.42 +/- 23.05, nElo: 89.02 +/- 31.08
LOS: 100.00 %, DrawRatio: 42.92 %, PairsRatio: 2.51
Games: 480, Wins: 208, Losses: 120, Draws: 152, Points: 284.0 (59.17 %)
Ptnml(0-2): [9, 30, 103, 60, 38]
LLR: 2.99 (-2.94, 2.94) [0.00, 10.00]
Bread Engine 1.0.0
Bread Engine has been updated to version 1.0.0!
The patch version numbers were starting to get large... From now on, I will try to follow semantic versioning.
Bread engine 1.0.0 features null move pruning which makes it around 25 elo stronger than version 0.0.10 in short time controls, and around 55 elo stronger in long time controls.
STC: 10 + 0.1 s
Score of bread_engine_1.0.0 vs bread_engine_0.0.10: 424 - 338 - 349 [0.539] 1111
Elo difference: 26.9 +/- 16.9, LOS: 99.9 %, DrawRatio: 31.4 %
SPRT: llr 2.95 (100.1%), lbound -2.94, ubound 2.94 - H1 was accepted
LTC: 40 + 0.5 s
Score of bread_engine_1.0.0 vs bread_engine_0.0.10: 231 - 146 - 147 [0.581] 524
Elo difference: 56.9 +/- 25.4, LOS: 100.0 %, DrawRatio: 28.1 %
SPRT: llr 3.14 (106.5%), lbound -2.94, ubound 2.94 - H1 was accepted
Here are the results from an STC tournament featuring all the engine versions:
Version | Elo | +/- | Games | Score | Draw |
---|---|---|---|---|---|
1.0.0 | 199 | 38 | 330 | 75.9% | 19.1% |
0.0.10 | 155 | 37 | 330 | 70.9% | 18.2% |
0.0.9 | 94 | 35 | 330 | 63.2% | 19.1% |
0.0.8 | 61 | 34 | 330 | 58.6% | 19.1% |
0.0.7 | 0 | 33 | 330 | 50.0% | 20.6% |
0.0.6 | -16 | 34 | 330 | 47.7% | 17.3% |
0.0.5 | -62 | 34 | 330 | 41.2% | 20.6% |
0.0.4 | -68 | 34 | 330 | 40.3% | 20.6% |
0.0.3 | -112 | 36 | 330 | 34.4% | 16.1% |
0.0.2 | -267 | 45 | 330 | 17.7% | 11.2% |
Bread Engine 0.0.10
Added support for the 50 move rule, implemented late move reductions on the root node (~15 elo), disabled some transpositions cutoffs in the principal variation (~15 elo) and added reverse futility pruning (~35 elo). Bread Engine 0.0.10 is around 65 elo stronger than version 0.0.9.
Score of bread_engine_0.0.10 vs bread_engine_0.0.9: 198 - 118 - 117 [0.592] 433
... bread_engine_0.0.10 playing White: 135 - 33 - 48 [0.736] 216
... bread_engine_0.0.10 playing Black: 63 - 85 - 69 [0.449] 217
... White vs Black: 220 - 96 - 117 [0.643] 433
Elo difference: 64.9 +/- 28.3, LOS: 100.0 %, DrawRatio: 27.0 %
SPRT: llr 2.95 (100.3%), lbound -2.94, ubound 2.94 - H1 was accepted
Bread Engine 0.0.9
Updated readme, tweaked late move reductions, refactored some code and added check extensions. Bread Engine 0.0.9 is around 45 elo stronger than version 0.0.8.
Score of bread_engine_0.0.9 vs bread_engine_0.0.8: 311 - 223 - 164 [0.563] 698
... bread_engine_0.0.9 playing White: 203 - 79 - 67 [0.678] 349
... bread_engine_0.0.9 playing Black: 108 - 144 - 97 [0.448] 349
... White vs Black: 347 - 187 - 164 [0.615] 698
Elo difference: 44.0 +/- 22.7, LOS: 100.0 %, DrawRatio: 23.5 %
SPRT: llr 2.95 (100.2%), lbound -2.94, ubound 2.94 - H1 was accepted
Bread Engine 0.0.8
Bread Engine 0.0.8 has cleaner code for move generation, backwards compatible code removed, a better transposition table replacement scheme and improved uci support. Finally, a bug in search termination has been fixed. Bread Engine 0.0.8 is around 60 elo stronger than version 0.0.7.
Score of bread_engine_0.0.8 vs bread_engine_0.0.7: 232 - 145 - 102 [0.591] 479
... bread_engine_0.0.8 playing White: 145 - 54 - 41 [0.690] 240
... bread_engine_0.0.8 playing Black: 87 - 91 - 61 [0.492] 239
... White vs Black: 236 - 141 - 102 [0.599] 479
Elo difference: 63.8 +/- 28.0, LOS: 100.0 %, DrawRatio: 21.3 %
SPRT: llr 2.96 (100.5%), lbound -2.94, ubound 2.94 - H1 was accepted
Bread Engine 0.0.7
Bread Engine 0.0.7 has more compact transposition table entries, better replacement scheme, quiescence search moves are now stored. Move ordering has also been refactored. Bread engine 0.0.7 is around 35 elo stronger than version 0.0.6.
Score of bread_engine_0.0.7 vs bread_engine_0.0.6: 418 - 323 - 185 [0.551] 926
... bread_engine_0.0.7 playing White: 258 - 123 - 82 [0.646] 463
... bread_engine_0.0.7 playing Black: 160 - 200 - 103 [0.457] 463
... White vs Black: 458 - 283 - 185 [0.594] 926
Elo difference: 35.8 +/- 20.1, LOS: 100.0 %, DrawRatio: 20.0 %
SPRT: llr 2.95 (100.1%), lbound -2.94, ubound 2.94 - H1 was accepted
Bread Engine 0.0.6
Bread Engine 0.0.6 has better optimized matrix multiplication for NNUE inference. Version 0.0.6 is around 20 elo stronger than version 0.0.5.
Score of bread_engine_0.0.6 vs bread_engine_0.0.5: 717 - 611 - 339 [0.532] 1667
... bread_engine_0.0.6 playing White: 450 - 224 - 160 [0.635] 834
... bread_engine_0.0.6 playing Black: 267 - 387 - 179 [0.428] 833
... White vs Black: 837 - 491 - 339 [0.604] 1667
Elo difference: 22.1 +/- 14.9, LOS: 99.8 %, DrawRatio: 20.3 %
SPRT: llr 2.97 (100.7%), lbound -2.94, ubound 2.94 - H1 was accepted
Bread Engine 0.0.5
Bread Engine 0.0.5 has cleaner code, and a bug concerning the tablebase probe has been fixed. Bread engine now supports the Clang 17, and GCC 13 compilers. Version 0.0.5 is around 30 elo stronger than version 0.0.4.
Score of bread_engine_0.0.5 vs bread_engine_0.0.4: 377 - 287 - 212 [0.551] 876
... bread_engine_0.0.5 playing White: 217 - 108 - 113 [0.624] 438
... bread_engine_0.0.5 playing Black: 160 - 179 - 99 [0.478] 438
... White vs Black: 396 - 268 - 212 [0.573] 876
Elo difference: 35.8 +/- 20.1, LOS: 100.0 %, DrawRatio: 24.2 %
SPRT: llr 2.95 (100.2%), lbound -2.94, ubound 2.94 - H1 was accepted
Bread Engine 0.0.4
Version 0.0.4 has an improved neural network, as well as a few performance improvements. It is around 30 elo stronger than version 0.0.3.
Score of bread_engine_0.0.4 vs bread_engine_0.0.3: 459 - 362 - 203 [0.547] 1024
... bread_engine_0.0.4 playing White: 293 - 130 - 89 [0.659] 512
... bread_engine_0.0.4 playing Black: 166 - 232 - 114 [0.436] 512
... White vs Black: 525 - 296 - 203 [0.612] 1024
Elo difference: 33.0 +/- 19.1, LOS: 100.0 %, DrawRatio: 19.8 %
SPRT: llr 2.96 (100.6%), lbound -2.94, ubound 2.94 - H1 was accepted
Bread Engine 0.0.3
Fixed internal bugs. Version 0.0.3 is around 150 elo stronger than version 0.0.2.
Score of bread_engine_0.0.2 vs bread_engine_0.0.3: 52 - 165 - 33 [0.274]
... bread_engine_0.0.2 playing White: 28 - 76 - 21 [0.308] 125
... bread_engine_0.0.2 playing Black: 24 - 89 - 12 [0.240] 125
... White vs Black: 117 - 100 - 33 [0.534] 250
Elo difference: -169.3 +/- 44.4, LOS: 0.0 %, DrawRatio: 13.2 %
250 of 250 games finished.