New 6-piece tablebases

Discussion of chess software programming and technical issues.

Moderators: hgm, Harvey Williamson, bob

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
User avatar
RJN
Posts: 303
Joined: Fri Jun 21, 2013 3:18 am
Location: Orion Spiral Arm

Re: New 6-piece tablebases

Post by RJN » Fri Sep 13, 2013 1:24 am

This naming scheme was used in an older SF. (see the end of the config below)

Not sure if the compile below works with 6 piece, as I'm still downloading them, and there is no place to set the TB piece size:


unofficial Stockfish builds supporting Syzygy Tablebases

http://computer-chess.org/forum/index.p ... ad&id=2401

https://www.dropbox.com/s/jnouj6jh3fwav ... 42-RTB.zip

[Stockfish-RTB]
Use Debug Log=false
Use Search Log=false
Search Log Filename=SearchLog.txt
Book File=book.bin
Best Book Move=false
Contempt Factor=0
Mobility (Middle Game)=100
Mobility (Endgame)=100
Passed Pawns (Middle Game)=100
Passed Pawns (Endgame)=100
Space=100
Aggressiveness=100
Cowardice=100
Min Split Depth=4
Max Threads per Split Point=5
Threads=2
Use Sleeping Threads=false
Hash=2048
Ponder=false
OwnBook=false
MultiPV=1
Skill Level=20
Emergency Move Horizon=40
Emergency Base Time=200
Emergency Move Time=70
Minimum Thinking Time=20
Slow Mover=100
UCI_Chess960=false
RTB DTZ Path=%ArenaDrive%\TB\sbases345
RTB WDL Path=%ArenaDrive%\TB\sbases345

syzygy
Posts: 4447
Joined: Tue Feb 28, 2012 10:56 pm

Re: New 6-piece tablebases

Post by syzygy » Sat Sep 14, 2013 2:27 am

I have now added an option "Syzygybases Path" that can be set to a list of directories where the files can be found. Directories are separated by ";" on Windows and by ":" on Unix.

https://github.com/syzygy1/Stockfish

Note that the latest version does not look anymore at the environment variables RTBWDIR and RTBZDIR.

Please read the "Syzygybases" section I have added to the Readme.

User avatar
Kirill Kryukov
Posts: 492
Joined: Sun Mar 19, 2006 3:12 am

Re: New 6-piece tablebases

Post by Kirill Kryukov » Sat Sep 14, 2013 2:52 am

syzygy wrote:I have now added an option "Syzygybases Path" that can be set to a list of directories where the files can be found. Directories are separated by ";" on Windows and by ":" on Unix.

https://github.com/syzygy1/Stockfish

Note that the latest version does not look anymore at the environment variables RTBWDIR and RTBZDIR.

Please read the "Syzygybases" section I have added to the Readme.
Excellent! I'll test this as soon as I finish downloading the 6-piece syzygybases. (Originally I planned to generate them, but changed mind since downloading should be faster and this way I can help seeding them).

Thank you for so quickly implementing this feature!

(Also, please don't mind the chuckleheads, they exist in every community).

Thanks,
Kirill

Sharaf_DG
Posts: 30
Joined: Fri Aug 02, 2013 9:03 am

Re: New 6-piece tablebases

Post by Sharaf_DG » Sat Sep 14, 2013 7:26 am

syzygy wrote:I have now added an option "Syzygybases Path" that can be set to a list of directories where the files can be found. Directories are separated by ";" on Windows and by ":" on Unix.

https://github.com/syzygy1/Stockfish

Note that the latest version does not look anymore at the environment variables RTBWDIR and RTBZDIR.

Please read the "Syzygybases" section I have added to the Readme.
Thank you for the update

phenri
Posts: 284
Joined: Tue Aug 13, 2013 7:44 am

Re: New 6-piece tablebases

Post by phenri » Tue Sep 17, 2013 8:38 pm

Hello,

I applied the syzygy patch on the last version of stockfish but I can no longer compile because I get these errors:

Code: Select all

In file included from tbprobe.cpp:29:0:
tbcore.cpp:128:13: warning: unused parameter 'size' [-Wunused-parameter]
 static void unmap_file(char *data, uint64 size)
             ^
tbprobe.cpp: In function 'void prt_str(Position&, char*, int)':
tbprobe.cpp:47:33: error: no 'operator--(int)' declared for postfix '--' [-fpermissive]
   for (pt = KING; pt >= PAWN; pt--)
                                 ^
tbprobe.cpp:52:33: error: no 'operator--(int)' declared for postfix '--' [-fpermissive]
   for (pt = KING; pt >= PAWN; pt--)
                                 ^
tbprobe.cpp: In function 'uint64 calc_key(Position&, int)':
tbprobe.cpp:68:34: error: no 'operator++(int)' declared for postfix '++' [-fpermissive]
   for &#40;pt = PAWN; pt <= QUEEN; pt++)
                                  ^
tbprobe.cpp&#58;72&#58;34&#58; error&#58; no 'operator++&#40;int&#41;' declared for postfix '++' &#91;-fpermissive&#93;
   for &#40;pt = PAWN; pt <= QUEEN; pt++)
                                  ^
tbprobe.cpp&#58; In function 'uint64 calc_key_from_pcs&#40;int*, int&#41;'&#58;
tbprobe.cpp&#58;91&#58;34&#58; error&#58; no 'operator++&#40;int&#41;' declared for postfix '++' &#91;-fpermissive&#93;
   for &#40;pt = PAWN; pt <= QUEEN; pt++)
                                  ^
tbprobe.cpp&#58;95&#58;34&#58; error&#58; no 'operator++&#40;int&#41;' declared for postfix '++' &#91;-fpermissive&#93;
   for &#40;pt = PAWN; pt <= QUEEN; pt++)
                                  ^
<builtin>&#58; recipe for target 'tbprobe.o' failed
mingw32-make&#91;2&#93;&#58; *** &#91;tbprobe.o&#93; Error 1
mingw32-make&#91;2&#93;&#58; Leaving directory 'M&#58;/SF4/Stockfish-master_20130917/src'
Makefile&#58;521&#58; recipe for target 'gcc-profile-make' failed
mingw32-make&#91;1&#93;&#58; *** &#91;gcc-profile-make&#93; Error 2
mingw32-make&#91;1&#93;&#58; Leaving directory 'M&#58;/SF4/Stockfish-master_20130917/src'
Makefile&#58;431&#58; recipe for target 'profile-build' failed
mingw32-make&#58; *** &#91;profile-build&#93; Error 2

M&#58;\SF4\Stockfish-master_20130917\src>strip stockfish.exe
strip&#58; 'stockfish.exe'&#58; No such file

phenri
Posts: 284
Joined: Tue Aug 13, 2013 7:44 am

Re: New 6-piece tablebases

Post by phenri » Tue Sep 17, 2013 9:18 pm

I followed the instructions from another post, I replaced pt++ pt-- by ++pt --pt

If anyone has a suggestion to repair this other "Warning".

Code: Select all

In file included from tbprobe.cpp&#58;29&#58;0&#58;
tbcore.cpp&#58;128&#58;13&#58; warning&#58; unused parameter 'size' &#91;-Wunused-parameter&#93;
 static void unmap_file&#40;char *data, uint64 size&#41;
             ^
tbcore.cpp&#58; In function 'uint64 _ZL12encode_pieceP13TBEntry_piecePhPiS2_.isra.0&#40;ubyte, ubyte*, ubyte*, int*, int*)'&#58;
tbcore.cpp&#58;763&#58;19&#58; warning&#58; 'idx' may be used uninitialized in this function &#91;-Wmaybe-uninitialized&#93;
   idx *= factor&#91;0&#93;;
                   ^

syzygy
Posts: 4447
Joined: Tue Feb 28, 2012 10:56 pm

Re: New 6-piece tablebases

Post by syzygy » Wed Sep 18, 2013 1:08 am

phenri wrote:I applied the syzygy patch on the last version of stockfish but I can no longer compile because I get these errors:
https://github.com/syzygy1/Stockfish

Ignore the warnings, different compilers give different warnings and they are all bogus.

phenri
Posts: 284
Joined: Tue Aug 13, 2013 7:44 am

Re: New 6-piece tablebases

Post by phenri » Wed Sep 18, 2013 6:34 pm

Hi,

What commands can I put in the engine to test Sbase?

Greetings

syzygy
Posts: 4447
Joined: Tue Feb 28, 2012 10:56 pm

Re: New 6-piece tablebases

Post by syzygy » Wed Sep 18, 2013 7:24 pm

phenri wrote:What commands can I put in the engine to test Sbase?
You have to set the path. For example:

Code: Select all

setoption name Syzygybases Path value C&#58;\tb\wdl;C&#58;\tbl\dtz
On Linux (and I guess OS X) use : instead of ;
It should say 145/510 tables found if you have 5/6 piece tables. (I should probably prepend "info string" to avoid confusing GUIs.)

To test on Fine #70:

Code: Select all

position fen 8/k7/3p4/p2P1p2/P2P1P2/8/8/K7 w - -
go infinite
It should very quickly report mate values.

See the Readme on github for more explanations.

A few things need to be fixed. I will try to do that today.

phenri
Posts: 284
Joined: Tue Aug 13, 2013 7:44 am

Re: New 6-piece tablebases

Post by phenri » Wed Sep 18, 2013 8:24 pm

I am running SF4 dev 17092013 with sbase 3-4-5 on FICS

I am very happy.

Thanks a lot |_|D

Greetings

Post Reply