Bread 2.0.0
Thanks to a new neural network and many search improvements, Bread 2.0.0 is much stronger than version 1.6.0!
| Short time control (8 + 0.08 s) | +382 Elo |
| Long time control (40 + 0.4 s) | +340 Elo |
NNUE
Bread's neural network has been mostly rewritten. It was retrained from zero knowledge on 40 million games of self play, making Bread a "zero" engine.
More precisely, improvements include:
- a modified architecture: 768x2 -> 1024x2 -> 1, trained on ~5 billion positions with 10 self play training iterations (~369 elo)
- screlu activation for the feature transformer (~21 elo)
- output buckets (~5 elo)
- direct accumulator calculation (~30 elo)
- a sped up L1 inference (~8 elo)
Main search:
- use tt_capture for nmp reductions (~7 elo)
- add continuation history pruning (~15 elo)
- two SPSA tunes (~48 elo)
General improvements:
- add support for the genfens command
- fixed makefile executable extension for linux
- improve threefold detection (~22 elo)
Improved Nonsense option
Bread features a uci option called Nonsense, which has been improved in this release. If the option is active, bread will:
- play the bongcloud opening
- print lyrics from "never gonna give you up" during search
- take all of the opponent's pieces and promote all pawns to knights and bishops
Progression tests results
STC: 8 + 0.08 s
Results of bread_engine_2.0.0 vs bread_engine_1.6.0 (8+0.08, 1t, 16MB, UHO_2024_8mvs_big_+115_+134.pgn):
Elo: 382.18 +/- 19.10, nElo: 618.97 +/- 15.23
LOS: 100.00 %, DrawRatio: 7.60 %, PairsRatio: 461.00
Games: 2000, Wins: 1666, Losses: 65, Draws: 269, Points: 1800.5 (90.03 %)
Ptnml(0-2): [0, 2, 76, 241, 681], WL/DD Ratio: 4.85
LTC: 40 + 0.4 s
Results of bread_engine_2.0.0 vs bread_engine_1.6.0 (40+0.4, 1t, 128MB, UHO_2024_8mvs_big_+115_+134.pgn):
Elo: 339.63 +/- 19.19, nElo: 552.46 +/- 17.58
LOS: 100.00 %, DrawRatio: 8.67 %, PairsRatio: 227.33
Games: 1500, Wins: 1188, Losses: 60, Draws: 252, Points: 1314.0 (87.60 %)
Ptnml(0-2): [0, 3, 65, 233, 449], WL/DD Ratio: 7.12