Perft(14) Weekly Status Reports for 2016

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

ankan
Posts: 77
Joined: Sun Apr 21, 2013 3:29 pm
Full name: Ankan Banerjee

Re: Perft(14) Weekly Status 2016-08-28

Post by ankan »

I have computed the first 100 work units using my updated program (with 128 bit hashes). Here are the results:
https://drive.google.com/file/d/0B4d0eT ... sp=sharing
Dann Corbit
Posts: 12540
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: Perft(14) Weekly Status 2016-08-28

Post by Dann Corbit »

Feature request:

Do a count that classifies the moves (by ply depth)...

How many captures?
How many checks?
How many checkmates? (ply would tell us if white or black #)
How many forced stalemates?
How many irreversible moves?
How many single reply moves?
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.
User avatar
sje
Posts: 4675
Joined: Mon Mar 13, 2006 7:43 pm

Work unit 017

Post by sje »

ankan wrote:I have computed the first 100 work units using my updated program (with 128 bit hashes). Here are the results:
https://drive.google.com/file/d/0B4d0eT ... sp=sharing
I see several differences, starting with work unit 017.
[d]rnbqkbnr/1pQ1ppp1/8/3p4/8/4P3/PPPP1PPP/RNB1KBNR b KQkq - 0 4[/d]
You have: 92,374,055,700
Symbolic says: 92,374,081,671
Symbolic's answer is the same with and without transposition assistance.

The perft(6) subtotals:

Code: Select all

[] sf rnbqkbnr/1pQ1ppp1/8/3p4/8/4P3/PPPP1PPP/RNB1KBNR b KQkq - 0 4
[] sbo tre0 trtt
[] pctran 7
TT: PETBase   ItemCount: 536,870,912 (2^29)   ItemSize: 24 B   TableSize: 12 GiB
E0: Rh7 2,501,916,099
E0: Rh6 3,261,240,653
E0: Rh5 2,938,971,332
E0: Rh4 3,240,516,570
E0: Rh3 2,495,299,429
E0: Rxh2 2,853,655,337
E0: Nh6 1,956,663,533
E0: Nf6 2,881,858,082
E0: Qd7 2,762,240,319
E0: Qxc7 1,726,316,622
E0: Qd6 3,866,018,241
E0: Bd7 2,773,007,754
E0: Be6 2,260,477,911
E0: Bf5 3,298,671,449
E0: Bg4 2,716,000,316
E0: Bh3 2,311,433,194
E0: Nd7 2,004,730,045
E0: Nc6 2,765,570,359
E0: Na6 2,035,040,540
E0: Ra7 2,510,708,422
E0: Ra6 3,204,675,485
E0: Ra5 2,752,864,420
E0: Ra4 3,255,073,205
E0: Ra3 2,727,461,081
E0: Rxa2 2,792,406,986
E0: g5 2,661,567,931
E0: b5 2,558,825,497
E0: g6 2,653,606,573
E0: f6 2,245,129,070
E0: e5 3,584,098,054
E0: e6 3,394,680,063
E0: d4 2,940,033,499
E0: f5 2,051,062,205
E0: b6 2,392,261,395
Count: 92,374,081,671   Pt: 4:33.160   Wt: 35.765   U: 7.63747   2.58275 GHz   387.185 ps
User avatar
sje
Posts: 4675
Joined: Mon Mar 13, 2006 7:43 pm

Work units with differences

Post by sje »

Work units with differences

Code: Select all

rocky:tmp sje$ diff my0md5 ankan0md5
18c18
< MD5 &#40;0/wu7.017.sum&#41; = 74edf95f4f0b2cbc1f79277957e0b7ae
---
> MD5 &#40;0/wu7.017.sum&#41; = 8b4eeb1f09bf0182da8fc66d6fb8d278
31,36c31,36
< MD5 &#40;0/wu7.030.sum&#41; = 71dc01a935d4a320a7b22a90c60b1a0e
< MD5 &#40;0/wu7.031.sum&#41; = 260aefcfb3f5aed63839f2af1af10cd8
< MD5 &#40;0/wu7.032.sum&#41; = 926d5b436bd18163aa370bf1b662a72d
< MD5 &#40;0/wu7.033.sum&#41; = d5a2f1148ef4959bf82fc214e9ebe55a
< MD5 &#40;0/wu7.034.sum&#41; = 8b12fcfe348c93e93af9facc24a691eb
< MD5 &#40;0/wu7.035.sum&#41; = b0e7ea473b2bf64702e65a0450ec82b3
---
> MD5 &#40;0/wu7.030.sum&#41; = 6261920c2118dcf6c41bfdc74a25a9ff
> MD5 &#40;0/wu7.031.sum&#41; = 0ebf5503f0115eb4aa0a698198fef082
> MD5 &#40;0/wu7.032.sum&#41; = 247a2c9b2c9155a12f4cb00f93b64edf
> MD5 &#40;0/wu7.033.sum&#41; = f421fc0f7729329686b1d310172cc240
> MD5 &#40;0/wu7.034.sum&#41; = 936cbf729bc8049052a761c703f6f666
> MD5 &#40;0/wu7.035.sum&#41; = 7390ba91c718a61d44795e8552df7db5
38c38
< MD5 &#40;0/wu7.037.sum&#41; = 955c98dcfb9c16ae6c0bbf6f1e199132
---
> MD5 &#40;0/wu7.037.sum&#41; = 7fe21688e12e3e7f5f0018dc83ca9ec5
88,93c88,93
< MD5 &#40;0/wu7.087.sum&#41; = 25d510c1339638039e61ada33f615dbf
< MD5 &#40;0/wu7.088.sum&#41; = 3d1ccb2918f7ded1a163b2a71d504471
< MD5 &#40;0/wu7.089.sum&#41; = 04f28f33c9fafeb364880a400f189e9a
< MD5 &#40;0/wu7.090.sum&#41; = 9ae7cabf7bbdbb354e2bd4c1ec147e4c
< MD5 &#40;0/wu7.091.sum&#41; = 342f87ffe2946dd2d1bb722f5afe0669
< MD5 &#40;0/wu7.092.sum&#41; = 9633257f75f9a770c6c73ee39f455dfc
---
> MD5 &#40;0/wu7.087.sum&#41; = 61d93bf182331bf154ae18fa28e378b7
> MD5 &#40;0/wu7.088.sum&#41; = 2fcfdcad352e76fb1c58481f964f7a8a
> MD5 &#40;0/wu7.089.sum&#41; = 9fa68181ab99dd367e53fd38cd0c7338
> MD5 &#40;0/wu7.090.sum&#41; = d3fcc78c5b9d1f02f6c1a23487231a28
> MD5 &#40;0/wu7.091.sum&#41; = 7496c432a89f965ea38f063b3d15180f
> MD5 &#40;0/wu7.092.sum&#41; = dc57166f0f593cbde9c8e035cf5f6270
95c95
< MD5 &#40;0/wu7.094.sum&#41; = 43f98bb164940af79cabc3ea431338b4
---
> MD5 &#40;0/wu7.094.sum&#41; = 19213963540e90dee410e5d8b1939dc9
98c98
< MD5 &#40;0/wu7.097.sum&#41; = b286106d9cd5ab196fe58c779124faa7
---
> MD5 &#40;0/wu7.097.sum&#41; = 27e230de7c46365356809c08b201e6cb
100c100
< MD5 &#40;0/wu7.099.sum&#41; = e1a58c4260d49f3a5563776d55185872
---
> MD5 &#40;0/wu7.099.sum&#41; = b4582747083b05aa023cc687a3a8777d
User avatar
sje
Posts: 4675
Joined: Mon Mar 13, 2006 7:43 pm

Re: Perft(14) Weekly Status 2016-08-28

Post by sje »

Dann Corbit wrote:Feature request:

Do a count that classifies the moves (by ply depth)...

How many captures?
How many checks?
How many checkmates? (ply would tell us if white or black #)
How many forced stalemates?
How many irreversible moves?
How many single reply moves?
These counters could be added, but I'd very much not want to change the program until it finishes the Perft(14) project.
ankan
Posts: 77
Joined: Sun Apr 21, 2013 3:29 pm
Full name: Ankan Banerjee

Re: Work unit 017

Post by ankan »

For [d]rnbqkbnr/1pQ1ppp1/8/3p4/8/4P3/PPPP1PPP/RNB1KBNR b KQkq - 0 4[/d] using my CPU perft program:
Perft 7: 92374081671, Time taken: 44.0251 seconds, nps: 2098213359

Something looks wrong. I computed these results on a different (older) machine with a single GPU (which was overclocked). Maybe it's too unstable/unreliable.

The primary machine (with three titan X GPUs) is currently re-running perft(14) computation. I will try to make it re-run these work units once that is done. Please ignore my results for 0-99 work units for now.
User avatar
Ajedrecista
Posts: 1968
Joined: Wed Jul 13, 2011 9:04 pm
Location: Madrid, Spain.

Re: Perft(14) Weekly Status 2016-08-28.

Post by Ajedrecista »

Hello Dann:
Dann Corbit wrote:Feature request:

Do a count that classifies the moves (by ply depth)...

How many captures?
How many checks?
How many checkmates? (ply would tell us if white or black #)
How many forced stalemates?
How many irreversible moves?
How many single reply moves?
Checks and checkmates are counted up to 12 plies here:

Statistics on chess games

An independent verification is needed, of course. I understand single reply moves as positions in the game tree with perft(1) = 1, aren't they? But what are irreversible moves? Thanks in advance for your answer.

The shortest stalemates begin to happen at 19 plies according to this old thread:

estimating the number of possible stalemates in perft(n)

Regards from Spain.

Ajedrecista.
User avatar
Ajedrecista
Posts: 1968
Joined: Wed Jul 13, 2011 9:04 pm
Location: Madrid, Spain.

Re: Work unit 017.

Post by Ajedrecista »

Hello:

The count was confirmed by JetChess:

Code: Select all

JetChess 1.0.0.0 &#40;1 GB of hash&#41;&#58;

rnbqkbnr/1pQ1ppp1/8/3p4/8/4P3/PPPP1PPP/RNB1KBNR b KQkq - 0 4

  1  qd8*c7  1726316622
  2  qd8-d7  2762240319
  3  qd8-d6  3866018241
  4  ra8-a7  2510708422
  5  ra8-a6  3204675485
  6  ra8-a5  2752864420
  7  ra8-a4  3255073205
  8  ra8-a3  2727461081
  9  ra8*a2  2792406986
 10  rh8-h7  2501916099
 11  rh8-h6  3261240653
 12  rh8-h5  2938971332
 13  rh8-h4  3240516570
 14  rh8-h3  2495299429
 15  rh8*h2  2853655337
 16  bc8-d7  2773007754
 17  bc8-e6  2260477911
 18  bc8-f5  3298671449
 19  bc8-g4  2716000316
 20  bc8-h3  2311433194
 21  nb8-a6  2035040540
 22  nb8-c6  2765570359
 23  nb8-d7  2004730045
 24  ng8-f6  2881858082
 25  ng8-h6  1956663533
 26   d5-d4  2940033499
 27   b7-b6  2392261395
 28   b7-b5  2558825497
 29   e7-e6  3394680063
 30   e7-e5  3584098054
 31   f7-f6  2245129070
 32   f7-f5  2051062205
 33   g7-g6  2653606573
 34   g7-g5  2661567931

Total&#58;      92374081671

92,374,081,671 &#40;move pathes after 7 half moves&#41;.
Regards from Spain.

Ajedrecista.
Dann Corbit
Posts: 12540
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: Perft(14) Weekly Status 2016-08-28.

Post by Dann Corbit »

Ajedrecista wrote:Hello Dann:
Dann Corbit wrote:Feature request:

Do a count that classifies the moves (by ply depth)...

How many captures?
How many checks?
How many checkmates? (ply would tell us if white or black #)
How many forced stalemates?
How many irreversible moves?
How many single reply moves?
Checks and checkmates are counted up to 12 plies here:

Statistics on chess games

An independent verification is needed, of course. I understand single reply moves as positions in the game tree with perft(1) = 1, aren't they? But what are irreversible moves? Thanks in advance for your answer.

The shortest stalemates begin to happen at 19 plies according to this old thread:

estimating the number of possible stalemates in perft(n)

Regards from Spain.

Ajedrecista.
Irreversible moves are moves that reset the move counter.
Pawn push, capture, promotion and castle.
A reversible move is like (from the opening position) Nf3.
You can move the knight back to where it was and the board is the same as before for your color.
A pawn push cannot be undone, nor a castle, nor a promotion, nor a capture.
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.
Dann Corbit
Posts: 12540
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: Perft(14) Weekly Status 2016-08-28.

Post by Dann Corbit »

Seems that there is another category of irreversible moves:
https://chessprogramming.wikispaces.com ... ible+Moves

King and rook moves that lose castle rights
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.