Official Release of Ethereal 11.50, supporting Fischer Random Chess

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

Moderators: hgm, Rebel, chrisw

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

Official Release of Ethereal 11.50, supporting Fischer Random Chess

Post by AndrewGrant »

Hello all,

After five months since the last release, I'm happy to say I have something new to share with you all in an official capacity. I have taken some time away from Ethereal's development, but for now I seem to be back with a vengeance.

In addition to general improvements and gains in elo, this version of Ethereal will be the first to officially support Fischer Random Chess / Chess 960. Around one hundred thousand games have been played and shown no crashes, illegal moves, or other errors. I'm sure there are still bugs lurking, but they do not appear to be the type that would be visible in a game played by Ethereal. If anything catches your eye about FRC, please let me know, either through this forum, the github page, or using my email, andrew@grantnet.us

Additionally, I have gone through and rewritten or cleaned every single source file in the project. Occasionally I hear from other authors that they have learned from Ethereal, and taken things to improve their own engines. I love hearing this, so I'm making sure I do my best to provide a clean Ethereal for those to learn from.

Binaries for Windows {PEXT / POPCNT / NOPOPCNT} and Android {ARMV8 / ARMV7} can be found here.

Elo estimates are pending. I will post them as soon as they are complete.
I will be launching those tests on OpenBench, for anyone who cares for immediate results

A quick summary of changes, one patch at a time ...

Code: Select all

11.26 : Tune the evaluation using an updated sigmoid. The mistake in my
        calculation was pointed out by Tamas Kuzmics (Tomitank)
11.27 : Remove QS Futility Pruning, and merge it into SEE move picking
11.28 : Reset the Killer Moves for the children of a node, at each node
11.29 : Rewrite the internal way of saving History Scores (+Speedup)
11.30 : Move the selection of Killer and Counter moves to history.x
11.31 : Simplify Probcut Pruning by replacing the Verification with SEE
11.32 : Tweak the Razor, Futility, and SEE Pruning Margins
11.33 : Treat Root nodes like all others in regards to early pruning
11.34 : Cleanup and simplify Ethereal's search extensions
11.35 : Tweak the Late Move Pruning move counts
11.36 : Move the contents of castle.x into move.x (Preperation for FRC)
11.37 : Forgot to update the version number from V11.35 -> V11.36
11.38 : Limit the number of quiet moves tried when looking to disprove
        a singularity. Thanks to Raoni Campos (Pirarucu) for the idea :)
11.39 : Small code cleanup for search.c (+Speedup)
11.40 : Increase Late Move Reductions when evading check with our King
11.41 : Fix an oversight from V11.39 causing Illegal PVs to be reported
11.42 : Cleanup of attacks.x & bitboards.x
11.43 : Cleanup of move.x & movegen.x
11.44 : Cleanup of masks.x & movepicker.x & zobrist.x
11.45 : Cleanup of history.x & syzygy.x & thread.x & time.x
11.46 : Add support for FRC / Chess960
11.47 : Redefine PassedSafePromotionPath to require an empty pathway
11.48 : Cleanup of psqt.x & texel.x & types.x & uci.x & windows.x
11.49 : Following a NULL move, skip evaluateBoard() (+Speedup)
11.50 : Cleanup of board.x evaluate.x search.x transposition.x
A special thanks to Bojun Guo (noobpwnftw), for providing his machines to OpenBench, which is my Fishtest-like testing platform. His compute gives me the freedom to try ideas and concepts which would otherwise be untestable, or too time consuming to justify.

A special thanks to Lucas Braesch (lucasart), for writing the base line code for FRC just over a year ago. I used his efforts as a very powerful starting point.

A special thanks to Raoni Campos and Tamas Kuzmics for their ideas that made it into Ethereal.

And, as always, thanks to all of you great folks here who play with Ethereal :)

Cheers from the Ethereal team,
Andrew Grant & Laldon
#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: 41432
Joined: Sun Feb 26, 2006 10:52 am
Location: Auckland, NZ

Re: Official Release of Ethereal 11.50, supporting Fischer Random Chess

Post by Graham Banks »

Thanks to both of you. :)
Sounds like a lot of hard work has gone into this release.
gbanksnz at gmail.com
Dann Corbit
Posts: 12540
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: Official Release of Ethereal 11.50, supporting Fischer Random Chess

Post by Dann Corbit »

Seems to scale pretty well. I get 20M NPS on position 5 with 11 threads at 3.2 GHz using the benchmark.
I think the symbols are not stripped from the shipped binaries because mine is half the size of the official one.
Taking ideas is not a vice, it is a virtue. We have another word for this. It is called learning.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.
ChiefPushesWood
Posts: 62
Joined: Thu Nov 08, 2018 6:30 pm
Full name: Chief PushesWood

Re: Official Release of Ethereal 11.50, supporting Fischer Random Chess

Post by ChiefPushesWood »

Any possible way you could turn on the UCI currentmove deal?

Image

That hole in the middle is saddening....

Chief
Modern Times
Posts: 3547
Joined: Thu Jun 07, 2012 11:02 pm

Re: Official Release of Ethereal 11.50, supporting Fischer Random Chess

Post by Modern Times »

I look forward to running this at chess960 :D
User avatar
Thomas Lagershausen
Posts: 328
Joined: Mon Jun 11, 2007 6:59 pm

Re: Official Release of Ethereal 11.50, supporting Fischer Random Chess

Post by Thomas Lagershausen »

Thx a lot for this strong piece of chesssoftware.

See the superfast solution of the testposition of MikeB (bm Ng4).

Once again the question for supporting the uci option currentmove.
TL
Modern Times
Posts: 3547
Joined: Thu Jun 07, 2012 11:02 pm

Re: Official Release of Ethereal 11.50, supporting Fischer Random Chess

Post by Modern Times »

Is the SyzygyProbeDepth parameter's default value of zero optimal for 5-men on a typical SSD ?
AndrewGrant
Posts: 1754
Joined: Tue Apr 19, 2016 6:08 am
Location: U.S.A
Full name: Andrew Grant

Re: Official Release of Ethereal 11.50, supporting Fischer Random Chess

Post by AndrewGrant »

AndrewGrant wrote: Fri Jun 28, 2019 11:07 pm Elo estimates are pending. I will post them as soon as they are complete.
I will be launching those tests on OpenBench, for anyone who cares for immediate results

Code: Select all

ELO   | 21.29 +- 3.42 (95%)
SPRT  | 60.0+0.6s Threads=1 Hash=64MB
LLR   | 3.05 (-9.21, 9.21) [0.00, 1.00]
Games | N: 10000 W: 1578 L: 966 D: 7456
http://chess.grantnet.us/viewTest/3451/

Code: Select all

ELO   | 18.56 +- 3.35 (95%)
SPRT  | 20.0+0.2s Threads=8 Hash=256MB
LLR   | 2.69 (-9.21, 9.21) [0.00, 1.00]
Games | N: 10060 W: 1501 L: 964 D: 7595
http://chess.grantnet.us/viewTest/3452/
Lets split the difference and call it a +20 elo gain.
#WeAreAllDraude #JusticeForDraude #RememberDraude #LeptirBigUltra
"Those who can't do, clone instead" - Eduard ( A real life friend, not this forum's Eduard )
AndrewGrant
Posts: 1754
Joined: Tue Apr 19, 2016 6:08 am
Location: U.S.A
Full name: Andrew Grant

Re: Official Release of Ethereal 11.50, supporting Fischer Random Chess

Post by AndrewGrant »

Modern Times wrote: Sat Jun 29, 2019 11:12 am Is the SyzygyProbeDepth parameter's default value of zero optimal for 5-men on a typical SSD ?
Yes. Even for 6 man, if using an SSD, I would probably set SyzygyProbeDepth to be zero.
I bought a (cheap) SSD when testing 6man support, and I showed elo gains and no lost speed using SyzygyProbeDepth=0

The following quote can be found on Ethereal's README.md. It is not quite your question, but its extra information about the topic
SyzygyProbeDepth

Minimum depth to start probing table bases (although this depth is ignored when a position with a cardinality less than the size of the given table bases is reached). Without a strong SSD, this option may need to be increased from the default of 0. I have done some of my testing on a standard hard drive, and found a Probe Depth of 8 to be acceptable.
#WeAreAllDraude #JusticeForDraude #RememberDraude #LeptirBigUltra
"Those who can't do, clone instead" - Eduard ( A real life friend, not this forum's Eduard )
AndrewGrant
Posts: 1754
Joined: Tue Apr 19, 2016 6:08 am
Location: U.S.A
Full name: Andrew Grant

Re: Official Release of Ethereal 11.50, supporting Fischer Random Chess

Post by AndrewGrant »

Thomas Lagershausen wrote: Sat Jun 29, 2019 9:32 am Once again the question for supporting the uci option currentmove.
ChiefPushesWood wrote: Sat Jun 29, 2019 6:42 am Any possible way you could turn on the UCI currentmove deal?
I am going to add that right now, and run a quick test to make sure I broke nothing.

I will provide a new set of binaries soon. It will be tagged as V11.51, but you are free to simply call it V11.50, since there is no serious changes.
#WeAreAllDraude #JusticeForDraude #RememberDraude #LeptirBigUltra
"Those who can't do, clone instead" - Eduard ( A real life friend, not this forum's Eduard )