Gull 3 Linux+Syzygy and Fathom released.

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

Moderators: hgm, Rebel, chrisw

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

Gull 3 Linux+Syzygy and Fathom released.

Post by basil00 »

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: 4833
Joined: Sun Aug 10, 2008 3:15 pm
Location: Philippines

Re: Gull 3 Linux+Syzygy and Fathom released.

Post by Ferdy »

Thanks for sharing.
User avatar
cdani
Posts: 2204
Joined: Sat Jan 18, 2014 10:24 am
Location: Andorra

Re: Gull 3 Linux+Syzygy and Fathom released.

Post by cdani »

Nice work! Thanks!
Jesse Gersenson
Posts: 593
Joined: Sat Aug 20, 2011 9:43 am

Re: Gull 3 Linux+Syzygy and Fathom released.

Post by Jesse Gersenson »

Way to go Basil! And, Thanks.
whereagles
Posts: 565
Joined: Thu Nov 13, 2014 12:03 pm

Re: Gull 3 Linux+Syzygy and Fathom released.

Post by whereagles »

LOS = statistical level of significance?
basil00
Posts: 55
Joined: Thu Oct 22, 2015 2:14 am

Re: Gull 3 Linux+Syzygy and Fathom released.

Post by basil00 »

whereagles wrote:LOS = statistical level of significance?
LOS = Likelihood Of Superiority.
whereagles
Posts: 565
Joined: Thu Nov 13, 2014 12:03 pm

Re: Gull 3 Linux+Syzygy and Fathom released.

Post by whereagles »

thx.
User avatar
MikeB
Posts: 4889
Joined: Thu Mar 09, 2006 6:34 am
Location: Pen Argyl, Pennsylvania

Re: Gull 3 Linux+Syzygy and Fathom released.

Post by MikeB »

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 6:37 am

Re: Gull 3 Linux+Syzygy and Fathom released.

Post by stuwph »

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 6:37 am

Re: Gull 3 Linux+Syzygy and Fathom released.

Post by stuwph »

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