Back again to make another Ethereal release. I wanted to try my best to wait a while between releases to ease the burden on testers, but this is the longest time and elo gap between releases for Ethereal, so I did it anyway
Patches include some help from Demolito and DiscoCheck author Lucas Braesch, as well as some patches from Laldon, the worlds greatest Laser fan.
Additionally I have had a massive amount of support from Noobpwnftw, by powering my own home-brew fishtest found here. Many of these patches would likely have not been tested under my setup, as the games needed would be too large. Since he started helping, I have run nearly 1,000 tests in the last three weeks, feeding roughly the same number of machines that power the fishtest framework on my own. A much needed rest is in order.
I was hoping to make this release with the claim that Ethereal would become the 2nd strongest open source engine. However, the author of Booot has done a phenomenal job in his latest release
This version of Ethereal should be competitive with Andscacs, Fritz, and Chiron. It is possible that Ethereal climbs to the Premier Division of TCEC with this latest release during the next season.
Binaries:
Ethereal10.55-x32-armv7 here
Ethereal10.55-x64-armv8 here
Ethereal10.55-x64-nopopcnt.exe here
Ethereal10.55-x64-popcnt.exe here
Ethereal10.55-x64-pext.exe here
Test Data (10.50, NOT 10.55) (using 8moves_v3)
Code: Select all
| TEST | BASE | TIME | W | L | D | N | ELO | ERROR |
|================|================|========|=======|=======|=======|=======|=========|=======|
| Ethereal 10.50 | Laser 1.6 | 5+.05s | 1118 | 503 | 879 | 2500 | 87.26 | 11.19 |
| Ethereal 10.50 | Laser 1.6 | 20+.2s | 966 | 417 | 1117 | 2500 | 77.56 | 10.22 |
| Ethereal 10.50 | Laser 1.6 | 60+.6s | 376 | 125 | 499 | 1000 | 89.11 | 15.37 |
|----------------|----------------|--------|-------|-------|-------|-------|---------|-------|
| Ethereal 10.50 | Xiphos 0.3.5 | 5+.05s | 1026 | 691 | 783 | 2500 | 46.84 | 11.38 |
| Ethereal 10.50 | Xiphos 0.3.5 | 20+.2s | 931 | 517 | 1052 | 2500 | 58.07 | 10.44 |
| Ethereal 10.50 | Xiphos 0.3.5 | 60+.6s | 355 | 208 | 437 | 1000 | 51.45 | 16.29 |
|----------------|----------------|--------|-------|-------|-------|-------|---------|-------|
| Ethereal 10.50 | Ethereal 10.00 | 5+.05s | 929 | 306 | 1265 | 2500 | 88.44 | 9.60 |
| Ethereal 10.50 | Ethereal 10.00 | 20+.2s | 840 | 216 | 1444 | 2500 | 88.59 | 8.76 |
| Ethereal 10.50 | Ethereal 10.00 | 60+.6s | 346 | 60 | 594 | 1000 | 102.22 | 13.49 |
Code: Select all
10.01 * : Make the bench able to be run from the command line
10.02 : Increase King Safety in the mid game by 12%
10.03 : Remove some bad FENs from the perft test suite
10.04 * : Remove UCI bench command (only run from command line)
10.05 * : Merge piece.h and types.h (-30 lines of code)
10.06 : Rewrite the Late Move Reductions from scratch
10.07 : More aggressive Late Move Pruning, and simplified
10.08 : Use the same value for SEE Pruning in improving and non improving nodes
10.09 : Remove all trailing white space from the files
10.10 : Fix a compilation issue for debug builds caused by 10.05
10.11 : Cleanup and simplify applyMove() & revertMove() (-100 lines of code)
10.12 : Track Counter Moves for move ordering hueristics
10.13 : Fix an off-by-one issue with the fifty move rule (Seen in a TCEC game)
10.14 * : Correct two wrong FENs in the bench command's list of positions
10.15 : More aggressive LMP for non improving nodes
10.16 : Cap the evaluation difference's contribution to Null Move Pruning
10.17 : Simplify the Aspiration Window search (Torwards Stockfish style)
10.18 : Extend quiet moves coming from in check positions, when good
10.19 : Remove some check extensions that occured before the move loop
10.20 : Hand tune the values for Knight & Bishop outposts
10.21 : Hand tune King Safety contribution from safe checks
10.22 : Update the upper bound when failing low on an Aspiration search
10.23 : Implement Counter Move History, Pruning, and Sorting
10.24 : Swap Counter Move Pruning & Late Move Pruning for a 1% speed gain
10.25 : Apply all of our early pruning techniques to PvNodes (But not RootNodes)
10.26 : Reduce Counter Move History Pruning (CMHP) threshold to 0
10.27 : Cap History contribution to LMR by [-2, 2]
10.28 : Use fail-soft for Razoring, Beta Pruning, and Prob Cut Pruning
10.29 + : Remove the evaluation of the # of rammed pawns when we have Knights
10.30 : Swap the Stockfish's US/THEM naming convention for the Evaluation
10.31 : Evaluate threats by safe pawn pushes
10.32 : Use SEE() to place bad captures after quiet moves in sorting
10.33 : Use different CMHP threshold for improving nodes
10.34 : Remove the Estimated Usage heuristic from Time Managment
10.35 : Changes in an attempt to make Android build work
10.36 : Changed my mind about patch 10.35 and reverted
10.37 + : Evaluate threats on rooks by pawns and minor pieces
10.38 : Adjust some tuning code to match changes in patch 10.37
10.39 : Tweak the LMR formula part 1
10.40 : Tweak the LMR formula part 2
10.41 : Speedgain by using information from move sorting to reduce SEE() calls
10.42 : Only perform razoring at depth 1
10.43 : Simplify time managment: No time adjustments when the score jumps
10.44 : Remove thread dependence from the Aspiration Window values
10.45 + : Tuning by Laldon, a slight bugfix to Threat evaluation, and a KS tweak
10.46 : Evaluate Oppisite Coloured Bishop endgames with a simple scaling factor
10.47 : Cleanup some logic around the Pawn King Evaluation table
10.48 : Use "normal" piece values for SEE() and friends
10.49 : Bugfix-ish: Count Null Moves torwards the 50 move rule counter
10.50 : Speedup by delaying calls to SEE() from the Move Picker
10.51 : Even more aggressive Late Move Pruning
10.52 + : Tweak the definition of Unsupported/Weak pawns in Threat evaluation
10.53 : Remove an extra brace commited in 10.52
10.54 : Use the same definition as 10.52 to evaluate major threats on minors
10.55 : Remove an extra call to hashfull() when reporting TB hits at the root