Stockfish 3 PA_GTB

Discussion about chess-playing software (engines, hosts, opening books, platforms, etc...)
Post Reply
Jeremy Bernstein
Site Admin
Posts: 1226
Joined: Wed Jun 09, 2010 7:49 am
Real Name: Jeremy Bernstein
Location: Berlin, Germany
Contact:

Stockfish 3 PA_GTB

Post by Jeremy Bernstein » Wed May 15, 2013 8:52 pm

I finally found some time to dust off this project and did an update to the Stockfish 3 code base.

I decided to start afresh and fork the source repository from the official Stockfish Github repository so that it's easier to keep this in sync over time. The old sources which worked with Stockfish 2.1.1 are abandoned, but will remain on Github.

The current source code that I'm working from can be found here: https://github.com/jeremybernstein/Stockfish, as well as in the attached archive. Note that the makefiles have not been completely updated yet (I'm using Xcode for building on OSX at the moment). MinGW on Windows creates the fastest builds by far, but I haven't tweaked the makefiles to my satisfaction on that side.

The posted versions are competitive in performance with release versions of Stockfish. At least the 64-bit versions are, I haven't tested the 32-bit versions much. If you want the very best performance while retaining at least some of the benefits of the tablebase access, turn on ProbeOnlyAtRoot. It's disabled by default -- this is an analysis build, after all. I'll play around with PGO builds at some point, but this is a "give it a try" release.

In any case, very few of the ideas in here actually belong to me. I mostly did some cleanup and worried about a bunch of smaller implementation details. So thanks to gaard, BB+, fruity, Peter C and of course the entire Stockfish team for such a wonderfully self-documenting chess engine. And to Uly, wherever he is, for inspiring the ideas.

The versions in the archive are POPCNT builds. If your hardware doesn't support POPCNT, you'll just have to wait a bit, until I or someone else builds non-POPCNT stuff. It's too early in the process to do the extra work for old-hardware builds. The OSX build is a fat 32/64 binary.

I'm sure this is the first of a bunch of releases, as problems are revealed and repaired. But in the spirit of exploration: have at it!

Jeremy
Attachments
stockfish-3-PA_GTB-001.7z
(1.4 MiB) Downloaded 1478 times

Jeremy Bernstein
Site Admin
Posts: 1226
Joined: Wed Jun 09, 2010 7:49 am
Real Name: Jeremy Bernstein
Location: Berlin, Germany
Contact:

Re: Stockfish 3 PA_GTB

Post by Jeremy Bernstein » Thu May 16, 2013 8:53 pm

Over 250 downloads and not a peep. It just works? Everyone's happy? Awkward silence?

jb

ernest
Posts: 247
Joined: Thu Sep 02, 2010 10:33 am

Re: Stockfish 3 PA_GTB

Post by ernest » Thu May 16, 2013 11:54 pm

Jeremy Bernstein wrote:Over 250 downloads and not a peep. It just works?
Had it been a non popcnt, I would already have told you... ;)

ernest
Posts: 247
Joined: Thu Sep 02, 2010 10:33 am

Re: Stockfish 3 PA_GTB

Post by ernest » Fri May 17, 2013 12:15 am

That was for the 64-bit...
Concerning the 32-bit, it seems to work well (about 10% slower than the best 32-bit Stockfish 3)

Ace1
Posts: 12
Joined: Thu Dec 20, 2012 4:40 am
Real Name: AceAce

Re: Stockfish 3 PA_GTB

Post by Ace1 » Fri May 17, 2013 2:13 am

Jeremy Bernstein wrote:Over 250 downloads and not a peep. It just works? Everyone's happy? Awkward silence?

jb

Yes im happy :D it works great Thank you! :D

ChessDrone
Posts: 78
Joined: Mon Jan 28, 2013 10:56 am

Re: Stockfish 3 PA_GTB

Post by ChessDrone » Fri May 17, 2013 4:47 am

Hello, I have not tested but I will, thanks for this.

Its over 290 downloads because this file is linked in another forum. I found there http://www.chess2u.com/t7187-stockfish-3-pa-gtb#43115

Jeremy Bernstein
Site Admin
Posts: 1226
Joined: Wed Jun 09, 2010 7:49 am
Real Name: Jeremy Bernstein
Location: Berlin, Germany
Contact:

Re: Stockfish 3 PA_GTB

Post by Jeremy Bernstein » Fri May 17, 2013 7:06 am

Hm, that's sobering. More posts on chess2u.com than on the originating forum... :|

Moving along, and in partial response to the comments on that forum. The goal of this build is _not_ to perform better than normal Stockfish, but not to perform markedly worse. Otherwise there are exactly 3 new features, from (probably) least to most important:

- lower granularity of evaluation scores (1cp instead of 4cp), may lead to different move choices under some circumstances
- Gaviota tablebase probing support, incl complete PVs at root (up to the MAX_PLY, which has gotten a boost from 100 to 254)
- "preserve analysis": use of transposition table to avoid losing analysis when moving back and forth between moves, or stopping and starting the engine

Hope that's helpful,
Jeremy

Ace1
Posts: 12
Joined: Thu Dec 20, 2012 4:40 am
Real Name: AceAce

Re: Stockfish 3 PA_GTB

Post by Ace1 » Fri May 17, 2013 4:55 pm

@Jeremy Bernstein
Can we have a 3-fold rep=draw in Stockfish 3 PA_GTB? :)

User923005
Posts: 616
Joined: Thu May 19, 2011 1:35 am

Re: Stockfish 3 PA_GTB

Post by User923005 » Fri May 17, 2013 7:21 pm

Jeremy Bernstein wrote:Over 250 downloads and not a peep. It just works? Everyone's happy? Awkward silence?

jb
I just want to say thanks.
I have not had a chance to test it yet, but it will be extremely useful for me.
I downloaded it and will run it overnight tonight.
I will try some test compiles of my own as well.

User923005
Posts: 616
Joined: Thu May 19, 2011 1:35 am

Re: Stockfish 3 PA_GTB

Post by User923005 » Sat May 18, 2013 10:21 am

This version becomes easily decoupled from the GUI.
Analyzing these two positions:
r1b2rk1/1pq2pbp/p1np1np1/4p3/2P1PB2/2NB1N2/PP2QPPP/R2R2K1 w - -
r1bq1rk1/pp2bppp/2n2n2/2pp4/8/2NP1NP1/PPP2PBP/R1BQ1RK1 w - -

I got this output from Arena:
Analysis of Q:\aconz.epd
5/18/2013 1:59:33 AM Level: 1200 Seconds
Analyzing engine: Stockfish-3-64-PA_GTB-001

1
Avoid move:
Best move (Stockfish-3-64-PA_GTB-001): Bf4-g3
Not found in: 20:00
21/29 00:00 16,333,346 4,532,004 +0.14 Bg3 Bg4 Qe3 Rae8 h3 Bh5 Be2 Bxf3 Qxf3 Nd4 Qd3 Rc8 Bh4 h5 Rac1 Rfe8 Bg5 Nxe2+ Qxe2 Qxc4 Qxc4 Rxc4 Bxf6 Bxf6 Rxd6
22/30+ 00:01 22,002,763 4,460,320 +0.22 Be3 Bg4 Bc2 Nd4 Bxd4 exd4 Rxd4 Qb6 Rd3 Qxb2 Rb1
22/30+ 00:01 22,444,518 4,461,243 +0.30 Be3 Bg4 Bc2 Nd4 Bxd4 exd4 Rxd4 Qb6 Rd3 Qxb2 Rb1
22/30 00:02 27,550,669 4,377,986 +0.16 Bg3 Bg4 Qe3 Rae8 h3 Bh5 Re1 Bxf3 Qxf3 Nh5 Nd5 Qa5 Bh4 Nf4 Bg5 Nb4 Nxf4 exf4 Bxf4 Bxb2 Rad1 Bc3 Rf1 Nxd3 Qxd3
23/31+ 00:03 32,966,448 4,376,270 +0.24 Be3 Bg4 Bc2 Rac8 Bb3 Nd4 Bxd4 exd4 Rxd4 Nd7 Nd5 Qd8 Rdd1 Ne5 Kh1 f5 exf5 Rxf5 Ne3 Bxf3 gxf3 Rf6 c5+ Kh8 cxd6 Rxd6 Rxd6 Qxd6 f4
23/34+ 00:04 34,904,971 4,343,575 +0.32 Be3 Bg4 Bc2 Rac8 h3 Bxf3 Qxf3 Nd4 Bxd4 exd4 Rxd4 Nd7 Nd5 Qd8 Rdd1 Rxc4 Bb3 Rd4 Rxd4 Bxd4 Qe2
23/34+ 00:04 36,816,627 4,347,735 +0.44 Be3 Bg4 Bc2 Rac8 h3 Bxf3 Qxf3 Nd4 Bxd4 exd4 Rxd4 Nd7 Nd5 Qd8 Rdd1 Rxc4 Bb3 Rd4 Rxd4 Bxd4 Qe2
23/34 00:05 37,809,530 4,342,429 +0.38 Be3 Bg4 Bc2 Rac8 h3 Nd4 Bxd4 exd4 Rxd4 Be6 Bb3 Nh5 Rdd1 Bxc4 Bxc4 Qxc4 Qxc4 Rxc4 Rxd6 Re8 e5 Bxe5 Nxe5 Rxe5 Rd8+ Kg7 Rad1 Nf4
24/36- 00:05 41,219,796 4,379,028 +0.30 Be3 Bg4 Bc2 Rac8 h3 Nd4 Bxd4 exd4 Rxd4 Bxf3 gxf3 Nd7 Nd5 Qd8
24/36 00:06 43,667,947 4,406,452 +0.25 Be3 Bg4 Bc2 Rac8 h3 Bxf3 Qxf3 Nd4 Bxd4 exd4 Rxd4 Nd7 Nd5 Qd8 Rdd1 Rxc4 Bb3 Rd4 Rxd4 Bxd4 Qe2 Bg7 Rd1 Nc5 f3 Re8 Qc2 Qg5 Nc7 Rc8 Nd5 Qh4
25/36- 00:07 47,563,635 4,451,439 +0.17 Be3 Bg4 Bc2 Rac8 h3 Bxf3 Qxf3 Nd4 Bxd4 exd4 Rxd4 Nd7 Nd5 Qd8 Rdd1 Rxc4 Bb3 Rd4 Rxd4 Bxd4 Qe2 Bg7 Rd1 Nc5 f3 Re8 Qd2 b5 Rc1 Be5 Qf2 Ne6
25/37+ 00:09 58,251,636 4,532,143 +0.33 Be3 Bg4 Bc2 Rac8 h3 Bxf3 Qxf3 Nd4 Bxd4 exd4 Rxd4 Qb6 Rd2 Qxb2 Rb1 Qa3 Rxb7 Qc1+ Qd1 Qxd1+ Nxd1 Rxc4 f3 Re8 Bb3
25/37 00:09 60,099,507 4,545,417 +0.34 Be3 Bg4 Bc2 Rac8 h3 Bxf3 Qxf3 Nd4 Bxd4 exd4 Rxd4 Nd7 Nd5 Qd8 Rdd1 Rxc4 Qe2 Rc8 Rab1 Re8 b4 Qh4 Ne3 Be5 Nc4 Qf6 Nxe5 Nxe5 Bb3
26/37 00:11 68,882,749 4,601,078 +0.32 Be3 Bg4 Bc2 Rac8 h3 Bxf3 Qxf3 Nd4 Bxd4 exd4 Rxd4 Nd7 Nd5 Qd8 Rdd1 Rxc4 Qe2 Rc8 Rab1 Re8 b4 Qh4 Ne3 Be5 Nc4 Qf6 Nxe5 Nxe5 b5 Nc4 bxa6 bxa6
27/41- 00:14 82,700,754 4,644,283 +0.24 Be3 Bg4 Bc2 Rac8 h3 Bxf3 Qxf3 Nd4 Bxd4 exd4 Rxd4 Nd7 Nd5 Qd8 Rdd1 Rxc4 Qe2 Rc8 Rab1 Re8 b4 b5 Rbc1 Nf6
27/41- 00:15 90,396,519 4,673,828 +0.16 Be3 Bg4 Bc2 Rac8 h3 Bxf3 Qxf3 Nd4 Bxd4 exd4 Rxd4 Nd7 Nd5 Qd8 Rdd1 Rxc4 Qe2 Rc8 Rab1 Re8 b4 b5 Rbc1 Nf6
27/43+ 00:29 156,446,183 4,787,068 +0.40 Be3 Bg4 Bc2 Rac8 h3 Bxf3 Qxf3 Qe7 Bb3 Qe6 Bg5 Nd4 Qe3
27/43 00:30 163,853,338 4,788,792 +0.17 Be3 Bg4 Bc2 Rac8 h3 Bxf3 Qxf3 Nd4 Bxd4 exd4 Rxd4 Nd7 Nd5 Qd8 Rdd1 Rxc4 Qe2 Rc8 Rab1 Re8 b4 b5 a4 Nb6 axb5 axb5 Bb3 Nc4 Rbc1 Bb2 Bxc4 Bxc1 Bxb5
28/43- 00:38 200,973,749 4,792,620 +0.09 Be3 Bg4 Bc2 Nd4 Bxd4 exd4 Rxd4 Nd7 Nd5 Qd8 Rd3 Ne5 Rb3 Rb8 Rb1 Qh4 Rb6 Nxf3+ gxf3 Be5 fxg4 Qxh2+ Kf1 Qh1+
28/43 01:15 386,254,775 4,866,569 +0.19 Bg3 Bg4 Qe3 Rae8 h3 Bh5 Re1 Bxf3 Qxf3 Nh5 Qe3 Nxg3 Qxg3 Nd4 Nd5 Qa5 Qe3 Qd8 Rad1 Qh4 Rf1 Bh6 Qg3 Qxg3 Nf6+ Kh8 fxg3 Rd8 Nd5 Rc8 h4
29/43- 01:25 432,445,535 4,860,467 +0.11 Bg3 Bg4 Qe3 Rae8 h3 Bh5 Re1 Bxf3 Qxf3 Nh5 Qe3 Nxg3 Qxg3 Nd4 Rab1 Qc6 b3 f5 exf5 gxf5 Nd5 e4 Be2
29/43 01:29 453,397,112 4,860,760 +0.15 Bg3 Bg4 Qe3 Rae8 h3 Bh5 Re1 Bxf3 Qxf3 Nh5 Qe3 Nxg3 Qxg3 Nd4 Nd5 Qa5 Qe3 Qd8 Rad1 Qh4 Rf1 Bh6 f4 Rd8 b4 Rc8 a3 Bg7 Qf2 Qxf2+ Rxf2
30/43- 01:46 533,459,880 4,858,424 +0.07 Bg3 Bg4 Qe3 Rae8 h3 Bh5 Re1 Bxf3 Qxf3 Nh5 Qe3 Bf6 Nd5 Qd8 Bh2 Bg5 Qb6 Qxb6 Nxb6 Nf6 Rad1 h5 Bc2 Rd8
30/43 01:58 592,599,171 4,862,471 +0.11 Bg3 Bg4 Qe3 Rae8 h3 Bh5 Re1 Bxf3 Qxf3 Nh5 Qe3 Qa5 Nd5 Nd4 a3 Nf6 Nc3 Nh5 Nd5
31/43- 02:41 805,546,113 4,886,747 +0.03 Bg3 Bg4 Qe3 Nd4 Nxd4 Bxd1 Rxd1 exd4 Qxd4 Ne8 Qd5 Be5 Be2 Nf6 Bxe5
31/44 03:23 1,013,191,917 4,900,636 +0.12 Bg3 Bg4 Qe3 Rae8 h3 Bh5 Re1 Bxf3 Qxf3 Nh5 Qe3 Qa5 Nd5 Nd4 Bh2 Nf6 Nc3 Qb4 Rab1 Nd7 Nd5 Qa4 b3 Qa3 Qd2 Nc5 Bf1 Nce6 Bg3 f5 Bd3 Nc5 exf5
32/50 06:33 1,955,877,523 4,924,448 +0.11 Bg3 Bg4 Qe3 Rac8 h3 Bxf3 Qxf3 Nh5 Bh2 Bh6 Bf1 Nd4 Rxd4 exd4 Nd5 Qd8 g4 Ng7 Qf6 Bg5 Qxd4 Ne6 Qa7 Re8 e5 dxe5 Bxe5 b5 f4 Ra8 Qe3 Be7 Nxe7+ Qxe7 cxb5 Nxf4 Re1 Qxe5 Qxe5 Rxe5
33/50 07:35 2,265,219,635 4,930,811 +0.11 Bg3 Bg4 Qe3 Rac8 h3 Bxf3 Qxf3 Nh5 Bh2 Bh6 Bf1 Nd4 Rxd4 exd4 Nd5 Qd8 g4 Ng7 Qf6 Bg5 Qxd4 Ne6 Qa7 Re8 e5 dxe5 Bxe5 b5 f4 Ra8 Qe3 Be7 Nxe7+ Qxe7 cxb5 Nxf4 Re1 Qxe5 Qxe5 Rxe5
34/53 11:40 3,473,362,028 4,935,786 +0.11 Bg3 Bg4 Qe3 Nd4 Nxd4 Bxd1 Rxd1 exd4 Qxd4 Ne8 Qe3 Bxc3 bxc3
35/53 12:05 3,596,177,730 4,932,189 +0.11 Bg3 Bg4 Qe3 Nd4 Nxd4 Bxd1 Rxd1 exd4 Qxd4 Qa5 Bxd6 Ng4 Qd5 Bxc3 bxc3 Qxa2
5/18/2013 2:14:14 AM, Time for this analysis: 00:14:38, Rated time: 20:00

2
Avoid move:
Best move (Stockfish-3-64-PA_GTB-001): Bf4-g3
Not found in: 20:00
5/18/2013 2:17:59 AM, Time for this analysis: 00:03:41, Rated time: 40:00

0 of 2 matching moves
5/18/2013 2:18:03 AM, Total time: 12:18:30 AM
Rated time: 40:00 = 2400 Seconds

The engine was still running in memory, consuming 98% of 4 CPUs, but it was not writing to the output terminal.
I usually make my own version, with at least unit buffering.
Standard buffered I/O does not work well in Windows via either Winboard or UCI apis.

Post Reply