Releases: fabianvdW/FabChess
Version 1.16
Version 1.16 comes with a significant strength increase over the last releasted version 1.15 and a lot less code.
Changes include:
-Better handling of endgames
-Retune parameters with Andrews data
-Late move reductions changes
-Add new evaluation features: King piece (shogi-like) incrementally updated tables.
Currently only for pawns.
Selfplay tests show:
1 thread:
ELO | 65.57 +- 4.74 (95%)
SPRT | 60.0+0.6s Threads=1 Hash=64MB
LLR | 0.00 (-2.94, 2.94) [0.00, 0.00]
Games | N: 12320 W: 4777 L: 2479 D: 5064
8 threads:
ELO | 74.03 +- 4.08 (95%)
SPRT | 20.0+0.2s Threads=8 Hash=256MB
LLR | 0.00 (-2.94, 2.94) [0.00, 0.00]
Games | N: 15050 W: 5625 L: 2466 D: 6959
Special thanks to
-Andrew Grant for his public dataset
-Terje (author of Weiss) for submitting several cleanup patches
-Connor (author of Seer) for the idea of using king piece tables
-Noob for really existing
This release wouldn't have been possible without them
If someone could test out the Linux compiles and check if they are working and that BMI2 faster POPCNT faster old on a modern cpu that would be nice :)
Version 1.15
Version 1.15 comes with a significant strength increase over the last released version 1.14.1
Changes include:
-A lot of background refactoring to make the code cleaner and faster
-All in all speed improvements of around 20%, more coming in the future
-Use tt info for avoiding null moves
-Reset killer heuristic for grandchildren
-More LMR,
-Late move pruning
-SEE Pruning of quiet moves
-Simplification of qsearch
-Fix of endgame evaluation for most common endgames. FabChess will no longer report bogus evaluation and lose games because of that (hopefully).
Selfplay tests show:
ELO | 62.80 +- 5.19 (95%)
SPRT | 60.0+0.6s Threads=1 Hash=64MB
LLR | 0.07 (-2.94, 2.94) [0.00, 0.01]
Games | N: 8160 W: 2666 L: 1207 D: 4287
I didn't do enough testing against other engines to confirm that much of a gain, but It should be close to that.
A new type of executable will be available next to "normal" and "popcnt" namely "BMI2", which will use PEXT, so don't use that executable if your hardware does not support this instruction set natively. BMI2 will be the fastest exectuable, followed by popcnt and then normal will be very slow. Please let me know if there are any problems with the executables.
Version 1.14.1 (Bugfix)
In version 1.14 I introduced a dumb regression I had already fixed before, causing crashes when FabChess runs on multiple threads. The single - and multi threaded strength of FabChess does not increase with this fix, only the crashes will stop, so no need to update if you only want to run FabChess in single thread mode.
Version 1.14
This version increases the playing strength of FabChess. It is the same version which played at TCEC, as development hasn't been much in the last months. It is considerably stronger than the last released version so that it is worth to release. In the meantime, thanks for all the testers having shown interest in FabChess.
Changes made include:
- Decreased aspiration window size
- The whole TT has changed with TCEC. It is now lockless and the legality of each tt move is guaranteed, as it led to crashes
- Only probe TT in root of qsearch
- TT is allocated in parallel if threads >= 1 set in UCI
- Increase see pruning depth, change see capture values
- Fail lows will now never be used as best moves, and if the current best move fails low on an thread, more time will be used
- Correct reporting of mate scores
- Move ordering now done in more stages, and with MVVLVA score first, less SEE
Strength increase via selfplay around 50 elo
Fabi
Old versions
A collection of old FabChess versions, which were not officially releases. The repository size is getting too big, and I will just move all(even unofficial versions) here, download them at your own warranty, I just don't want those versions to get lost.
Version 1.13
This version increases the playing strength of Fabchess, preparing its appearance in TCEC.
Changes done:
- Decrease LMR
- Restructure the Transposition Table. New replacement schema and introduce buckets. Fab should be stronger in low cache size scenarios now.
- Increase the king zone at the edges of the board (A- and H-File)
- Changed the way pruning is done. In endgames, forward pruning besides NMP is not done anymore. The NMP conditions were simplified and allow pruning when in check
- Add new evaluation features: Namely Bishops, Rooks, and Queens XRAYing the enemy king and rooks on semi-open and queens on semi-and open file.
- SEE pruning of captures moves at low depths (quiet moves SEE pruning still missing)
And miscellaneous: - Fix the zobrist keys
- Started using openbench
- The evaluation wiki was updated accordingly
Single threaded regression tests at 60+0.6s TC:
4-Cpu regression tests at 30+0.3sTC:
Note that here, RuyDos 1.1.9 was only playing with 1 Thread (because it doesn't support SMP), in that sense it provides an anchor.
Both tests obviously have SSS, but I would say strength has increased maybe 40-60 Elo.
Version 1.12.8
This version finally introduces an SMP option for FabChess - and with it comes more UCI functionality.
Changelog:
- FabChess now supports multithreading for an arbitrary amount of threads. The UCI settings now additionally contain:
"MoveOverhead": Amount of time that the engine considers to be lost during communication via the UCI protocol. This can also be introduced via server lag, in which case the default of 25ms should probably be increased. For local play the settings should be sufficient however.
"Threads": Amount of threads to be used, has no real limit, defaults to 4
"TT_locks": Amount of locks used in the transposition table. This currently defaults to 1024 and should only be increased when testing with more than 512 Threads, in which case TT_locks should be set to atleast 2 * Threads
"DebugSmpprint" : This is for debugging and irrelevant for the user
"SMPSkipratio": This setting theoretically allows for an adaptive smp schema but the default value here should be the best - more testing will be done for future updates regarding the smp implementation - "hashfull" is now reported in uci
The single threaded strength should not have changed.
This is the 4CPU version(which appears to be stable) versus the 1CPU version at 10s +0.1s timecontrol. The gain should be less with longer timecontrols.
Version 1.12.6
This version is a quality of life release.
-FabChess now (finally) supports the UCI option hash -which defaults to 256MB.
-Fixed FabChess crashing on rare occasions (1-2% of games at most)
-Added another evaluation feature giving bonus to a passer if our king is near/malus if enemy king is near.
-A lot of backend refactoring preparing SMP
I also lately made a 10 +0.1 gauntlet against popular engines in Fab's elo range (with all engines running on default settings, so there might have been some wrong settings for Hash values)
All in all this release I don't think this release is much stronger than the previous version
Version 1.12
This version is significantly stronger than the previous version.
Tests against Version1.11 at TC 120s + 1.2s:
Changelog:
- A bug was fixed with the transposition table. This is where most of the elo of this patch comes from. This bug led to blundering wins and draws away pretty often, especially in longer timecontrols.
- Slight tweaks to LMR
- Added PST for Queen and Rooks
Other: - Evaluation Wiki page was updated accordingly
Future Updates will contain:
- More UCI functionality
- SMP support
- EGTB support
- and of course more playing strength
- when developement slows down, more wiki pages will be added. For now, significant changes are still planned in the structure, which would render the wiki outdated pretty soon
I estimate the strength to be somewhere around 2800 now for both CCRL scales.
Thanks to all the testers having tested previous versions of FabChess <3
Version 1.11
This version is about 100 elo stronger than the previous version:
Tests against Version 1.10 at 60s + 0.6s TC:
+375 = 253 -159 +97.87 +/- 25.22
Changelog:
-The readme was a disgrace to the project. It has been updated.
-I am currently writing an implementation wiki regarding FabChess. The evaluation page is already finished, so If you're interested check it out: Wiki, Evaluation Page
-Other changes were evaluation changes only, mostly:
-Pawn mobility was added
-Evaluation of Attacks was changed
-Evaluation of passers was changed
-Asymmetrys of PSQT were removed
-Some backend refactoring preparing SMP for future updates.
The endgame related issues now seem to be less, but are not completly resolved. I am still working on this.
I have also done several gauntlets against Glaurung, NoraGrace, AnMon, Hermann and Jumbo and Detroid.
For 40/4 TC, I expect the elo to be somewhere in the upper 2600's, maybe 2700. For 40/4 the Elo might be at around 2650. (CCRL scale)
As always, much love to the testers who have tested previous versions of Fabchess.