Official Release of Ethereal 12.00

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

AndrewGrant
Posts: 1750
Joined: Tue Apr 19, 2016 6:08 am
Location: U.S.A
Full name: Andrew Grant

Official Release of Ethereal 12.00

Post by AndrewGrant »

Hello all,

It has been about 3 months now since V11.75, and Ethereal is making quick
progress due to massive contributions from Alayan, as well as the utility
of OpenBench and the tuning mechanisms built into Ethereal.

These patches include a wide range of improvements, including endgame scaling
gains, additional search techniques, new contempt options, many speedups
particularly for Linux systems, new evaluation terms covering a wide variety
of concepts, tons of tuning to search and evaluation, and much more.

A big thanks to all of those who have donated CPU time to OpenBench.
Those users can be found here http://chess.grantnet.us/users/

Binaries for Windows {PEXT/POPCNT/NOPOPCNT} & for Android {ARMV7/ARMV8}


Ethereal 12.00 vs Ethereal 11.75
ELO | 24.06 +- 3.03 (95%)
Fixed | 60.0+0.6s Threads=1 Hash=64MB

Games | N: 15751 W: 3018 L: 1929 D: 10804
http://chess.grantnet.us/viewTest/4801/

Ethereal 12.00 vs Ethereal 11.75
ELO | 29.63 +- 3.77 (95%)
Fixed | 20.0+0.2s Threads=8 Hash=256MB

Games | N: 10016 W: 1979 L: 1127 D: 6910
http://chess.grantnet.us/viewTest/4803/


A quick summary of the changes, one patch at a time:

Patches denoted with an "*" are by Alayan, those with "&" are by Weiss
author Terje, and those with "+" are from Github User Skiminki.

Code: Select all

* 11.76 Score Knights/Rooks based on how open the position
        is. Openness is a function of the number of open
        files as well as the number of rammed pawns.
  11.77 Moved Closedness to its own function for a speedup.
* 11.78 Penalize hanging pieces threatened by a King.
& 11.79 Implement Multi-Cut Pruning based on attempts to prove
        a move to be Singular.
& 11.80 Remove the redundant attackersToSquare() function.
* 11.81 Simplify away the Razoring in the main search routine.
* 11.82 Add rough elo estimates for various search techniques.
* 11.83 Apply an extra penalty for Passers that are stacked.
  11.84 Fix a small white/black mirroring issue in Passed Stack
        Pawn evaluation introduced with patch 11.83.
* 11.85 Penalize mutually attacked squares that are poorly defended.
* 11.86 Tune the evaluation terms added in patch 11.85
* 11.87 Bonus for Bishops on an open, long, diagonal controlling
        some of the central squares, a la Stockfish.
* 11.88 Penalize knights that are far from both of the Kings.
* 11.89 Increase the Static Exchange Evaluation Pruning depth to 9
* 11.90 Evaluate Backwards pawns by their ranks. Adjust the Pawn
        piece-square table to account for this change.
* 11.91 Apply an early game bonus having sole control over central
        squares. Taper off this bonus as the position simplifies.
+ 11.92 Prefetch Transposition Table entries as early as possible.
* 11.93 Introduce Draw Contempt and Complexity Contempt.
* 11.94 Scale down the eval for a lone queen versus multiple other
        minors and or majors, when the queen is given the advantage.
  11.95 Scale up lone minor/rook vs lone minor/rook when there is
        a difference of three or more pawns between the players.
& 11.96 Resolve fail-highs with progressively shallower searches.
* 11.97 When evaluating King Safety, exclude attacks to squares that
        are twice protected by our pawns. Idea from Vizvezdenec.
* 11.98 Move 'space' evaluation terms to their own function.
        Add Alayan to the authors output. Fix tuner and UCI options.
+ 11.99 Advise the Kernal to use Transparent Huge Pages.
* 12.00 Add a small variation to drawn evaluations to avoid potential
        blindness to 3-fold repetitions.
The Ethereal team, Andrew, Alayan, and Laldon, thank you for your support :)
#WeAreAllDraude #JusticeForDraude #RememberDraude #LeptirBigUltra
"Those who can't do, clone instead" - Eduard ( A real life friend, not this forum's Eduard )
User avatar
Graham Banks
Posts: 41416
Joined: Sun Feb 26, 2006 10:52 am
Location: Auckland, NZ

Re: Official Release of Ethereal 12.00

Post by Graham Banks »

Thanks Andrew (and helpers). :)
gbanksnz at gmail.com
Terje
Posts: 347
Joined: Tue Nov 19, 2019 4:34 am
Location: https://github.com/TerjeKir/weiss
Full name: Terje Kirstihagen

Re: Official Release of Ethereal 12.00

Post by Terje »

Looking forward to seeing 12.00 in tournaments and lists!
User avatar
Ovyron
Posts: 4556
Joined: Tue Jul 03, 2007 4:30 am

Re: Official Release of Ethereal 12.00

Post by Ovyron »

Looking forward to Ethereal taking over Houdini 6, and maybe the rest 8-)
Damir
Posts: 2801
Joined: Mon Feb 11, 2008 3:53 pm
Location: Denmark
Full name: Damir Desevac

Re: Official Release of Ethereal 12.00

Post by Damir »

Thanks for the new Ethereal Andrew. Let's hope you continue in improving your engine. :) :) :D
BrendanJNorman
Posts: 2526
Joined: Mon Feb 08, 2016 12:43 am
Full name: Brendan J Norman

Re: Official Release of Ethereal 12.00

Post by BrendanJNorman »

Very nice engine! Thanks Andrew.

I have a small article on my site covering this release of Ethereal, some might find it interesting.

https://www.chessncognac.com/ethereal-1 ... l-awesome/

Those with high-end machines, please do download the PGN file from my page and check the games.

Some very interesting positions in there.

I'd love to see you share whatever positions you find interesting from the match in the forum too. 8-)

For example, the weird pawn sac by Stockfish in game 6. ;)
User avatar
pohl4711
Posts: 2433
Joined: Sat Sep 03, 2011 7:25 am
Location: Berlin, Germany
Full name: Stefan Pohl

Re: Official Release of Ethereal 12.00

Post by pohl4711 »

Terje wrote: Sun Mar 01, 2020 1:41 am Looking forward to seeing 12.00 in tournaments and lists!
Great news! I started the testrun of Stockfish 200227 today...It will take 6-7 days. But, when it is finished, next testrun will be Ethereal 12.00. But dont expect the result before the middle of the month.

https://www.sp-cc.de
Alayan
Posts: 550
Joined: Tue Nov 19, 2019 8:48 pm
Full name: Alayan Feh

Re: Official Release of Ethereal 12.00

Post by Alayan »

Some thoughts on this release.

After beating Fire 7.1 in the majority of rating lists with Ethereal 11.75, we needed a new target. Houdini 6 is the next big name, but the gap from Fire to Houdini is huge. While beating Houdini is a good long-term goal, my personal target for 12.00 was to tie or beat KMCTS 13.2. We'll see how it does in rating lists, but at least in TCEC's League 1, Ethereal 11.88 ended up clear first, which is a nice reward. For the next release, we may hope to get close to Stockfish 8.

I started writing Ethereal patches because not only is it hard to gain elo for Stockfish, but it's often hard to know if it's the idea that is bad or simply the parameters. For many evaluation terms, Ethereal's tuner give decent approximations quickly. It's also useful when other related evaluation terms need to be retuned to account for the new term (e.g., the PSQTs when adding a piece eval term). This makes it a good engine to experiment with.

However, the tuner doesn't allow to tune king danger (or quadratic terms), nor the search, which is a serious limitation. I got one search parameter tweak in, but I'm convinced that search parameters are some good distance away from optimal values. Trying to improve king danger is also much more difficult. As much as I dislike the current king shelter term, it's really hard to improve.

The majority of patches from 11.75 to 12.00 have been in evaluation, because it has been easier for me to find successful evaluation ideas than search ideas. Terje's two search patches have been especially good, however.

Some ideas in Ethereal 12.00 are original (though I expect other to have tried similar things before), others have been inspired by what is done in other engines, mostly Stockfish. One hope is that by proving some concepts can work in different engines, they'll get more attention from the authors of other chess engines, thus helping the whole field to move forward.

Ethereal features two contempt options, because I don't like the lack of flexibility of SF's system tying 3-fold avoidance and complexity-seeking. We choose to use a default setting of 12+12 in the release, same as is now used for testing games where it successfully increased the amount of decisive games by 15-20%. This contempt setting doesn't make Ethereal weaker, but it makes it more decisive. Results won't change much against similar-strength opponents, but it will lose more against the like of Stockfish and Leela and win more against weaker engines. Overall, we think that the gains against weaker engines and the more interesting games that contempt produces against any set of opponent outweigh the loss against stronger engines, which are not many.
BrendanJNorman wrote: Sun Mar 01, 2020 12:56 pm Very nice engine! Thanks Andrew.

I have a small article on my site covering this release of Ethereal, some might find it interesting.

https://www.chessncognac.com/ethereal-1 ... l-awesome/
I think that the exchange-sacrifice in games 1 and 3 is related to the new "closedness" evaluation term. Moves by chess engines come from what they see in their search tree after millions of nodes, but a static analysis can still give some insight. The bishop pair bonus bridges some of the material difference between a rook and a bishop, but in that position with no open files and many pawns (some blocked), Eth's static eval gives a 12cp penalty to a rook. If the sac also helped to remain up a pawn, that would explain this preference.

I've been running some bullet testing on my laptop, 30s+0.3 single-core, but with some turbo-boost noise. With repeated random openings from 2moves_noob, 5-men adjudication and conservative win/draw adjudication, I'm getting this result so far :

Code: Select all

   # PLAYER            :  RATING  POINTS  PLAYED   (%)
   1 Stockfish 11      :   284.6   618.0     743    83
   2 Stockfish 9       :   182.2   536.0     743    72
   3 Stockfish 7       :     5.0   356.0     744    48
   4 Ethereal 12.00    :     0.0   349.5     742    47
   5 Komodo 10         :   -17.6   331.0     743    45
   6 Xiphos 0.6        :   -18.6   329.5     742    44
   7 Ethereal 11.75    :   -23.6   324.0     742    44
   8 Ethereal 11.50    :   -57.1   288.5     742    39
   9 RofChade 2.2      :  -136.1   209.5     743    28

White advantage = 0.03
Draw rate (equal opponents) = 54.87 %
SF7 is extremely strong at bullet, at FastGM it goes from +42 over Eth11.75 at 60s+0.6 to +1 at 10m+6s ; so overall these are rather good results. The gap with SF11 is huge, though these settings have a really high elo-spread with almost 300 elo from SF7 to SF11
ThatsIt
Posts: 991
Joined: Thu Mar 09, 2006 2:11 pm

Re: Official Release of Ethereal 12.00

Post by ThatsIt »

Alayan wrote: Sun Mar 01, 2020 5:36 pm [...snip...]
After beating Fire 7.1 in the majority of rating lists with Ethereal 11.75, we needed a new target.
[...snip...]
Don't forget Xiphos !

Many THX for the new Ethereal version !!

Best wishes,
G.S.
(CEGT team)
AndrewGrant
Posts: 1750
Joined: Tue Apr 19, 2016 6:08 am
Location: U.S.A
Full name: Andrew Grant

Re: Official Release of Ethereal 12.00

Post by AndrewGrant »

BrendanJNorman wrote: Sun Mar 01, 2020 12:56 pm Very nice engine! Thanks Andrew.

I have a small article on my site covering this release of Ethereal, some might find it interesting.

https://www.chessncognac.com/ethereal-1 ... l-awesome/

Those with high-end machines, please do download the PGN file from my page and check the games.

Some very interesting positions in there.

I'd love to see you share whatever positions you find interesting from the match in the forum too. 8-)

For example, the weird pawn sac by Stockfish in game 6. ;)
Thank you for your interest! Even now that Ethereal is established, I'm still always surprised and happy when I learn people are using Ethereal for their interests.
#WeAreAllDraude #JusticeForDraude #RememberDraude #LeptirBigUltra
"Those who can't do, clone instead" - Eduard ( A real life friend, not this forum's Eduard )