Packing on one byte boundaries has a performance penalty.
Reordering with large, properly aligned things first can also help.
TT test positions
Moderators: hgm, Rebel, chrisw
-
- Posts: 12542
- Joined: Wed Mar 08, 2006 8:57 pm
- Location: Redmond, WA USA
Re: TT test positions
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.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.
-
- Posts: 1871
- Joined: Sat Nov 25, 2017 2:28 pm
- Location: France
Re: TT test positions
Ok thanks.
-
- Posts: 61
- Joined: Wed Mar 14, 2012 9:43 pm
Re: TT test positions
I've tested this position with some DOS programs and to my surprise M-Chess recognizes a draw already in depth 1.MOBMAT wrote: ↑Wed May 09, 2018 6:33 pm I ran across this position:which provided a very interesting search output.Code: Select all
K7/P2k4/8/8/8/8/8/6N1 b
The position is a draw, but it took 80ply to find it on an engine i'm testing.Code: Select all
1 8 :00 -4.27 d7d6 2 29 :00 -4.36 d7d6 3 114 :00 -4.35 d7d6 4 618 :00 -4.43 d7c7 5 952 :00 -4.41 d7c7 6 1908 :00 -4.48 d7c7 7 2714 :00 -4.45 d7c7 8 3808 :00 -4.48 d7c7 9 5476 :00 -4.45 d7c7 10 7538 :00 -4.50 d7c7 11 9858 :00 -4.47 d7c7 12 12536 :00 -4.48 d7c7 13 17965 :00 -4.46 d7c7 14 22443 :00 -4.50 d7c7 15 29434 :00 -4.47 d7c7 16 37155 :00 -4.50 d7c7 17 48087 :00 -4.48 d7c7 18 59625 :00 -4.49 d7c7 19 73773 :00 -4.47 d7c7 20 90104 :00 -4.48 d7c7 21 109581 :00 -4.45 d7c7 22 132387 :00 -4.49 d7c7 23 155535 :00 -4.46 d7c7 24 186480 :00 -4.48 d7c7 25 216012 :00 -4.44 d7c7 26 257852 :00 -4.50 d7c7 27 294422 :00 -4.45 d7c7 28 351075 :00 -4.48 d7c7 29 398833 :00 -4.46 d7c7 30 475491 :00 -4.49 d7c7 31 533272 :00 -4.47 d7c7 32 634504 :00 -4.48 d7c7 33 702177 :00 -4.48 d7c7 34 773322 :00 -4.45 d7c7 35 913979 :00 -4.46 d7c7 36 1067766 :00 -4.48 d7c7 37 1158919 :00 -4.45 d7c7 38 1346746 :00 -4.50 d7c7 39 1444903 :00 -4.43 d7c7 40 1544095 :00 -4.43 d7c7 41 1789634 :00 -4.44 d7c7 42 2056931 :00 -4.50 d7c7 43 2176818 :00 -4.44 d7c7 44 2488403 :00 -4.46 d7c7 45 2617640 :00 -4.44 d7c7 46 2982505 :00 -4.45 d7c7 47 3120797 :00 -4.44 d7c7 48 3260417 :01 -4.44 d7c7 49 3710391 :01 -4.46 d7c7 50 4188131 :01 -4.50 d7c7 51 4341587 :01 -4.44 d7c7 52 4496525 :01 -4.44 d7c7 53 5053883 :01 -4.45 d7c7 54 5638213 :01 -4.50 d7c7 55 5803028 :01 -4.44 d7c7 56 5967392 :01 -4.42 d7c7 57 6134169 :01 -4.40 d7c7 58 6832007 :01 -4.41 d7c7 59 7623645 :02 -4.42 d7c7 60 8424045 :02 -4.44 d7c7 61 8612084 :02 -4.42 d7c7 62 9481720 :02 -4.50 d7c7 63 9671798 :02 -4.47 d7c7 64 9864481 :02 -4.44 d7c7 65 10058345 :02 -4.42 d7c7 66 11039567 :02 -4.50 d7c7 67 11262920 :02 -4.47 d7c7 68 11463008 :03 -4.40 d7c7 69 11664767 :03 -4.39 d7c7 70 12778474 :03 -4.44 d7c7 71 12985941 :03 -4.44 d7c7 72 13193894 :03 -4.40 d7c7 73 13403052 :03 -4.40 d7c7 74 13615614 :03 -4.39 d7c7 75 13831291 :03 -4.38 d7c7 76 15166400 :03 -4.42 d7c7 77 15387645 :03 -4.38 d7c7 78 15607382 :04 -4.37 d7c7 79 15828782 :04 -4.35 d7c7 80 16051694 :04 +0.00 d7c7 81 16275446 :04 +0.00 d7c7 82 16502614 :04 +0.00 d7c7 83 16729070 :04 +0.00 d7c7 84 16957482 :04 +0.00 d7c7 85 17187477 :04 +0.00 d7c7 86 17418842 :04 +0.00 d7c7 87 17651908 :04 +0.00 d7c7 88 17886895 :04 +0.00 d7c7 89 18123547 :04 +0.00 d7c7 90 18361100 :04 +0.00 d7c7 91 18599913 :04 +0.00 d7c7 92 18840120 :04 +0.00 d7c7 93 19082718 :04 +0.00 d7c7 94 19325818 :05 +0.00 d7c7 95 19570366 :05 +0.00 d7c7 96 19815810 :05 +0.00 d7c7 97 20062333 :05 +0.00 d7c7 98 20309955 :05 +0.00 d7c7 99 20558402 :05 +0.00 d7c7 100 20807741 :05 +0.00 d7c7 101 21057658 :05 +0.00 d7c7 102 21308024 :05 +0.00 d7c7 103 21558549 :05 +0.00 d7c7 104 21810201 :05 +0.00 d7c7 105 22060767 :05 +0.00 d7c7 106 22311484 :05 +0.00 d7c7 107 22562371 :05 +0.00 d7c7 108 22813457 :05 +0.00 d7c7 109 23064802 :06 +0.00 d7c7 110 23316217 :06 +0.00 d7c7 111 23567902 :06 +0.00 d7c7 112 23819658 :06 +0.00 d7c7 113 24071430 :06 +0.00 d7c7 114 24323425 :06 +0.00 d7c7 115 24576391 :06 +0.00 d7c7 116 24828175 :06 +0.00 d7c7 117 25080092 :06 +0.00 d7c7 118 25332083 :06 +0.00 d7c7 119 25584126 :06 +0.00 d7c7 120 25836231 :06 +0.00 d7c7 121 26088321 :06 +0.00 d7c7 122 26340797 :06 +0.00 d7c7 123 26593212 :06 +0.00 d7c7 124 26845697 :07 +0.00 d7c7 125 27098149 :07 +0.00 d7c7 126 27351559 :07 +0.00 d7c7
The other programs show a losing score even at maximum depth.
-
- Posts: 1871
- Joined: Sat Nov 25, 2017 2:28 pm
- Location: France
Re: TT test positions
Wow, finally found it, the bug in my TT implementation was quite simple to fix but as always hard to found.xr_a_y wrote: ↑Thu May 10, 2018 7:12 pmwell that's the point, I cannot go deep because looking at too much nodes is too expensive, it would take hours ...you scores are similar to mine but you didn't let it search out to find the draw.
No problem to find the good move, Weini goes to depth 20 in less than a second on Fine#70, and see the pawn capture at ply 18.In Fine70, the point is to find the correct move (Kb1) after 20 ply or so. it is a win in 32 moves (64ply).
But I see some engine output that goes to depth 45 or 50 and clearly see the mate score. Maybe using end game tables ... maybe not, I don't know.
But for Weini it is totally impossible to go to depth 40 on Fine#70, I think it has already looked at 10 000 000 000 nodes near depth 38 ...
Weini uses a quite simple implementation with a bucket system (one entry is always replaced and the other replaced by depth). The transposition table itself is 512Mb and contains 8388608 entries (that means 16777216 transpositions) because the size of a transposition stored is 32 bytes.How is your implemented? How big is the hash when ran the test? I ran the test with a 128Mb hash. Do you save and use the PV?
Here is Fine#70 results (good move found in 0.4sec, but after depth 25 and above it takes ages to compute):
Code: Select all
1 52 10 2 0 a1b2 1 52 10 6 0 a1b2 2 61 10 23 2 a1b2 a7b6 2 61 10 39 4 a1b2 a7b6 3 61 10 90 7 a1b2 a7b6 b2c3 3 61 10 116 10 a1b2 a7b6 b2c3 4 123 10 193 14 a1b2 a7b6 b2c3 b6c7 4 123 10 219 18 a1b2 a7b6 b2c3 b6c7 5 68 10 382 25 a1b2 a7b6 b2c3 b6c7 c3d3 5 68 10 422 39 a1b2 a7b6 b2c3 b6c7 c3d3 6 128 10 652 60 a1b2 a7b6 b2c3 b6c7 c3d3 c7d7 6 128 10 700 75 a1b2 a7b6 b2c3 b6c7 c3d3 c7d7 7 62 10 1051 125 a1b2 a7b6 b2c3 b6c7 c3d3 c7d7 d3e3 7 62 10 1109 155 a1b2 a7b6 b2c3 b6c7 c3d3 c7d7 d3e3 8 134 10 1733 249 a1b2 a7b6 b2c3 b6c7 c3c4 c7b6 c4d3 b6c7 8 134 10 1791 283 a1b2 a7b6 b2c3 b6c7 c3c4 c7b6 c4d3 b6c7 9 134 10 3337 647 a1b2 a7b6 b2b3 b6a7 b3b2 a7b6 b2b3 b6a7 b3b2 9 134 10 3401 684 a1b2 a7b6 b2b3 b6c7 b3c4 c7b6 c4b3 b6c7 b3c4 10 134 10 4455 989 a1b2 a7b6 b2c3 b6c7 c3c4 c7b6 c4c3 b6c7 c3c4 c7b6 10 134 10 4687 1090 a1b2 a7b6 b2c3 b6c7 c3c4 c7b6 c4d3 b6c7 d3c3 c7b6 11 134 10 6694 1678 a1b2 a7b6 b2c3 b6c7 c3d3 c7b6 d3c3 b6c7 c3d3 c7b6 d3c3 11 134 10 7128 1852 a1b2 a7b6 b2c3 b6c7 c3d3 c7b6 d3c3 b6c7 c3d3 c7b6 d3c3 12 134 10 8173 2267 a1b2 a7b6 b2c3 b6c7 c3c4 c7d7 c4b5 d7e7 b5a5 e7f7 a5b4 f7f6 12 134 10 8730 2510 a1b2 a7b6 b2c3 b6c7 c3d3 c7b6 d3e3 b6c7 e3d3 c7b6 d3e3 b6c7 13 134 11 14822 4470 a1b2 a7b6 b2c3 b6c7 c3d3 c7b6 d3c4 b6a6 c4d3 a6b6 d3c4 b6a6 c4d3 13 134 11 15529 4791 a1b2 a7b6 b2c3 b6c7 c3d3 c7b6 d3c4 b6a6 c4d3 a6b6 d3c4 b6a6 c4d3 14 134 11 20007 6727 a1b2 a7b6 b2b3 b6c7 b3c4 c7d7 c4b5 d7e7 b5a5 e7f6 a5b4 f6f7 a4a5 f7f6 14 134 11 21167 7273 a1b2 a7b6 b2c3 b6c7 c3d3 c7b6 d3e3 b6c7 e3d3 c7b6 d3e3 b6c7 e3d3 15 134 12 30722 10674 a1b2 a7b6 b2c3 b6c7 c3c4 c7d7 c4b5 d7e7 b5a5 e7f6 a5b4 f6e7 a4a5 e7f6 b4c3 15 134 12 32121 11418 a1b2 a7b6 b2c3 b6c7 c3d3 c7b6 d3e3 b6c7 e3d3 c7b6 d3e3 b6c7 e3d3 16 134 14 47086 17036 a1b2 a7b6 b2c3 b6c7 c3d2 c7b6 d2c3 b6c7 c3d2 c7b6 d2c3 16 134 14 48509 17742 a1b2 a7b6 b2c3 b6c7 c3c4 c7b6 c4d3 b6c7 d3e3 c7b6 e3f3 b6c7 f3e3 c7b6 e3f3 b6c7 17 134 16 74849 27081 a1b2 a7b6 b2c3 b6c7 c3c4 c7b6 c4d3 b6c7 d3c3 c7b6 c3c4 b6a6 c4d3 a6b7 d3c2 b7c7 c2b3 17 134 16 76243 27820 a1b2 a7b6 b2c3 b6c7 c3c4 c7b6 c4d3 b6c7 d3e3 c7d7 e3d3 d7e7 d3e3 e7f6 e3d3 f6g6 d3e3 18 134 30 254135 102133 a1b2 a7a8 b2b3 a8a7 b3c3 a7b7 c3c4 b7b6 c4b3 b6c7 b3c4 c7b6 c4b3 b6c7 b3c4 c7b6 18 204 39 355807 140693 a1b1 a7b7 b1c1 b7c7 c1d2 c7c8 d2d3 c8c7 d3c3 c7b7 c3c4 b7c7 c4d3 c7b6 d3c4 b6a6 c4d3 a6b6 18 204 39 355807 140711 a1b1 a7b7 b1c1 b7c7 c1d2 c7c8 d2d3 c8c7 d3c3 c7b7 c3c4 b7c7 c4d3 c7b6 d3c4 b6a6 c4d3 a6b6 19 204 39 360756 143214 a1b1 a7b7 b1c1 b7c7 c1d2 c7c8 d2d3 c8c7 d3e3 c7d7 e3d3 d7c7 d3e3 c7d7 e3d3 d7c7 19 204 42 390390 155488 a1b1 a7b7 b1c2 b7b8 c2b3 b8a7 b3c4 a7b6 c4d3 b6c7 d3c4 c7b6 c4d3 b6c7 d3c4 c7b6 20 224 57 567340 219288 a1b1 a7b7 b1c1 b7c7 c1d1 c7d7 d1c2 d7c7 c2d3 c7b6 d3e3 b6c7 e3d3 c7b6 d3e3 b6c7 e3d3 20 224 58 575819 223076 a1b1 a7b7 b1c2 b7b8 c2b3 b8a7 b3c3 a7b7 c3b3 b7c7 b3c4 c7b6 c4c3 b6b7 c3b3 b7c7 b3c4 c7b6 c4c3 b6b7 21 235 78 809197 307066 a1b1 a7b7 b1c1 b7c7 c1d1 c7d7 d1d2 d7c8 d2d3 c8c7 d3e3 c7d7 e3d2 d7c8 d2d3 c8c7 d3e3 c7d7 e3d2 21 235 79 822059 312717 a1b1 a7b7 b1c1 b7c7 c1d2 c7c8 d2d3 c8c7 d3e3 c7d7 e3d3 d7c7 d3e3 c7d7 e3d3 d7c7 22 235 108 1178530 449698 a1b1 a7b7 b1c1 b7c7 c1d1 c7d7 d1d2 d7c8 d2d3 c8c7 d3e3 c7d7 e3d2 d7c8 d2d3 c8c7 d3e3 c7d7 e3d2 22 235 184 2103374 781117 a1b1 a7b7 b1c1 b7c7 c1d2 c7c8 d2d3 c8c7 d3c3 c7b7 c3b3 b7c7 b3c4 c7b6 c4d3 b6c7 d3c3 c7b7 c3b3 b7c7 b3c4 c7b6 23 224 297 3388429 1204337 a1b1 a7b7 b1c1 b7c7 c1d2 c7c8 d2d3 c8c7 d3c4 c7b6 c4d3 b6c7 d3c4 c7b6 c4d3 b6c7 23 224 342 3790915 1293264 a1b1 a7b7 b1c1 b7c7 c1d2 c7c8 d2d3 c8c7 d3e3 c7d7 e3d2 d7c8 d2d3 c8c7 d3e3 c7d7 e3d2 d7c8 24 233 897 10257242 3579346 a1b1 a7b7 b1c1 b7c7 c1d1 c7d7 d1e2 d7d8 e2d3 d8c7 d3c4 c7b6 c4d3 b6c7 d3c4 c7b6 c4d3 b6c7 24 233 898 10269308 3585016 a1b1 a7b7 b1c1 b7c7 c1d1 c7d7 d1e2 d7d8 e2d3 d8c7 d3c4 c7b6 c4d3 b6c7 d3c4 c7b6 c4d3 b6c7 25 290 1117 12537335 4469470 a1b1 a7b7 b1c1 b7c7 c1d2 c7c8 d2d3 c8c7 d3c3 c7b7 c3b3 b7c7 b3c4 c7b6 c4d3 b6c7 d3c3 c7b7 c3b3 b7c7 b3c4 c7b6 c4d3 b6c7 25 290 1119 12551579 4475846 a1b1 a7b6 b1c2 b6b7 c2c3 b7b6 c3c4 b6a6 c4c3 a6b7 c3b3 b7c7 b3c4 c7b6 c4d3 b6c7 d3c3 c7b7 c3b3 b7c7 b3c4 c7b6 c4d3 b6c7 d3c3
Code: Select all
+ // this is because, even if no bestmove is found > alpha, insert something in TT with score alpha ...
+ if ( isFirstMove ) bestMove = &*it;
Result, Fine#70 is much much faster ! I am able to reach depth 38 in 2 minutes.
I'am starting a tournament to validate that ...