Page 15 of 20

Re: New 6-piece tablebases

Posted: Wed Sep 11, 2013 12:59 pm
by Kirill Kryukov
Vinvin wrote:
phenri wrote: I made a mirror of sbases345.tar.bz2

Size 949616772 B
Nalimov 3-4-5 pieces is around 7 GB, does that means this new format is 1/7 the size of Nalimov TB ? :shock:
Yes.

Re: New 6-piece tablebases

Posted: Wed Sep 11, 2013 1:21 pm
by Vinvin
Kirill Kryukov wrote:
Vinvin wrote:
phenri wrote: I made a mirror of sbases345.tar.bz2

Size 949616772 B
Nalimov 3-4-5 pieces is around 7 GB, does that means this new format is 1/7 the size of Nalimov TB ? :shock:
Yes.
Really interesting ... which engines use this format ?

Re: New 6-piece tablebases

Posted: Wed Sep 11, 2013 1:24 pm
by jshriver
Vinvin wrote: Really interesting ... which engines use this format ?
From what I've read, it's open to anyone to use. The author uses it in his own engine, and also created probing code that fits within stockfish's codebase.

Re: New 6-piece tablebases

Posted: Wed Sep 11, 2013 3:50 pm
by gbtami
Just joined to the party. Thanks Joshua!

Re: New 6-piece tablebases

Posted: Thu Sep 12, 2013 4:32 am
by RJN
Kirill Kryukov wrote:
syzygy wrote:I've updated to the latest sources and created a tag "sf_4_tb".
To get Stockfish 4 with my changes the following should work:

Code: Select all

$ git clone https://github.com/syzygy1/Stockfish.git
$ cd Stockfish
$ git checkout sf_4_tb
or just use this link: https://github.com/syzygy1/Stockfish/ar ... f_4_tb.zip

Note that this is unsupported.
Great, thanks a lot! I will give it a try in a day or two.
Does anyone have a 64 bit Windows compiled (recent) Stockfish available that will work with these 6-piece tablebases? It would be much appreciated if someone can point me to a link, Thanks!

Re: New 6-piece tablebases

Posted: Thu Sep 12, 2013 5:31 am
by Kirill Kryukov
RJN wrote:
Kirill Kryukov wrote:
syzygy wrote:I've updated to the latest sources and created a tag "sf_4_tb".
To get Stockfish 4 with my changes the following should work:

Code: Select all

$ git clone https://github.com/syzygy1/Stockfish.git
$ cd Stockfish
$ git checkout sf_4_tb
or just use this link: https://github.com/syzygy1/Stockfish/ar ... f_4_tb.zip

Note that this is unsupported.
Great, thanks a lot! I will give it a try in a day or two.
Does anyone have a 64 bit Windows compiled (recent) Stockfish available that will work with these 6-piece tablebases? It would be much appreciated if someone can point me to a link, Thanks!
I uploaded my compile here. Untested, built from Ronald's sf_4_tb.zip quoted above.

Re: New 6-piece tablebases

Posted: Thu Sep 12, 2013 1:20 pm
by RJN
Hi Kirill:

Thanks for the link, but I have a question. I did not see anywhere to set the path to the syzygy TBs in this compile. There is a parameter to set the probe, but how does one specify where the TBs are located?

I did get it to work (get TB hits) by putting the executable in the same folder as the 5 piece bases, but if I recall, the SF3 version with syzygy bases had parameters in the config to set the paths.

Having the executable in the TB directory is no big deal for 5 piece, but once I get the 6 piece downloaded, I plan to have the WDL files on SSD, and DTZ files on a HDD, as recommended by Ronald de Man.

I'm not complaining, but just thought I would point this out FYI. Thanks for your time.


Here is my configuration:

(I changed the engine name, for clarity)

[Stockfish-4-STB-6]
Write Debug Log=false
Write Search Log=false
Search Log Filename=SearchLog.txt
Book File=book.bin
Best Book Move=false
Contempt Factor=0
Mobility (Midgame)=100
Mobility (Endgame)=100
Pawn Structure (Midgame)=100
Pawn Structure (Endgame)=100
Passed Pawns (Midgame)=100
Passed Pawns (Endgame)=100
Space=100
Aggressiveness=100
Cowardice=100
Min Split Depth=0
Max Threads per Split Point=5
Threads=2
Idle Threads Sleep=true
Hash=1024
Ponder=false
OwnBook=false
MultiPV=1
Skill Level=20
Emergency Move Horizon=40
Emergency Base Time=400
Emergency Move Time=70
Minimum Thinking Time=20
Slow Mover=100
UCI_Chess960=false
Probe Syzygybases=5

Re: New 6-piece tablebases

Posted: Thu Sep 12, 2013 1:50 pm
by Kirill Kryukov
RJN wrote:Hi Kirill:

Thanks for the link, but I have a question. I did not see anywhere to set the path to the syzygy TBs in this compile. There is a parameter to set the probe, but how does one specify where the TBs are located?
I think you set the path in environment variables RTBWDIR and RTBZDIR, as mentioned on Ronald's syzygybases page.

One thing that's not clear to me (I haven't tested Stockfish yet) is - if the probing code can search multiple directories. In the context of torrent sharing of the files it's convenient to store 3-4-5-piece files in one directory and 6-piece files in another directory. If probing code expects all same metric files in a single directory, then adding multiple directory access would be one obvious feature request to Ronald.

Re: New 6-piece tablebases

Posted: Thu Sep 12, 2013 8:08 pm
by syzygy
Kirill Kryukov wrote:One thing that's not clear to me (I haven't tested Stockfish yet) is - if the probing code can search multiple directories. In the context of torrent sharing of the files it's convenient to store 3-4-5-piece files in one directory and 6-piece files in another directory. If probing code expects all same metric files in a single directory, then adding multiple directory access would be one obvious feature request to Ronald.
Currently it only searches one directory for .rtbw files (RTBWDIR variable) and one directory for .rtbz files (RTBZDIR variable).

It wouldn't be difficult to separate 3-4-5 and 6 into different directories, each with its own environment variable. For maximum flexibilty, it would also be possible to let the user specify multiple paths in a single environment variable, where the probing code would look in all of them for any file.

Even better is to replace environment variables with UCI options. But what would be the expected behaviour if you change the path when the engine has already started? Preferably I would let the engine only look at these paths once during initialisation. Would this be OK or would it confuse users?

Any proposed name or names for these option(s)?

Re: New 6-piece tablebases

Posted: Fri Sep 13, 2013 1:39 am
by Kirill Kryukov
syzygy wrote:
Kirill Kryukov wrote:One thing that's not clear to me (I haven't tested Stockfish yet) is - if the probing code can search multiple directories. In the context of torrent sharing of the files it's convenient to store 3-4-5-piece files in one directory and 6-piece files in another directory. If probing code expects all same metric files in a single directory, then adding multiple directory access would be one obvious feature request to Ronald.
Currently it only searches one directory for .rtbw files (RTBWDIR variable) and one directory for .rtbz files (RTBZDIR variable).

It wouldn't be difficult to separate 3-4-5 and 6 into different directories, each with its own environment variable. For maximum flexibilty, it would also be possible to let the user specify multiple paths in a single environment variable, where the probing code would look in all of them for any file.

Even better is to replace environment variables with UCI options.
Yes, multiple paths in UCI options looks like the best solution. This would allow running multiple instances of the engine with different settings without altering the environment. For example such different instances could be included in a tournament.
syzygy wrote:But what would be the expected behaviour if you change the path when the engine has already started? Preferably I would let the engine only look at these paths once during initialisation. Would this be OK or would it confuse users?
I think the expected behaviour should be to start using only tablebases available in the new path. I think initializing only once is acceptable compromise, and still better than environment variables. However why not simply re-initialize the probing code entirely each time the path changes?
syzygy wrote:Any proposed name or names for these option(s)?
Something like SyzygyWDLPath and SyzygyDTZPath perhaps? Up to you really.