TT test positions

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

MOBMAT
Posts: 385
Joined: Sat Feb 04, 2017 11:57 pm
Location: USA

TT test positions

Post by MOBMAT »

I think everyone knows and uses Fine70

Code: Select all

8/k7/3p4/p2P1p2/P2P1P2/8/8/K7 w - -
to test their hash tables, it is a classic, but what other positions do you use as well?

I ran across this position:

Code: Select all

K7/P2k4/8/8/8/8/8/6N1 b
which provided a very interesting search output.
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
i7-6700K @ 4.00Ghz 32Gb, Win 10 Home, EGTBs on PCI SSD
Benchmark: Stockfish15.1 NNUE x64 bmi2 (nps): 1277K
User avatar
Kotlov
Posts: 266
Joined: Fri Jul 10, 2015 9:23 pm
Location: Russia

Re: TT test positions

Post by Kotlov »

MOBMAT wrote: Wed May 09, 2018 6:33 pm I think everyone knows and uses Fine70

Code: Select all

8/k7/3p4/p2P1p2/P2P1P2/8/8/K7 w - -
to test their hash tables, it is a classic,
I did not know it!
THX!
Eugene Kotlov
Hedgehog 2.1 64-bit coming soon...
User avatar
xr_a_y
Posts: 1871
Joined: Sat Nov 25, 2017 2:28 pm
Location: France

Re: TT test positions

Post by xr_a_y »

Here is Weini analysis results on this position (stopped it after 95 seconds). I am surprised (and I have the same problem with fine#70) about how much more nodes Weini is looking at.

Your engine looked at 90104 nodes at depth 20 (is it nodes+qnodes, position copy, make moves count ?)

Weini at depth 20, looked at 4335701 nodes (this means nodes+qnodes) (and did 405574 table hits)

TT size is

Code: Select all

#INFO    - 2018-05-10 11:40:57-683: Adapted TT size 8388608
#INFO    - 2018-05-10 11:40:57-683: Size of TT 256Mo
Is it something related to a TT issue or some aggresive pruning I don't get yet ?

Code: Select all

depth score(cp) time(centisec) nodes tbhits pv
1 -406 0 2 0	d7e6 
1 -396 0 6 0	d7d6 
1 -396 0 32 0	d7d6 
2 -368 0 183 14	d7d6 a8b7 
2 -368 0 219 16	d7d6 a8b7 
3 -422 0 510 32	d7c6 g1e2 c6d5 
3 -422 0 522 37	d7c6 g1e2 c6d5 
4 -1260 0 635 59	d7d6 a8b7 d6e5 a7a8=Q 
4 -428 0 1773 167	d7c7 g1e2 c7c6 a8b8 
4 -1250 0 1852 177	d7c6 a8b8 c6d6 a7a8=Q 
4 -442 0 1963 191	d7c7 g1e2 c7c6 a8b8 
4 -429 0 2126 218	d7c7 g1e2 c7c6 a8b8 
5 -442 0 2182 238	d7c7 g1e2 c7c6 a8b8 c6d6 
5 -436 0 2211 246	d7c8 g1f3 c8c7 f3e5 c7d6 
5 -436 0 2305 263	d7c8 g1f3 c8c7 f3e5 c7d6 
6 -426 0 3375 333	d7c8 g1e2 c8c7 e2d4 c7c8 d4e2 
6 -426 0 4957 475	d7c8 g1f3 c8c7 f3d4 c7c8 d4e2 
7 -457 0 5009 491	d7c8 g1f3 c8c7 f3d4 c7c8 d4e2 c8c7 
7 -445 0 5948 581	d7c7 g1e2 c7c8 e2c3 c8c7 c3e4 c7c6 
7 -445 0 6504 676	d7c7 g1e2 c7c8 e2c3 c8c7 c3e4 c7c6 
8 -449 0 9541 1005	d7c7 g1f3 c7c8 f3e5 c8c7 e5d3 c7c6 a8b8 
8 -449 0 11120 1352	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c6 a8b8 
9 -449 0 11201 1372	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c6 a8b8 c6d5 
9 -449 0 12740 1651	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c8 d3f4 c8c7 
10 -449 1 17956 2611	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 
10 -449 1 25732 3998	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 
11 -449 1 25801 4017	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 
11 -449 2 39422 6115	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 
12 -449 3 50661 7708	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 d3f4 
12 -449 6 102663 12753	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 d3f4 
13 -449 6 102797 12782	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 d3f4 c8c7 
13 -449 11 167222 19265	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 d3f4 c8c7 
14 -449 12 187577 21564	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 d3f4 
14 -449 24 356203 37586	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 
15 -449 24 356270 37625	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 
15 -449 34 507369 52505	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 d3f4 
16 -449 36 542445 55586	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 d3f4 
16 -449 61 909723 90138	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 d3f4 
17 -449 61 909837 90152	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 d3f4 
17 -449 74 1113653 110253	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 d3f4 
18 -449 83 1254183 124391	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 d3f4 
18 -449 133 1998902 192534	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 d3f4 c8c7 
19 -449 133 1998995 192566	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 
19 -449 173 2649004 254047	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 d3f4 
20 -449 184 2829709 269067	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 d3f4 
20 -449 285 4335701 405574	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 d3f4 
21 -449 285 4335789 405596	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 d3f4 
21 -449 340 5231056 481662	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 d3f4 
22 -449 370 5727049 520112	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 d3f4 
22 -449 545 8557522 738237	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 d3f4 
23 -449 545 8558649 738448	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 
23 -449 699 11172997 915829	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 d3f4 
24 -449 732 11769910 948922	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 d3f4 
24 -449 1040 17049479 1346992	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 d3f4 
25 -449 1040 17054630 1347613	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 d3f4 
25 -449 1295 21533197 1542519	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 d3f4 
26 -449 1384 23197372 1624154	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 d3f4 
26 -449 1914 33569831 2438000	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 d3f4 
27 -449 1917 33635414 2443150	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 d3f4 
27 -449 2592 46397565 3073000	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 d3f4 
28 -449 2615 46852342 3082394	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 d3f4 
28 -449 3741 69362033 4797837	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 d3f4 
29 -449 3745 69425141 4799850	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 d3f4 
29 -449 4446 81979649 5166878	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 d3f4 
30 -449 4833 89507931 5524686	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 d3f4 c8c7 
30 -449 6960 130636030 7287504	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 d3f4 
31 -449 6960 130654052 7287908	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 d3f4 
31 -449 9473 180896355 9227783	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 d3f4 
32 -449 9585 183165875 9263565	d7c7 g1e2 c7c8 e2f4 c8c7 f4d3 c7c8 d3f4 c8c7 f4d3 c7c8 d3f4 
MOBMAT
Posts: 385
Joined: Sat Feb 04, 2017 11:57 pm
Location: USA

Re: TT test positions

Post by MOBMAT »

xr_a_y wrote: Thu May 10, 2018 11:52 am Your engine looked at 90104 nodes at depth 20 (is it nodes+qnodes, position copy, make moves count ?)
I recently changed how I count Nodes, but I think this test was a total of nodes+qnodes. Not many qnodes here since there aren't captures involved.

you scores are similar to mine but you didn't let it search out to find the draw.

In Fine70, the point is to find the correct move (Kb1) after 20 ply or so. it is a win in 32 moves (64ply).

I didn't play out the test position to see why it is draw, but it probably is 3-fold considering there is only a Knight for white to move around. Others can comment, but you might have a TT problem somewhere. That is the point of my thread, to find good positions that exercise the TT to insure the code is working (or still working) correctly. 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 a sample output for Fine70. It was done with a test engine with no black magic (no NULL move, no LMR, etc). A good TT should find similar results. Note the "find" of the correct move at ply 21. that is the success. I stopped the search but eventually it finds a promotion and the score jumps way up, then after that it is a race to find the mate in 32. The eval is exceptional simple, I use this code to test ideas and try to keep everything very simple to avoid mistakes. A mature program will get deeper, faster.

Code: Select all

  1          3    :00   +1.26  a1b2
  2         13    :00   +1.26  a1b2
  3         47    :00   +1.30  a1b2
  4        109    :00   +1.30  a1b2
  5        227    :00   +1.32  a1b2
  6        402    :00   +1.32  a1b2
  7        687    :00   +1.32  a1b2
  8       1154    :00   +1.31  a1b2
  9       1666    :00   +1.31  a1b2
 10       2238    :00   +1.31  a1b2
 11       3380    :00   +1.31  a1b2
 12       4504    :00   +1.31  a1b2
 13       6583    :00   +1.32  a1b2
 14       8914    :00   +1.31  a1b2
 15      11307    :00   +1.31  a1b2
 16      17012    :00   +1.31  a1b2
 17      19526    :00   +1.31  a1b2
 18      21449    :00   +1.31  a1b2
 19      28257    :00   +1.32  a1b2
 20      40726    :00   +1.32  a1b2
 21      81395    :00   +2.49  a1b1
 22      91388    :00   +1.32  a1b1
 23     115838    :00   +1.33  a1b1
 24     150183    :00   +1.32  a1b1
 25     179342    :00   +2.53  a1b1
 26     212864    :00   +2.53  a1b1
 27     278912    :00   +2.56  a1b1
 28     323035    :00   +2.57  a1b1
 29     378978    :00   +2.57  a1b1
 30     436232    :00   +2.57  a1b1
 31     571703    :00   +2.57  a1b1
 32     795842    :00   +2.57  a1b1
 33    1291165    :00   +2.56  a1b1
 34    1949456    :00   +2.56  a1b1
 35    2350394    :00   +2.56  a1b1
 36    3232817    :01   +2.56  a1b1
 37    4210000    :01   +2.56  a1b1
 38    7004846    :02   +2.56  a1b1
 39   13459409    :04   +2.56  a1b1
 40   25195154    :08   +2.56  a1b1
 41   66642945    :21   +2.56  a1b1
i7-6700K @ 4.00Ghz 32Gb, Win 10 Home, EGTBs on PCI SSD
Benchmark: Stockfish15.1 NNUE x64 bmi2 (nps): 1277K
User avatar
xr_a_y
Posts: 1871
Joined: Sat Nov 25, 2017 2:28 pm
Location: France

Re: TT test positions

Post by xr_a_y »

you scores are similar to mine but you didn't let it search out to find the draw.
well that's the point, I cannot go deep because looking at too much nodes is too expensive, it would take hours ...
In Fine70, the point is to find the correct move (Kb1) after 20 ply or so. it is a win in 32 moves (64ply).
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.
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 ...
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?
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.

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 
MOBMAT
Posts: 385
Joined: Sat Feb 04, 2017 11:57 pm
Location: USA

Re: TT test positions

Post by MOBMAT »

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.
Why 32 bytes? that seems like a lot. Here is my structure.

Code: Select all

struct TTMAIN
	{
	ZORB key;
	MSCORE Value;	// the score
	PMOVE Move;		// packed move;
	I8 Depth;		// needs to be negative for Qsearch
	U8 Flag;		// the type of node
	};
ZORB is a U64
MSCORE is I16
Packed, this takes up 14 bytes. You can over double the amount of entries in your HT if you optimize the size of what you are storing. That being said, I don't think the amount of entries is the issue. Have you tried going back to basics and only implementing a "always replace" scheme. What kind of results do you get? My test run in the previous post was done with an "always replace" scheme.
If you are seeing too many nodes, I would examine how you are using the return value from the hash. Do you do a hash lookup when you enter a new node and return based on cutoffs? If no cutoff, is the move from the hash (if present) used as the first move you try?
i7-6700K @ 4.00Ghz 32Gb, Win 10 Home, EGTBs on PCI SSD
Benchmark: Stockfish15.1 NNUE x64 bmi2 (nps): 1277K
Dann Corbit
Posts: 12537
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: TT test positions

Post by Dann Corbit »

xr_a_y wrote: Thu May 10, 2018 7:12 pm {snip}
Here is Fine#70 results (good move found in 0.4sec, but after depth 25 and above it takes ages to compute):
Try a bigger pawn hash.
F:\project\dcorbit\Stockfish-master\src>stockfish-x64-mingw.exe
Stockfish 090518 64 POPCNT by T. Romstad, M. Costalba, J. Kiiski, G. Linscott
setoption name SyzygyPath value c:\chess\syzygy;
info string Found 510 tablebases
bench 4096 11 180000 q:\fine70.epd movetime

Position: 1/1
info depth 1 seldepth 1 multipv 1 score cp 73 nodes 100 nps 7142 tbhits 0 time 14 pv a1b2
info depth 2 seldepth 2 multipv 1 score cp 89 nodes 49476 nps 3092250 tbhits 0 time 16 pv a1b2 a7b8
info depth 3 seldepth 3 multipv 1 score cp 156 nodes 121338 nps 6066900 tbhits 8 time 20 pv a1b1 a7b7 b1c1
info depth 4 seldepth 4 multipv 1 score cp 140 nodes 155223 nps 7055590 tbhits 14 time 22 pv a1b1 a7b7 b1c1 b7c7
info depth 5 seldepth 5 multipv 1 score cp 267 nodes 289319 nps 10332821 tbhits 68 time 28 pv a1b1 a7b7 b1c1 b7a6 c1d2
info depth 6 seldepth 6 multipv 1 score cp 295 nodes 387360 nps 12105000 tbhits 90 time 32 pv a1b1 a7b7 b1c1 b7c7 c1d1 c7d8
info depth 7 seldepth 7 multipv 1 score cp 331 nodes 487653 nps 13179810 tbhits 117 time 37 pv a1b1 a7b7 b1c1 b7c7 c1d1 c7d8 d1c2
info depth 8 seldepth 8 multipv 1 score cp 397 nodes 667435 nps 15168977 tbhits 162 time 44 pv a1b1 a7b7 b1c1 b7c8 c1d2 c8c7 d2d1 c7d8
info depth 9 seldepth 9 multipv 1 score cp 415 nodes 760727 nps 16185680 tbhits 198 time 47 pv a1b1 a7b7 b1c1 b7c8 c1d2 c8c7 d2d3 c7d8 d3c4
info depth 10 seldepth 11 multipv 1 score cp 444 nodes 974214 nps 17712981 tbhits 214 time 55 pv a1b1 a7b7 b1c1 b7c8 c1d2 c8c7 d2d3 c7b6 d3e2 b6a7 e2e3
info depth 11 seldepth 13 multipv 1 score cp 445 nodes 1088039 nps 18441338 tbhits 225 time 59 pv a1b1 a7b7 b1c1 b7c8 c1d2 c8d8 d2c3 d8e7 c3c4 e7f6 c4b5 f6g7 b5a5
info depth 12 seldepth 14 multipv 1 score cp 465 nodes 1178661 nps 18708904 tbhits 275 time 63 pv a1b1 a7b7 b1c1 b7c8 c1d2 c8d8 d2c2 d8e7 c2d3 e7f6 d3c4 f6g7 c4b5 g7h6
info depth 13 seldepth 17 multipv 1 score cp 495 nodes 1288711 nps 19234492 tbhits 317 time 67 pv a1b1 a7b7 b1c1 b7c7 c1d1 c7d8 d1c2 d8e8 c2c3 e8f7 c3c4 f7g6 c4b5 g6h5 b5a5 h5g4 a5b6
info depth 14 seldepth 17 multipv 1 score cp 496 nodes 1387021 nps 19814585 tbhits 333 time 70 pv a1b1 a7b7 b1c1 b7c8 c1d2 c8d7 d2c3 d7c7 c3d3 c7b7 d3e2 b7c8 e2f2 c8d8 f2g3 d8e8 g3h4
info depth 15 seldepth 19 multipv 1 score cp 649 nodes 1600793 nps 20522987 tbhits 390 time 78 pv a1b1 a7b7 b1c1 b7c7 c1d1 c7d8 d1c2 d8c7 c2d3 c7b7 d3e2 b7a6 e2f2 a6a7 f2g3 a7b7 g3h4 b7b8 h4g3
info depth 16 seldepth 21 multipv 1 score cp 735 nodes 1760106 nps 21206096 tbhits 421 time 83 pv a1b1 a7b7 b1c1 b7c7 c1d1 c7d8 d1c2 d8d7 c2c3 d7e7 c3c4 e7f6 c4b5 f6g6 b5a5 g6h5 a5b6 h5g4 a4a5 g4f3 b6c6
info depth 17 seldepth 28 multipv 1 score cp 823 nodes 1884973 nps 21420147 tbhits 484 time 88 pv a1b1 a7b7 b1c1 b7c7 c1d1 c7d8 d1c2 d8c8 c2d2 c8d7 d2c3 d7e8 c3c4 e8f7 c4b5 f7g6 b5a5 g6h5 a5b5 h5g4 b5c6 g4h4 a4a5 h4g4 c6d6
info depth 18 seldepth 24 multipv 1 score cp 810 nodes 2067519 nps 22231387 tbhits 502 time 93 pv a1b1 a7b7 b1c1 b7b8 c1c2 b8b7 c2c3 b7b6 c3c4 b6a6 c4d3 a6a7 d3d2 a7a6 d2e3 a6b7 e3f3 b7c7 f3g3 c7d7 g3h4 d7e7 h4g5 e7d8
info depth 19 seldepth 25 multipv 1 score cp 858 nodes 2185785 nps 22533865 tbhits 504 time 97 pv a1b1 a7b6 b1c2 b6b7 c2c3 b7b6 c3c4 b6a6 c4d3 a6b6 d3e3 b6b7 e3e2 b7c8 e2f3 c8d7 f3g3 d7c7 g3h4 c7d7 h4g5
info depth 20 seldepth 29 multipv 1 score cp 973 nodes 2466950 nps 23055607 tbhits 557 time 107 pv a1b1 a7b7 b1c1 b7b8 c1c2 b8c8 c2d2 c8d7 d2c3 d7c7 c3d3 c7b7 d3e2 b7a7 e2f3 a7b7 f3g3 b7c7 g3h4 c7d7 h4g5 d7e8 g5f5 e8f7 f5g5
info depth 21 seldepth 25 multipv 1 score cp 973 nodes 2734071 nps 23368128 tbhits 597 time 117 pv a1b1 a7b7 b1c1 b7b8 c1c2 b8c8 c2d2 c8d7 d2c3 d7c7 c3d3 c7b7 d3e2 b7c7 e2f3 c7b8 f3f2 b8b7 f2g3 b7c7 g3h4 c7c8 h4g5 c8d8 g5f5
info depth 22 seldepth 34 multipv 1 score cp 1148 nodes 3867193 nps 24169956 tbhits 793 time 160 pv a1b1 a7b7 b1c1 b7b8 c1c2 b8c8 c2d2 c8c7 d2d3 c7d8 d3c4 d8c7 c4b5 c7c8 b5a5 c8b8 a5b6 b8c8 b6b5 c8d8 b5c6 d8e7 c6b6 e7f6 a4a5 f6g7
info depth 23 seldepth 35 multipv 1 score cp 1238 nodes 5011869 nps 24934671 tbhits 1002 time 201 pv a1b1 a7b8 b1c2 b8b7 c2c3 b7a7 c3d2 a7b8 d2e3 b8a7 e3f2 a7a8 f2g3 a8a7 g3h4 a7b7 h4g5 b7c7 g5g6 c7d7 g6f5 d7e7 f5g6 e7f8 g6f6 f8e8 f6e6 e8d8
info depth 24 seldepth 29 multipv 1 score cp 1238 nodes 5131118 nps 24908339 tbhits 1125 time 206 pv a1b1 a7b7 b1c1 b7b8 c1c2 b8c8 c2d2 c8d8 d2c3 d8c7 c3d3 c7b7 d3e2 b7b8 e2f2 b8c8 f2g3 c8c7 g3h3 c7d7 h3h4 d7e8 h4g5 e8f7 g5f5 f7g7 f5e6 g7h7 e6f6
info depth 25 seldepth 33 multipv 1 score cp 1238 nodes 5244169 nps 24853881 tbhits 1252 time 211 pv a1b1 a7b7 b1c1 b7b8 c1c2 b8c8 c2d2 c8d8 d2c3 d8c7 c3d3 c7b7 d3e2 b7b8 e2f2 b8c8 f2g3 c8c7 g3h3 c7c8 h3h4 c8d7 h4h5 d7e7 h5g6 e7e8 g6f5 e8e7 f5g6 e7e8 f4f5 e8f8 g6f6
info depth 26 seldepth 35 multipv 1 score cp 1238 nodes 5311528 nps 24936751 tbhits 1289 time 213 pv a1b1 a7b8 b1c2 b8c8 c2d2 c8d8 d2c3 d8c7 c3d3 c7b7 d3e2 b7b8 e2f2 b8c8 f2g3 c8c7 g3h3 c7d7 h3h4 d7e7 h4g5 e7f7 g5f5 f7g7 f5e6 g7h7 e6d6 h7g7 d6e7 g7g6 d5d6 g6f5 d6d7 f5g4 e7e6
info depth 27 seldepth 44 multipv 1 score cp 1238 nodes 6004808 nps 25020033 tbhits 1647 time 240 pv a1b1 a7b8 b1c2 b8b7 c2c1 b7c7 c1d1 c7d8 d1c2 d8c8 c2d2 c8d8 d2c3 d8c7 c3d3 c7b7 d3e2 b7c8 e2f2 c8d8 f2g3 d8e8 g3h4 e8f8 h4h5 f8g7 h5g5 g7g8 g5f6 g8h7 f6f5 h7h6 f5e6 h6h5 f4f5 h5g4 f5f6
info depth 28 seldepth 46 multipv 1 score cp 2243 nodes 7753683 nps 25092825 tbhits 2712 time 309 pv a1b1 a7a8 b1b2 a8a7 b2b3 a7b7 b3c3 b7a6 c3d3 a6b6 d3c2 b6b7 c2c1 b7c7 c1d1 c7b7 d1e2 b7b8 e2e3 b8c7 e3f2 c7d8 f2g3 d8e7 g3h4 e7f7 h4h5 f7g7 h5g5 g7h7 g5f5 h7h6 f5e6 h6g7 e6d6 g7f6 f4f5
info depth 29 seldepth 34 multipv 1 score cp 5458 nodes 8492856 nps 25126792 tbhits 2904 time 338 pv a1b1 a7a8 b1b2 a8a7 b2b3 a7b7 b3c3 b7a6 c3d3 a6b6 d3e2 b6a6 e2f2 a6b6 f2g2 b6b7 g2g3 b7b6 g3h3 b6b7 h3h4 b7a6 h4h5 a6a7 h5g5 a7b7 g5g6 b7c7 g6f5 c7b6 f5e6 b6a7 e6f6
info depth 30 seldepth 44 multipv 1 score cp 13230 nodes 11009555 nps 25723259 tbhits 3582 time 428 pv a1b1 a7a8 b1b2 a8a7 b2b3 a7b7 b3c3 b7b6 c3d2 b6c7 d2d3 c7b7 d3e3 b7c8 e3f2 c8d8 f2g3 d8d7 g3h4 d7e7 h4h5 e7f6 h5h6 f6e7 h6g7 e7d8 g7g6 d8c8 g6f6 c8d8 f6g5 d8c8 g5h4 c8b8 h4g3 b8b7 g3h4 b7c8
info depth 31 seldepth 48 multipv 1 score cp 13250 nodes 11679742 nps 25897432 tbhits 3990 time 451 pv a1b1 a7a8 b1b2 a8a7 b2b3 a7b7 b3c3 b7b6 c3d2 b6c7 d2d3 c7b6 d3e3 b6c7 e3f3 c7c8 f3f2 c8b7 f2g3 b7b6 g3h3 b6c7 h3h4 c7c8 h4h5 c8c7 h5g5 c7c8 g5h6 c8d7 h6g6 d7c8 g6f6 c8b7
info depth 32 seldepth 42 multipv 1 score cp 13255 nodes 11992199 nps 25901077 tbhits 4053 time 463 pv a1b1 a7a8 b1b2 a8a7 b2b3 a7b7 b3c3 b7b6 c3c4 b6a6 c4d3 a6b6 d3e3 b6a7 e3f3 a7a6 f3f2 a6b7 f2g3 b7b6 g3h3 b6b7 h3h4 b7c8 h4h5 c8d8 h5g5 d8c8 g5g6 c8d7 g6f6 d7e8 f6f5 e8f7 f5g5 f7f8 g5f6
info depth 33 seldepth 42 multipv 1 score cp 13250 nodes 12163227 nps 25879206 tbhits 4066 time 470 pv a1b1 a7a8 b1b2 a8a7 b2b3 a7a6 b3c2 a6b7 c2c1 b7c7 c1d1 c7d7 d1c2 d7c8 c2d2 c8c7 d2d3 c7b7 d3e2 b7b6 e2e3 b6c7 e3f2 c7b7 f2f3 b7c7 f3g3 c7d8 g3h4 d8e7 h4h5 e7f6 h5h6 f6e7 h6g7 e7d8 g7f6 d8e8 f6f5 e8f7 f5g5
info depth 34 seldepth 46 multipv 1 score cp 13254 nodes 12490491 nps 25913881 tbhits 4162 time 482 pv a1b1 a7a8 b1b2 a8a7 b2b3 a7b7 b3c3 b7b6 c3c4 b6a6 c4d3 a6a7 d3e3 a7b8 e3e2 b8a8 e2f2 a8a7 f2f3 a7a6 f3g3 a6b6 g3h3 b6b7 h3h4 b7c8 h4h5 c8d8 h5h6 d8d7 h6g6 d7e8 g6f5 e8f7 f5g5 f7g7 f4f5 g7f7
info depth 35 seldepth 58 multipv 1 score cp 13257 nodes 13099883 nps 25585708 tbhits 11253 time 512 pv a1b1 a7a8 b1b2 a8a7 b2b3 a7a6 b3c2 a6b7 c2c3 b7b6 c3c4 b6a6 c4d3 a6b6 d3e3 b6c7 e3f2 c7d7 f2g3 d7e7 g3h4 e7f6 h4h5 f6f7 h5g5 f7e7 g5f5 e7f7 f5g5 f7g7 f4f5 g7f7 f5f6 f7f8 f6f7 f8f7 g5f5 f7e7 f5g6 e7e8 g6f6 e8d7 f6f7 d7d8 f7e6 d8c7 e6e7 c7b6 e7d6 b6a6
info depth 36 seldepth 52 multipv 1 score cp 13259 nodes 13175419 nps 25533757 tbhits 11901 time 516 pv a1b1 a7a8 b1b2 a8a7 b2b3 a7a6 b3c2 a6b7 c2c3 b7b6 c3c4 b6a6 c4d3 a6b6 d3e2 b6c7 e2f2 c7d8 f2g3 d8e7 g3h4 e7f6 h4h5 f6f7 h5g5 f7g7 g5f5 g7f7 f5g5 f7g7 f4f5 g7f7 f5f6 f7f8 f6f7 f8f7 g5f5 f7e7 f5g6 e7e8 g6f6 e8d7 f6f7 d7d8 f7e6 d8c7 e6e7 c7b6 e7d6 b6a6
info depth 37 seldepth 52 multipv 1 score cp 13259 nodes 13253045 nps 25535732 tbhits 12095 time 519 pv a1b1 a7a8 b1b2 a8a7 b2b3 a7a6 b3c2 a6b7 c2c3 b7b6 c3c4 b6a6 c4d3 a6b6 d3e2 b6c7 e2f2 c7d7 f2g3 d7e7 g3h4 e7f6 h4h5 f6f7 h5g5 f7g7 g5f5 g7f7 f5g5 f7g7 f4f5 g7f7 f5f6 f7f8 f6f7 f8f7 g5f5 f7e7 f5g6 e7e8 g6f6 e8d7 f6f7 d7d8 f7e6 d8c7 e6e7 c7b6 e7d6 b6a6 d6c7 a6a7
info depth 38 seldepth 56 multipv 1 score cp 13259 nodes 13391438 nps 25556179 tbhits 12448 time 524 pv a1b1 a7a8 b1b2 a8a7 b2b3 a7a6 b3c2 a6b7 c2c3 b7b6 c3d2 b6c7 d2d3 c7b6 d3e2 b6c7 e2f2 c7d7 f2g3 d7e7 g3h4 e7f6 h4h5 f6f7 h5g5 f7g7 g5f5 g7f7 f5g5 f7g7 f4f5 g7f7 f5f6 f7f8 f6f7 f8f7 g5f5 f7e7 f5g6 e7e8 g6f6 e8d7 f6f7 d7d8 f7e6 d8c7 e6e7 c7b6 e7d6 b6a6 d6c7 a6a7 d5d6 a7a8
info depth 39 seldepth 58 multipv 1 score cp 13259 nodes 14576304 nps 25753187 tbhits 14226 time 566 pv a1b1 a7a8 b1b2 a8a7 b2b3 a7a6 b3c2 a6b7 c2c3 b7b6 c3d2 b6c7 d2d3 c7b6 d3e2 b6c7 e2f2 c7d7 f2g3 d7e7 g3h4 e7f6 h4h5 f6f7 h5g5 f7g7 g5f5 g7f7 f5g5 f7g7 f4f5 g7f7 f5f6 f7f8 f6f7 f8f7 g5f5 f7e7 f5g6 e7e8 g6f6 e8d7 f6f7 d7d8 f7e6 d8c7 e6e7 c7b6 e7d6 b6b7 d6c5 b7b8 d5d6 b8c8 d6d7 c8c7 d7d8q c7b7
info depth 40 seldepth 59 multipv 1 score cp 13259 nodes 14731026 nps 25753541 tbhits 15754 time 572 pv a1b1 a7a8 b1b2 a8a7 b2b3 a7a6 b3c2 a6b7 c2c3 b7b6 c3c4 b6a6 c4d3 a6b6 d3e2 b6c7 e2f2 c7d8 f2g3 d8e7 g3h4 e7f6 h4h5 f6f7 h5g5 f7g7 g5f5 g7f7 f5g5 f7g7 f4f5 g7f7 f5f6 f7f8 f6f7 f8f7 g5f5 f7e7 f5g6 e7e8 g6f6 e8d7 f6f7 d7d8 f7e6 d8c7 e6e7 c7b6 e7d6 b6b7 d6c5 b7b8 d5d6 b8c8 d6d7 c8c7 d7d8q c7b7
info depth 41 seldepth 59 multipv 1 score cp 13259 nodes 14915421 nps 25716243 tbhits 16979 time 580 pv a1b1 a7a8 b1b2 a8a7 b2b3 a7a6 b3c2 a6b7 c2c3 b7b6 c3d2 b6c7 d2d3 c7b7 d3e2 b7c7 e2f2 c7d7 f2g3 d7e7 g3h4 e7f6 h4h5 f6f7 h5g5 f7g7 g5f5 g7f7 f5g5 f7g7 f4f5 g7f7 f5f6 f7f8 f6f7 f8f7 g5f5 f7e7 f5g6 e7e8 g6f6 e8d7 f6f7 d7d8 f7e6 d8c7 e6e7 c7b6 e7d6 b6b7 d6c5 b7b8 d5d6 b8c8 d6d7 c8c7 d7d8q c7b7
info depth 42 seldepth 60 multipv 1 score cp 13259 nodes 15650894 nps 25826557 tbhits 20998 time 606 pv a1b1 a7a8 b1b2 a8a7 b2b3 a7a6 b3c2 a6b7 c2c3 b7b6 c3d2 b6c7 d2d3 c7b7 d3e2 b7c7 e2f2 c7d7 f2g3 d7e7 g3h4 e7f6 h4h5 f6f7 h5g5 f7g7 g5f5 g7f7 f5g5 f7g7 f4f5 g7f7 f5f6 f7f8 f6f7 f8f7 g5f5 f7e7 f5g6 e7e8 g6f6 e8d7 f6f7 d7d8 f7e6 d8c7 e6e7 c7b6 e7d6 b6b7 d6c5 b7b8 d5d6 b8c8 d6d7 c8c7 d7d8q c7b7
info depth 43 seldepth 66 multipv 1 score cp 13259 nodes 18800541 nps 26629661 tbhits 27619 time 706 pv a1b1 a7a8 b1b2 a8a7 b2b3 a7a6 b3c2 a6b7 c2c3 b7b6 c3d2 b6c7 d2d3 c7b7 d3e3 b7c8 e3f2 c8d8 f2g3 d8e7 g3h4 e7f6 h4h5 f6f7 h5g5 f7g7 g5f5 g7f7 f5g5 f7g7 f4f5 g7f7 f5f6 f7f8 g5g6 f8g8 f6f7 g8f8 g6f5 f8f7 f5e4 f7e7 e4d3 e7f7 d3c4 f7e7 c4b5 e7f7 b5a5 f7e8 a5b4 e8f7 a4a5 f7e7 a5a6 e7f7 a6a7 f7g6 a
info depth 44 seldepth 58 multipv 1 score cp 13260 nodes 29563478 nps 28048840 hashfull 0 tbhits 81510 time 1054 pv a1b1 a7a8 b1b2 a8a7 b2b3 a7a6 b3c2 a6b7 c2c3 b7b6 c3c4 b6a6 c4d3 a6b6 d3e3 b6c7 e3f3 c7d7 f3g3 d7e7 g3h4 e7f6 h4h5 f6f7 h5g5 f7g7 g5f5 g7f7 f5e4 f7e7 e4d3 e7e8 d3c4 e8d8 c4b5 d8c7 b5a5 c7b7 f4f5 b7c7 f5f6 c7d7 a5b6 d7e8 b6c6 e8f7 c6d6 f7g6 a4a5 g6f7
info depth 45 seldepth 61 multipv 1 score cp 13260 nodes 29860349 nps 28011584 hashfull 0 tbhits 88529 time 1066 pv a1b1 a7a8 b1b2 a8a7 b2b3 a7a6 b3c2 a6b7 c2c3 b7b6 c3c4 b6a6 c4d3 a6b6 d3e3 b6c7 e3f3 c7d8 f3g3 d8e7 g3h4 e7f6 h4h5 f6f7 h5g5 f7g7 g5f5 g7f7 f5e4 f7g7 e4d3 g7f6 d3c4 f6f5 c4b5 f5f6 b5a5 f6e7 f4f5 e7f7 a5b6 f7f6 b6c6 f6e7 f5f6 e7d8 c6d6 d8e8 a4a5 e8f8 f6f7 f8g7 f7f8q g7g6 a5a6 g6h
info depth 46 seldepth 56 multipv 1 score cp 13260 nodes 30393431 nps 27960838 hashfull 0 tbhits 94352 time 1087 pv a1b1 a7a8 b1b2 a8a7 b2b3 a7a6 b3c2 a6b7 c2c3 b7b6 c3c4 b6a6 c4d3 a6b6 d3e3 b6c7 e3f3 c7d8 f3g3 d8e7 g3h4 e7f6 h4h5 f6f7 h5g5 f7g7 g5f5 g7f7 f5e4 f7g7 e4d3 g7f6 d3c4 f6f5 c4b5 f5f6 b5a5 f6e7 f4f5 e7f7 a5b6 f7f6 b6c6 f6e7 f5f6 e7d8 c6d6 d8e8 a4a5 e8f8 f6f7 f8g7 f7f8q g7g6
info depth 47 seldepth 60 multipv 1 score cp 13260 nodes 32537219 nps 27691250 hashfull 0 tbhits 137199 time 1175 pv a1b1 a7a8 b1b2 a8a7 b2b3 a7a6 b3c2 a6b7 c2c3 b7b6 c3c4 b6a6 c4d3 a6b6 d3e3 b6c7 e3f3 c7d8 f3g3 d8e7 g3h4 e7f6 h4h5 f6f7 h5g5 f7g7 g5f5 g7f7 f5e4 f7g7 e4d3 g7f6 d3c4 f6f5 c4b5 f5f6 b5a5 f6e7 f4f5 e7f7 a5b6 f7f6 b6c6 f6e7 f5f6 e7d8 c6d6 d8e8 a4a5 e8f8 f6f7 f8g7 f7f8q g7f8
info depth 48 seldepth 61 multipv 1 score cp 13260 nodes 36509397 nps 27409457 hashfull 1 tbhits 189430 time 1332 pv a1b1 a7a8 b1b2 a8a7 b2b3 a7a6 b3c2 a6b7 c2c3 b7b6 c3c4 b6a6 c4d3 a6b6 d3e3 b6c7 e3f3 c7d8 f3g3 d8e7 g3h4 e7f6 h4h5 f6f7 h5g5 f7g7 g5f5 g7f7 f5e4 f7f6 e4d3 f6e7 d3c4 e7d8 c4b5 d8e8 b5a5 e8e7 a5b6 e7d7 f4f5 d7e8 b6c6 e8e7 f5f6 e7d8 c6d6 d8e8 a4a5 e8f8 f6f7 f8g7 f7f8q g7h7 a5a6 h7
info depth 49 seldepth 60 multipv 1 score cp 13260 nodes 36858504 nps 27383732 hashfull 1 tbhits 192018 time 1346 pv a1b1 a7a8 b1b2 a8a7 b2b3 a7a6 b3c2 a6b7 c2c3 b7b6 c3c4 b6a6 c4d3 a6b6 d3e3 b6c7 e3f3 c7d8 f3g3 d8e7 g3h4 e7f6 h4h5 f6f7 h5g5 f7g7 g5f5 g7f7 f5e4 f7f6 e4d3 f6e7 d3c4 e7d8 c4b5 d8e8 b5a5 e8e7 a5b6 e7d7 f4f5 d7e8 b6c6 e8e7 f5f6 e7d8 c6d6 d8e8 a4a5 e8f8 f6f7 f8g7 f7f8q g7h7 a5a6 h7
info depth 50 seldepth 62 multipv 1 score cp 13260 nodes 38196554 nps 27166823 hashfull 1 tbhits 211746 time 1406 pv a1b1 a7a8 b1b2 a8a7 b2b3 a7a6 b3c2 a6b7 c2c3 b7b6 c3c4 b6a6 c4d3 a6b6 d3e3 b6c7 e3f3 c7d8 f3g3 d8e7 g3h4 e7f6 h4h5 f6f7 h5g5 f7g7 g5f5 g7f7 f5e4 f7f6 e4d3 f6e7 d3c4 e7d8 c4b5 d8e8 b5a5 e8e7 a5b6 e7d7 f4f5 d7e8 b6c6 e8e7 f5f6 e7d8 c6d6 d8e8 a4a5 e8f8 f6f7 f8g7 f7f8q g7h7 a5a6 h7
info depth 51 seldepth 62 multipv 1 score cp 13260 nodes 41081049 nps 27134114 hashfull 1 tbhits 239923 time 1514 pv a1b1 a7a8 b1b2 a8a7 b2b3 a7a6 b3c2 a6b7 c2c3 b7b6 c3c4 b6a6 c4d3 a6b6 d3e3 b6c7 e3f3 c7d8 f3g3 d8e7 g3h4 e7f6 h4h5 f6f7 h5g5 f7g7 g5f5 g7f7 f5e4 f7g7 e4d3 g7f7 d3c4 f7e7 c4b5 e7e8 b5a5 e8e7 a5b6 e7d7 f4f5 d7e8 b6c6 e8e7 f5f6 e7d8 c6d6 d8e8 a4a5 e8f8 f6f7 f8g7 f7f8q g7f8
info depth 52 seldepth 66 multipv 1 score cp 13260 nodes 62315268 nps 27331257 hashfull 3 tbhits 432545 time 2280 pv a1b1 a7b7 b1c1 b7c7 c1d1 c7d7 d1c2 d7c8 c2d2 c8d8 d2c3 d8c7 c3d3 c7b7 d3e3 b7b6 e3f2 b6a6 f2g3 a6b7 g3h3 b7c8 h3h4 c8d8 h4g5 d8e7 g5f5 e7f7 f5e4 f7e7 e4d3 e7d8 d3c4 d8d7 c4b5 d7c7 b5a5 c7d8 a5b6 d8d7 a4a5 d7e8 b6c7 e8e7 c7c6 e7f7 c6d6 f7g6 f4f5 g6f6 a5a6 f6f7 f5f6 f7e8
info depth 53 seldepth 54 multipv 1 score cp 13260 nodes 62911831 nps 27305482 hashfull 3 tbhits 440614 time 2304 pv a1b1 a7b7 b1c1 b7c7 c1d1 c7d7 d1c2 d7c8 c2d2 c8d8 d2c3 d8c7 c3d3 c7b7 d3e3 b7b6 e3f2 b6c7 f2g3 c7b7 g3h3 b7c8 h3h4 c8d7 h4g5 d7e7 g5f5 e7f7 f5e4 f7g6 e4d3 g6f5 d3c4 f5f6 c4b5 f6f7 b5a5 f7e7 a5b6 e7d7 b6b7 d7e8 b7c7 e8e7 a4a5 e7f7 c7d6 f7g6 f4f5 g6f6 a5a6 f6f7
info depth 54 seldepth 66 multipv 1 score cp 13260 nodes 63216301 nps 27283686 hashfull 3 tbhits 446133 time 2317 pv a1b1 a7b7 b1c1 b7c7 c1d1 c7d7 d1c2 d7c8 c2d2 c8d8 d2c3 d8c7 c3d3 c7b6 d3e3 b6c7 e3f3 c7d8 f3g3 d8e7 g3h4 e7f6 h4h5 f6f7 h5g5 f7g7 g5f5 g7f7 f5e4 f7g7 e4d3 g7f7 d3c4 f7e7 c4b5 e7e8 b5a5 e8e7 a5b6 e7d7 f4f5 d7e8 b6c6 e8e7 f5f6 e7f7 c6d6 f7g6 a4a5 g6f7 a5a6 f7e8 a6a7 e8f7 a7a8r f7
info depth 55 seldepth 67 multipv 1 score cp 13260 nodes 72360936 nps 27275136 hashfull 3 tbhits 548311 time 2653 pv a1b1 a7b7 b1c1 b7c7 c1d1 c7d7 d1c2 d7c8 c2d2 c8d8 d2c3 d8c7 c3d3 c7b6 d3e3 b6c7 e3f3 c7d8 f3g3 d8e7 g3h4 e7f6 h4h5 f6f7 h5g5 f7g7 g5f5 g7f7 f5e4 f7g7 e4d3 g7f7 d3c4 f7e7 c4b5 e7e8 b5a5 e8e7 a5b6 e7d7 f4f5 d7e8 b6c6 e8e7 f5f6 e7f7 c6d6 f7g6 a4a5 g6f7 a5a6 f7e8 a6a7 e8f7 a7a8r f7
info depth 56 seldepth 66 multipv 1 score cp 13260 nodes 76237301 nps 27150035 hashfull 3 tbhits 629327 time 2808 pv a1b1 a7b7 b1c1 b7c7 c1d1 c7d7 d1c2 d7c8 c2d2 c8d8 d2c3 d8c7 c3d3 c7b6 d3e3 b6c7 e3f3 c7d8 f3g3 d8e7 g3h4 e7f6 h4h5 f6f7 h5g5 f7g7 g5f5 g7f7 f5e4 f7e7 e4d3 e7f7 d3c4 f7f6 c4b5 f6f7 b5a5 f7e7 a5b6 e7d7 f4f5 d7e8 b6c6 e8e7 f5f6 e7f7 c6d6 f7g6 a4a5 g6f7 a5a6 f7e8 a6a7 e8f7 a7a8r f7
info depth 57 seldepth 58 multipv 1 score cp 13260 nodes 78721390 nps 26987106 hashfull 5 tbhits 707917 time 2917 pv a1b1 a7b7 b1c1 b7c7 c1d1 c7d7 d1c2 d7c8 c2d2 c8d8 d2c3 d8c7 c3d3 c7b6 d3e3 b6c7 e3f2 c7d8 f2g3 d8e7 g3h4 e7f6 h4h5 f6e7 h5g6 e7e8 g6f5 e8f7 f5e4 f7g6 e4d3 g6f5 d3c4 f5f6 c4b5 f6f7 b5a5 f7e7 a5b6 e7d7 f4f5 d7e8 b6c6 e8e7 f5f6 e7f7 c6d6 f7g6 a4a5 g6f7 a5a6 f7f6
info depth 58 currmove a1b1 currmovenumber 1
info depth 58 currmove a1b1 currmovenumber 1
info depth 58 currmove a1b1 currmovenumber 1
info depth 58 seldepth 68 multipv 1 score mate 56 nodes 4589621234 nps 25497754 hashfull 64 tbhits 218668381 time 180001 pv a1b1
bestmove a1b1 ponder a7b7

===========================
Total time (ms) : 181372
Nodes searched : 4589621237
Nodes/second : 25305015
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
xr_a_y
Posts: 1871
Joined: Sat Nov 25, 2017 2:28 pm
Location: France

Re: TT test positions

Post by xr_a_y »

MOBMAT wrote: Thu May 10, 2018 8:23 pm
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.
Why 32 bytes? that seems like a lot. Here is my structure.

Code: Select all

struct TTMAIN
	{
	ZORB key;
	MSCORE Value;	// the score
	PMOVE Move;		// packed move;
	I8 Depth;		// needs to be negative for Qsearch
	U8 Flag;		// the type of node
	};
ZORB is a U64
MSCORE is I16
Packed, this takes up 14 bytes. You can over double the amount of entries in your HT if you optimize the size of what you are storing. That being said, I don't think the amount of entries is the issue. Have you tried going back to basics and only implementing a "always replace" scheme. What kind of results do you get? My test run in the previous post was done with an "always replace" scheme.
If you are seeing too many nodes, I would examine how you are using the return value from the hash. Do you do a hash lookup when you enter a new node and return based on cutoffs? If no cutoff, is the move from the hash (if present) used as the first move you try?
My Transposition struct is as follows :

Code: Select all

struct Transposition{
    float score; // 4bytes
    TTMOVETYPE move; // compressed move in unsigned short int // 2 bytes
    unsigned short int depth; // 2 bytes
    TT_Type            t_type; // an enum that is unsigned char
    TTHASHTYPE         hash; // a 8 bits zobrist hash
    TT_Aging           age; // an enum that is unsigned char
};
so 4+2+2+1+8+1 = 18bytes ... but sizeof return 32 ... OK I'll look at this ...

I always probe TT when entering a node but use the value in PV only if it is between alpha and beta and of course always use the TT move as first guest in move list.
AlvaroBegue
Posts: 931
Joined: Tue Mar 09, 2010 3:46 pm
Location: New York
Full name: Álvaro Begué (RuyDos)

Re: TT test positions

Post by AlvaroBegue »

Do you really need more than 1 byte for depth? In RuyDos the maximum depth is 64, and even if I had fractional values, I think I wouldn't use more than 8 bits.

There are only three possible values for the flag, so 8 bits is very wasteful. Also 8 bits for age is a lot. You can combine those two fields into a single field, whose upper 6 bits encode the age and whose lower 2 bits encode the flag.

If you do the changes suggested above, you'll be able to fit your entries in 16 bytes. Alternative, you could make the change below.

32 bits for score is overkill. RuyDos uses 14 bits. I expect most programs would use 16 bits (probably what I would use if I were starting the program now).
MOBMAT
Posts: 385
Joined: Sat Feb 04, 2017 11:57 pm
Location: USA

Re: TT test positions

Post by MOBMAT »

not sure what development environment you are working with, but the "sizeof()" in Visual Studio doesn't always give you what you think it does. This i because the compiler will "align" members in a structure to make them easier to access by the CPU (remember we are using 64-bit CPUs). here is a link to a MSDN write up:
https://msdn.microsoft.com/en-us/library/2e70t5y1.aspx:

To fix the problem, use the #pragma pack directive. See my code below. Don't forget the pack(pop) at the bottom or the compiler will complain.

You can also set a command line parameter to apply it globally, but I don't recommend it. You only need to "pack" structures in situations where you really care...the hash table entry, for example.

Also, order your structure members so they will help the packing effort. Don't put a byte member between two other non-byte members, put all the byte sized members together at the bottom. if you have and odd number of byte members, you will waste on byte if you pack(2), but you can always pack(1) to free up the remaining space.

Code: Select all

#pragma pack(push, 2)
struct TTMAIN
	{
	ZORB key;
	MSCORE Value;	// the score
	PMOVE Move;	// packed move;
	I8 Depth;		// needs to be negative for Qsearch
	U8 Flag;		// the type of node
	};
#pragma pack(pop)
i7-6700K @ 4.00Ghz 32Gb, Win 10 Home, EGTBs on PCI SSD
Benchmark: Stockfish15.1 NNUE x64 bmi2 (nps): 1277K