7-men Syzygy attempt

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

noobpwnftw
Posts: 560
Joined: Sun Nov 08, 2015 11:10 pm

Re: 7-men Syzygy attempt

Post by noobpwnftw »

syzygy wrote: Tue Jun 26, 2018 1:06 am
noobpwnftw wrote: Sun Jun 24, 2018 10:44 pm I suspect that KBBPPvKQ would need 16-bit table too, moving forward and go back later.
The master branch now supports 16-bit compression of pawnful tables, but you'll need to add -2 to the command line.

It's probably best to keep using the old rtbgenp for normal tables and to try the new version with -2 on KQBBPvKQ and (perhaps) KBBPPvKQ.

I have not tested whether the option -z (to skip generation of the .rtbw files) works.
Unfortunately the new master segfaulted when running with -z, some info in the issue thread. I will retry without -z, but I guess it won't solve the crash.
Sesse
Posts: 300
Joined: Mon Apr 30, 2018 11:51 pm

Re: 7-men Syzygy attempt

Post by Sesse »

syzygy wrote: Tue Jun 26, 2018 1:06 am The master branch now supports 16-bit compression of pawnful tables, but you'll need to add -2 to the command line.
Is there also updated probing code?
syzygy
Posts: 5563
Joined: Tue Feb 28, 2012 11:56 pm

Re: 7-men Syzygy attempt

Post by syzygy »

Sesse wrote: Wed Jun 27, 2018 4:16 pm
syzygy wrote: Tue Jun 26, 2018 1:06 am The master branch now supports 16-bit compression of pawnful tables, but you'll need to add -2 to the command line.
Is there also updated probing code?
That shouldn't be necessary (the probing code should already understand the new format also for pawnful tables).
noobpwnftw
Posts: 560
Joined: Sun Nov 08, 2015 11:10 pm

Re: 7-men Syzygy attempt

Post by noobpwnftw »

KRBBPvKQ.rtbz built and uploaded.
noobpwnftw
Posts: 560
Joined: Sun Nov 08, 2015 11:10 pm

Re: 7-men Syzygy attempt

Post by noobpwnftw »

And the other one(KBBPPvKQ) does not need 16-bit DTZ table. :D

Both are built and uploaded.
Sesse
Posts: 300
Joined: Mon Apr 30, 2018 11:51 pm

Re: 7-men Syzygy attempt

Post by Sesse »

After these latest updates, my machine is now full, so I've stopped mirroring.
niklasf
Posts: 42
Joined: Sat May 16, 2015 11:41 pm

Re: 7-men Syzygy attempt

Post by niklasf »

The current probing code seems to try and read past the end of the table file when probing the DTZ for 2B5/1R6/k7/8/8/P7/6B1/q6K w - - 0 1 (KRBBPvKQ).

Can reproduce in python-chess as well. Here's a gdb session with Cfish:

Code: Select all

Starting program: /root/Cfish/src/cfish
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Cfish 280618 64 POPCNT NUMA by Syzygy based on Stockfish
[New Thread 0x7ffff721b700 (LWP 20772)]
setoption name syzygypath value /home/tables/standard/3-4-5:/home/tables/standard/6-wdl:/home/tables/standard:/home/tables/standard/6-dtz:/home/tables/standard/7/6v1_pawnless:/home/tables/standard/7/6v1_pawnful:/home/tables/standard/7/5v2_pawnless:/home/tables/standard/7/5v2_pawnful:/home/tables/standard/7/4v3_pawnless:/home/tables/standard/7/4v3_pawnful
info string Found 1274 WDL, 0 DTM and 1274 DTZ tablebase files.
position fen 2B5/1R6/k7/8/8/P7/6B1/q6K w - - 0 1
d

 +---+---+---+---+---+---+---+---+
 |   |   | B |   |   |   |   |   |
 +---+---+---+---+---+---+---+---+
 |   | R |   |   |   |   |   |   |
 +---+---+---+---+---+---+---+---+
 | k |   |   |   |   |   |   |   |
 +---+---+---+---+---+---+---+---+
 |   |   |   |   |   |   |   |   |
 +---+---+---+---+---+---+---+---+
 |   |   |   |   |   |   |   |   |
 +---+---+---+---+---+---+---+---+
 | P |   |   |   |   |   |   |   |
 +---+---+---+---+---+---+---+---+
 |   |   |   |   |   |   | B |   |
 +---+---+---+---+---+---+---+---+
 | q |   |   |   |   |   |   | K |
 +---+---+---+---+---+---+---+---+

Fen: 2B5/1R6/k7/8/8/P7/6B1/q6K w - - 0 1
Key: D8460A91D9F3C388

Thread 1 "cfish" received signal SIGSEGV, Segmentation fault.
decompress_pairs (d=0x5555558a7d10, idx=<optimized out>) at tbprobe.c:1113
1113      uint64_t code = from_be_u64(*(uint64_t *)ptr);
(gdb) backtrace
#0  decompress_pairs (d=0x5555558a7d10, idx=<optimized out>) at tbprobe.c:1113
#1  0x000055555557d225 in probe_table (type=2, success=0x7fffffffde8c, s=<optimized out>,
    pos=0x7fffffffdfe0) at tbprobe.c:1250
#2  probe_dtz_table (success=0x7fffffffde8c, wdl=<optimized out>, pos=0x7fffffffdfe0) at tbprobe.c:1293
#3  TB_probe_dtz (pos=pos@entry=0x7fffffffdfe0, success=success@entry=0x7fffffffde8c) at tbprobe.c:1705
#4  0x0000555555569107 in print_pos (pos=pos@entry=0x7fffffffdfe0) at position.c:139
#5  0x00005555555808f9 in uci_loop (argc=1, argv=<optimized out>) at uci.c:341
#6  0x0000555555556a5e in main (argc=1, argv=0x7fffffffe558) at main.c:49
konsolas
Posts: 182
Joined: Sun Jun 12, 2016 5:44 pm
Location: London
Full name: Vincent

Re: 7-men Syzygy attempt

Post by konsolas »

How much disk space would the fully generated 7 piece tablebases take up?
syzygy
Posts: 5563
Joined: Tue Feb 28, 2012 11:56 pm

Re: 7-men Syzygy attempt

Post by syzygy »

niklasf wrote: Thu Jun 28, 2018 3:29 pm The current probing code seems to try and read past the end of the table file when probing the DTZ for 2B5/1R6/k7/8/8/P7/6B1/q6K w - - 0 1 (KRBBPvKQ).

Can reproduce in python-chess as well. Here's a gdb session with Cfish:

Code: Select all

Starting program: /root/Cfish/src/cfish
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Cfish 280618 64 POPCNT NUMA by Syzygy based on Stockfish
[New Thread 0x7ffff721b700 (LWP 20772)]
setoption name syzygypath value /home/tables/standard/3-4-5:/home/tables/standard/6-wdl:/home/tables/standard:/home/tables/standard/6-dtz:/home/tables/standard/7/6v1_pawnless:/home/tables/standard/7/6v1_pawnful:/home/tables/standard/7/5v2_pawnless:/home/tables/standard/7/5v2_pawnful:/home/tables/standard/7/4v3_pawnless:/home/tables/standard/7/4v3_pawnful
info string Found 1274 WDL, 0 DTM and 1274 DTZ tablebase files.
position fen 2B5/1R6/k7/8/8/P7/6B1/q6K w - - 0 1
d

 +---+---+---+---+---+---+---+---+
 |   |   | B |   |   |   |   |   |
 +---+---+---+---+---+---+---+---+
 |   | R |   |   |   |   |   |   |
 +---+---+---+---+---+---+---+---+
 | k |   |   |   |   |   |   |   |
 +---+---+---+---+---+---+---+---+
 |   |   |   |   |   |   |   |   |
 +---+---+---+---+---+---+---+---+
 |   |   |   |   |   |   |   |   |
 +---+---+---+---+---+---+---+---+
 | P |   |   |   |   |   |   |   |
 +---+---+---+---+---+---+---+---+
 |   |   |   |   |   |   | B |   |
 +---+---+---+---+---+---+---+---+
 | q |   |   |   |   |   |   | K |
 +---+---+---+---+---+---+---+---+

Fen: 2B5/1R6/k7/8/8/P7/6B1/q6K w - - 0 1
Key: D8460A91D9F3C388

Thread 1 "cfish" received signal SIGSEGV, Segmentation fault.
decompress_pairs (d=0x5555558a7d10, idx=<optimized out>) at tbprobe.c:1113
1113      uint64_t code = from_be_u64(*(uint64_t *)ptr);
(gdb) backtrace
#0  decompress_pairs (d=0x5555558a7d10, idx=<optimized out>) at tbprobe.c:1113
#1  0x000055555557d225 in probe_table (type=2, success=0x7fffffffde8c, s=<optimized out>,
    pos=0x7fffffffdfe0) at tbprobe.c:1250
#2  probe_dtz_table (success=0x7fffffffde8c, wdl=<optimized out>, pos=0x7fffffffdfe0) at tbprobe.c:1293
#3  TB_probe_dtz (pos=pos@entry=0x7fffffffdfe0, success=success@entry=0x7fffffffde8c) at tbprobe.c:1705
#4  0x0000555555569107 in print_pos (pos=pos@entry=0x7fffffffdfe0) at position.c:139
#5  0x00005555555808f9 in uci_loop (argc=1, argv=<optimized out>) at uci.c:341
#6  0x0000555555556a5e in main (argc=1, argv=0x7fffffffe558) at main.c:49
Thanks, I have found and fixed a problem. I have also fixed the -z option. Unfortunately it will be necessary to regenerate the .rtbz table.
Dann Corbit
Posts: 12540
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: 7-men Syzygy attempt

Post by Dann Corbit »

I get an error trying to build:

Code: Select all

threads.c:285:8: error: unknown type name 'pthread_t'
 static pthread_t cmprs_threads[COMPRESSION_THREADS];
        ^~~~~~~~~
threads.c:287:8: error: unknown type name 'pthread_barrier_t'
 static pthread_barrier_t cmprs_barrier;
        ^~~~~~~~~~~~~~~~~
Is there an option to use C++ 11 threads instead of pthreads?
Taking ideas is not a vice, it is a virtue. We have another word for this. It is called learning.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.