New 6-piece tablebases

Discussion of chess software programming and technical issues.

Moderators: hgm, chrisw, Rebel

User avatar
RJN
Posts: 303
Joined: Fri Jun 21, 2013 5:18 am
Location: Orion Spiral Arm

Re: New 6-piece tablebases

Post by RJN »

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: 5654
Joined: Tue Feb 28, 2012 11:56 pm

Re: New 6-piece tablebases

Post by syzygy »

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: 494
Joined: Sun Mar 19, 2006 4:12 am
Full name: Kirill Kryukov

Re: New 6-piece tablebases

Post by Kirill Kryukov »

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 11:03 am

Re: New 6-piece tablebases

Post by Sharaf_DG »

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 9:44 am

Re: New 6-piece tablebases

Post by phenri »

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 (pt = PAWN; pt <= QUEEN; pt++)
                                  ^
tbprobe.cpp:72:34: error: no 'operator++(int)' declared for postfix '++' [-fpermissive]
   for (pt = PAWN; pt <= QUEEN; pt++)
                                  ^
tbprobe.cpp: In function 'uint64 calc_key_from_pcs(int*, int)':
tbprobe.cpp:91:34: error: no 'operator++(int)' declared for postfix '++' [-fpermissive]
   for (pt = PAWN; pt <= QUEEN; pt++)
                                  ^
tbprobe.cpp:95:34: error: no 'operator++(int)' declared for postfix '++' [-fpermissive]
   for (pt = PAWN; pt <= QUEEN; pt++)
                                  ^
<builtin>: recipe for target 'tbprobe.o' failed
mingw32-make[2]: *** [tbprobe.o] Error 1
mingw32-make[2]: Leaving directory 'M:/SF4/Stockfish-master_20130917/src'
Makefile:521: recipe for target 'gcc-profile-make' failed
mingw32-make[1]: *** [gcc-profile-make] Error 2
mingw32-make[1]: Leaving directory 'M:/SF4/Stockfish-master_20130917/src'
Makefile:431: recipe for target 'profile-build' failed
mingw32-make: *** [profile-build] Error 2

M:\SF4\Stockfish-master_20130917\src>strip stockfish.exe
strip: 'stockfish.exe': No such file
phenri
Posts: 284
Joined: Tue Aug 13, 2013 9:44 am

Re: New 6-piece tablebases

Post by phenri »

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:29:0:
tbcore.cpp:128:13: warning: unused parameter 'size' [-Wunused-parameter]
 static void unmap_file(char *data, uint64 size)
             ^
tbcore.cpp: In function 'uint64 _ZL12encode_pieceP13TBEntry_piecePhPiS2_.isra.0(ubyte, ubyte*, ubyte*, int*, int*)':
tbcore.cpp:763:19: warning: 'idx' may be used uninitialized in this function [-Wmaybe-uninitialized]
   idx *= factor[0];
                   ^
syzygy
Posts: 5654
Joined: Tue Feb 28, 2012 11:56 pm

Re: New 6-piece tablebases

Post by syzygy »

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 9:44 am

Re: New 6-piece tablebases

Post by phenri »

Hi,

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

Greetings
syzygy
Posts: 5654
Joined: Tue Feb 28, 2012 11:56 pm

Re: New 6-piece tablebases

Post by syzygy »

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:\tb\wdl;C:\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 9:44 am

Re: New 6-piece tablebases

Post by phenri »

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

I am very happy.

Thanks a lot |_|D

Greetings