Releases: PGG106/Alexandria
Alexandria 7.1.0
LTC Progression test
Elo | 24.85 +- 3.17 (95%)
Conf | 60.0+0.60s Threads=1 Hash=64MB
Games | N: 5000 W: 518 L: 161 D: 4321
Penta | [0, 104, 1946, 439, 11]
Progression test was run on the 8moves_v3.epd
book.
Search Changes
- Improved RFP
- Improved NMP
- Introduced Pawn, non-Pawn, and continuation Corrhist
- Introduced Complexity based LMR scaling
- Introduced Root History
- Improved 3fold repetition detection
- Improved SEE mode ordering
Eval Changes
- The net shipped with this release has a new arch, the L1 size was increased to 2048, resulting in a final arch of
(768->2048)x2->1x8
. Horizontal mirroring was introduced, improving the net strength without increasing its size. - Weights are now clipped at +- 1.414 allowing for better quantization.
- The eval code has been reworked and the eval update is now fully lazy, resulting in improved speed (given the same net size)
- Introduced an evaluation grain of 16.
TM Changes
- Introduced Eval stability TM.
Misc stuff
- The engine has a better and more efficient handling of input and output buffers.
- The TT and its buckets were aligned resulting in greater speed.
- The engine will now print a final info line with the best up to date info possible when stopping the search.
New Contributors
A special thanks to every new contributor that joined in this release cycle, it's safe to say this binary wouldn't be out as it is now without their help: Thanks to Cie for embarking on an Alex corrhist journey, thanks to Shawn for several search improvements and thanks to Joe for being my favourite (ex) SF server discord member (and for some very nifty cleanups).
Me thanking more people
As usual a big thank you to anyone who contributed to Alex, the already mentioned new faces and any other long time contributor or co-author of mine and to any and all SWE members.
A special thanks to all the people that supplied Alex with some very important hardware for patch testing, the engine wouldn't be here without that.
As per tradition the Alex project would like to officially state we don't like Viren.
The future of the engine
The name picked for this release is 7.1, it's not a round number because this is most likely not the final version of the engine, while i've grown old and a bit tired of chasing Elo there's some fun stuff we never got to explore in Alex out of self-imposed limits. Expect in the (not so near) future a version with king buckets ready to fill y'all hard drives.
Full Changelog: v7.0.0...v7.1.0
Alexandria 7.0.0
LTC Progression test
Elo | 26.46 +- 3.35 (95%)
Conf | 60.0+0.60s Threads=1 Hash=64MB
Games | N: 5000 W: 561 L: 181 D: 4258
Penta | [0, 114, 1915, 448, 23]
Progression test was run on the 8moves_v3.epd
book.
Search Changes
- A new fully staged movepicker.
- Improved lmrDepth formula.
- Improved SEE accuracy.
- Fixed a bug that would render TT moves illegal when unpacking them.
- Introduced upcoming draw detection via cuckoo tables.
- Faster makemove.
- Faster evaluation achieved by removing one accumulator copy and saving the eval in the TT during QS.
- General simplifications and improvements.
NNUE Changes
- The net shipped with this release has a new arch, the L1 size was increased to 1536 and 8 output buckets were added,
resulting in a final arch of(768->1536)x2->1x8
- Several hyperparameters improvements in the net training
Me thanking people
A big thank you as always to anyone who contributed to Alex, either with hw or patches.
The Alex project would like to officially state we don't like Viren.
Alexandria 6.1.0
LTC Progression test
Elo | 26.11 +- 4.72 (95%)
Conf | 60.0+0.60s Threads=1 Hash=64MB
Games | N: 3000 W: 335 L: 110 D: 2555
Penta | [1, 77, 1131, 278, 13]
Progression test was run on the 8moves_v3.epd
book.
Alexandria 6.0.0
LTC Progression test
Elo | 20.81 +- 4.09 (95%)
Conf | 60.0+0.60s Threads=1 Hash=64MB
Games | N: 3076 W: 267 L: 83 D: 2726
Penta | [0, 57, 1244, 233, 4]
Progression test was run on the 8moves-noob.epd
book.
Obligatory thanks to Swe and to all Alex contributors (not Viren), luv u guys.
Alexandria 5.1.0
LTC Progression test
Elo | 28.55 +- 6.11 (95%)
Conf | 40.0+0.40s Threads=1 Hash=64MB
Games | N: 6148 W: 1771 L: 1267 D: 3110
Penta | [22, 501, 1546, 961, 44]
Progression test was run on the 8moves-noob.epd
book.
What's Changed
- improved search
- Improved eval
- Improved TM
As always a big thank you to the Swehosting gang and everyone that contributed to Alex.
Also Bullet is very cool:tm:
Alexandria 5.0.0
It's Alive-er!
LTC Progression test
ELO | 68.87 +- 6.18 (95%)
CONF | 40.0+0.40s Threads=1 Hash=64MB
GAMES | N: 3000 W: 692 L: 105 D: 2203
Progression test was run on the 8moves-noob.epd
book.
What's Changed
- improved search
- Improved NNUE arch and data
NNUE changes
- Alexandria's net arch changed from 768->512x2->1 to 768->1024x2->1.
- More leela data, currently totaling around 3B fens from the jan2023 binpack.
As always a big thank you to the Swehosting gang and everyone that contributed to Alex.
Alexandria 4.0.0
It's Alive!
LTC Progression test
ELO | 183.77 +- 7.71 (95%)
CONF | 60.0+0.60s Threads=1 Hash=16MB
GAMES | N: 4016 W: 2038 L: 92 D: 1886
Progression test was run on the 8moves-noob.epd
book.
What's Changed
- TM is now more sophisticated and couples hard/soft bounds with a scaling based on nodes
- Greatly improved search
- Improved NNUE arch and data
NNUE changes
- Alexandria's net arch changed from 768->512->1 to a relative 768->512x2->1, many thanks to cosmo for Pr #148, providing the current inference code for a relative net and the net that has been used to test alex patches up to #209.
- The 200M fens of koivisto data that were previously used to train alex nets have been swapped out for 370M fens of leela data. Thanks to the koi boys for letting me use koi data for so long and to the leela team for making their data publicly available (and thank you linrock for the very cool binpack on kaggle).
Ack
- An heartfelt thank you to anyone new in the Contributors file (except Viren), having people trying to help is always nice and i really appreciate it.
- Last but not least a big thank you to Swehosting and everyone on the https://chess.swehosting.se/index/ instance, the hardware support, the sharing of ideas and the friendly banter are the only reason Alex 4.0 exists and i'm not in a mexican prison.
Obligatory section where i announce my retirement
Yes i will retire for the 8th time starting from the moment this release goes out, see you all when i inevitably release Alex 5 or any other accursed piece of chess playing software.
Full Changelog: v3.5.0...v4.0.0
Alexandria 3.5.0
This release was originally planned to be Alexandria 4.0, however i decided to go on a temporary hiatus and while the engine still falls short of the elo mark i had set for Alexandria 4.0 it still has made significant progress compared to 3.1.0.
This release is therefore meant to act as a stopgap between 3.1.0 and 4.0 (if that ever comes out).
Compared to Alexandria 3.1.0, Alexandria 3.5.0 features a greatly improved search and experimental multithreaded search support (tested when newly implemented with up to 16 cores but never again since).
As far as elo progress goes:
Using 4moves-noob.epd
STC
ELO | 88.53 +- 9.96 (95%)
CONF | 10.0+0.10s Threads=1 Hash=16MB
GAMES | N: 1728 W: 547 L: 116 D: 1065
LTC
ELO | 118.93 +- 15.24 (95%)
CONF | 60.0+0.60s Threads=1 Hash=16MB
GAMES | N: 792 W: 295 L: 34 D: 463
This is also the first version of Alexandria that comes into the usual 3 flavours (modern, avx2, bmi2) everyone knows and love, big thanks to Disservin for the makefile that made this possible.
What's Changed
- Lazy SMP by @PGG106 in #86
- Improve and modernize uci support by @PGG106 in #91
- Reduce checks for time running out to once every 1024 nodes by @PGG106 in #92
- Improve memory usage, add some comments, fix movetime uci command by @PGG106 in #93
- Move most of the allocations on the heap by @PGG106 in #95
- Rework search stack by @PGG106 in #96
- Rework history heuristic by @PGG106 in #97
- change nmp to fail soft by @PGG106 in #98
- Final tweak to search output pretty_print by @PGG106 in #102
- avoid perft crashing when called with a depth of 1 by @PGG106 in #105
- Rewrite LMR with a more conventional approach by @PGG106 in #109
- Make nmp more aggressive by @PGG106 in #110
- Introduce continuation history by @PGG106 in #111
- Store static eval in the TT by @PGG106 in #114
- Simplify TT exact flag in Qsearch by @PGG106 in #115
- Avoid LMR dropping into Qsearch or extending by @PGG106 in #117
- Full multi-threaded datagen implementation by @PGG106 in #119
- fix movepicker by @PGG106 in #127
Full Changelog: v3.1.0...v3.5.0
Alexandria 3.1.0
This version introduces SEE pruning into search, netting a measurable gain in elo, most importantly it fixes a nasty (but thankfully rare) memory usage problem.
Every Alexandria user is highly advised to switch to this version, regardless of potential performance loss at untested TCs and of personal preferences.
This version also reverts the Time management changes made to the X moves in Y time format of TC because the new tm appears less effective.
Using 4moves-noob.epd
LTC
ELO | 16.90 +- 12.43 (95%)
CONF | 40.0+0.40s Threads=1 Hash=128MB
GAMES | N: 1008 W: 194 L: 145 D: 669
What's Changed
- accurate fen reading by @PGG106 in #71
- Cleanup3 by @PGG106 in #72
- fix see for quiet moves by @PGG106 in #73
- PVS SEE pruning by @PGG106 in #74
- add See pruning to qsearch by @PGG106 in #75
- Reduce the check for repetition to the positions since last 50 mr reset by @PGG106 in #76
- Remove ep by @PGG106 in #77
- Prevent dropping into Qsearch if in check by @PGG106 in #78
- change maxtime formula by @PGG106 in #79
Full Changelog: v3.0.2...v3.1.0
Alexandria 3.0.2
What's Changed
- Introduce a more complex TM by @PGG106 in #67
- Fixes a longstanding bug with EP captures from a diagonally pinned pawn
Full Changelog: v3.0.1...v3.0.2