Gull 3 Linux+Syzygy and Fathom released.

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

Moderators: hgm, Dann Corbit, Harvey Williamson

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
Post Reply
basil00
Posts: 55
Joined: Thu Oct 22, 2015 12:14 am

Gull 3 Linux+Syzygy and Fathom released.

Post by basil00 » Fri Nov 20, 2015 7:02 am

Gull 3 Linux+Syzygy is now available from here: https://github.com/basil00/Gull

This is a completely new implementation of Gull syzygy, and is not related to the previous syzygy patch.

Gull+syzygy showed improvement over straight non-syzygy Gull:

Code: Select all

Gull 5-man syzygy (4000 games) using 60"+0.4" 2-threads:
Score: +673-565=2762
Winning fraction: 0.5135
Elo difference: +9.38304
LOS: 0.998928
The syzygy patch uses a new mini-project called Fathom available here:
https://github.com/basil00/Fathom

Fathom is a standalone version of Ronald de Man's syzygy probing code. The original probing code depended on Stockfish functionality, and this must be replaced in order to integrate into a different engine. This is not so easy for an engine like Gull, which is different and does not have well-documented code.

Fathom aims to ease integration by making the probing code engine-independent. Basic integration is therefore reduced to three API calls: initialization, WDL-probe during search, and root-probe at the root.

As an example, the Gull Fathom patch is here: https://github.com/basil00/Gull/commit/ ... efdccaec0c

Although Fathom can be engine independent, some functionality can be replaced by the engine's code for better efficiency. This is optional, see the Gull patch above for an example.

Fathom can also be used for other projects, e.g. syzygy tablebase adjudication. This may be useful for GUIs. The Fathom repository also includes a stand-alone command-line tool for mapping FEN position strings to table-base results.

Ferdy
Posts: 4529
Joined: Sun Aug 10, 2008 1:15 pm
Location: Philippines

Re: Gull 3 Linux+Syzygy and Fathom released.

Post by Ferdy » Fri Nov 20, 2015 10:22 am

Thanks for sharing.

User avatar
cdani
Posts: 2190
Joined: Sat Jan 18, 2014 9:24 am
Location: Andorra
Contact:

Re: Gull 3 Linux+Syzygy and Fathom released.

Post by cdani » Fri Nov 20, 2015 2:07 pm

Nice work! Thanks!

Jesse Gersenson
Posts: 584
Joined: Sat Aug 20, 2011 7:43 am
Contact:

Re: Gull 3 Linux+Syzygy and Fathom released.

Post by Jesse Gersenson » Fri Nov 20, 2015 10:04 pm

Way to go Basil! And, Thanks.

whereagles
Posts: 565
Joined: Thu Nov 13, 2014 11:03 am

Re: Gull 3 Linux+Syzygy and Fathom released.

Post by whereagles » Sat Nov 21, 2015 10:20 am

LOS = statistical level of significance?

basil00
Posts: 55
Joined: Thu Oct 22, 2015 12:14 am

Re: Gull 3 Linux+Syzygy and Fathom released.

Post by basil00 » Sat Nov 21, 2015 11:18 am

whereagles wrote:LOS = statistical level of significance?
LOS = Likelihood Of Superiority.

whereagles
Posts: 565
Joined: Thu Nov 13, 2014 11:03 am

Re: Gull 3 Linux+Syzygy and Fathom released.

Post by whereagles » Sat Nov 21, 2015 9:09 pm

thx.

User avatar
MikeB
Posts: 4643
Joined: Thu Mar 09, 2006 5:34 am
Location: Pen Argyl, Pennsylvania

Re: Gull 3 Linux+Syzygy and Fathom released.

Post by MikeB » Sun Nov 22, 2015 8:33 pm

basil00 wrote:Gull 3 Linux+Syzygy is now available from here: https://github.com/basil00/Gull

This is a completely new implementation of Gull syzygy, and is not related to the previous syzygy patch.

Gull+syzygy showed improvement over straight non-syzygy Gull:

Code: Select all

Gull 5-man syzygy (4000 games) using 60"+0.4" 2-threads:
Score: +673-565=2762
Winning fraction: 0.5135
Elo difference: +9.38304
LOS: 0.998928
The syzygy patch uses a new mini-project called Fathom available here:
https://github.com/basil00/Fathom

Fathom is a standalone version of Ronald de Man's syzygy probing code. The original probing code depended on Stockfish functionality, and this must be replaced in order to integrate into a different engine. This is not so easy for an engine like Gull, which is different and does not have well-documented code.

Fathom aims to ease integration by making the probing code engine-independent. Basic integration is therefore reduced to three API calls: initialization, WDL-probe during search, and root-probe at the root.

As an example, the Gull Fathom patch is here: https://github.com/basil00/Gull/commit/ ... efdccaec0c

Although Fathom can be engine independent, some functionality can be replaced by the engine's code for better efficiency. This is optional, see the Gull patch above for an example.

Fathom can also be used for other projects, e.g. syzygy tablebase adjudication. This may be useful for GUIs. The Fathom repository also includes a stand-alone command-line tool for mapping FEN position strings to table-base results.
Mac compile also works. Thx. Is it supposed to use 5 man syzygy - does not seem to picking that up? 4 man syzygy table bases are working.

[d] 4k3/8/8/8/7q/8/3Q4/R3K3 w Q - 3 1 if playing white, does not pick up mate score. Komodo here will show mate score. I have syzygy table base in two different directories - could that be an issue? Here is the polyglot.ini:

Code: Select all

[PolyGlot]


[Engine]

SyzygyPath=/volumes/RAMDisk/tablebases:/applications/tablebases

stuwph
Posts: 28
Joined: Sun Dec 30, 2012 5:37 am

Re: Gull 3 Linux+Syzygy and Fathom released.

Post by stuwph » Sun Nov 22, 2015 8:54 pm

yes, cool new toy :)

Compiling under Windows for me needed inserting #include <intrin.h> at top of windows.h to avoid an "__cpuid was not declared in this scope" error

After some first tests it looks that syzygy for now only works up to 5men, initializing 6men makes the engine crash, at least in Chessbase and Arena gui.

And the "SyzygyPath" option doesn't show up in Chessbase, however it does in Arena.

It will be great fun if you extend your nice work further on!
besides my skills in doing that are way too limited...

stuwph
Posts: 28
Joined: Sun Dec 30, 2012 5:37 am

Re: Gull 3 Linux+Syzygy and Fathom released.

Post by stuwph » Sun Nov 22, 2015 9:50 pm

inserting #include <intrin.h> at top of windows.h
-> at top in windows.cpp

Post Reply