Stockfish extended trace logging

Discussion of chess software programming and technical issues.

Moderator: Ras

Lars
Posts: 12
Joined: Sat Jun 08, 2013 7:13 pm
Location: Denmark

Stockfish extended trace logging

Post by Lars »

I have made some changes to stockfish8 that will give you nice trace output in a logfile if you run it debug mode.
5 source files need to be changed.
Let me know if anybody is interested in this.
Some ideas borrowed from crafty and older stockfishes.

Code: Select all

Iteration 1

 +---+---+---+---+---+---+---+---+
 | r |   | b | q | k | b |   | r |
 +---+---+---+---+---+---+---+---+
 |   |   |   |   |   | p | p | p |
 +---+---+---+---+---+---+---+---+
 | p |   | n | p |   | n |   |   |
 +---+---+---+---+---+---+---+---+
 |   | p |   | N | p |   | B |   |
 +---+---+---+---+---+---+---+---+
 |   |   |   |   | P |   |   |   |
 +---+---+---+---+---+---+---+---+
 | N |   |   |   |   |   |   |   |
 +---+---+---+---+---+---+---+---+
 | P | P | P |   |   | P | P | P |
 +---+---+---+---+---+---+---+---+
 | R |   |   | Q | K | B |   | R |
 +---+---+---+---+---+---+---+---+

Fen: r1bqkb1r/5ppp/p1np1n2/1p1Np1B1/4P3/N7/PPP2PPP/R2QKB1R b KQkq - 0 9
Key: 3C50B5321C7D989F
Checkers: 
1 window/eval(Search2) = {-32001, 21, 32001} 
1 b4 d:1 [-32001,32001] Search3(1) PV n:4669
  2 window/eval(qSearch3) = {-32001, -34, 32001} 
  2 Nxf6+ d:0 [-34,32001] qSearch(1) PV n:4670
    3 gxf6 d:0 [-32001,34] qSearch(1) PV n:4671
      4 window/eval(qSearch3) = {-34, -134, 32001} 
Trying   1-1 b4 a-32001 s34 b32001 eval 34
1 Nxd5 d:1 [34,32001] Search2(2) PV n:4672
  2 window/eval(qSearch3) = {-35, -932, -34} 
  2 Bxd8 d:0 [-35,-34] qSearch(1) ALL n:4673
    3 window/eval(qSearch3) = {34, -1669, 35} 
Trying   1-2 Nxd5 a34 s-644 b35 eval 932
1 Nxe4 d:1 [34,32001] Search2(3) PV n:4674
  2 window/eval(qSearch3) = {-35, -567, -34} 
  2 Bxd8 d:0 [-35,-34] qSearch(1) ALL n:4675
    3 window/eval(qSearch3) = {34, -2438, 35} 
Trying   1-3 Nxe4 a34 s-1413 b35 eval 567
1 a5 d:1 [34,32001] Search2(4) PV n:4676
  2 window/eval(qSearch3) = {-35, 108, -34} 
Trying   1-4 a5 a34 s-108 b35 eval -108
1 g6 d:1 [34,32001] Search2(5) PV n:4677
  2 window/eval(qSearch3) = {-35, 269, -34} 
Trying   1-5 g6 a34 s-269 b35 eval -269
1 h6 d:1 [34,32001] Search2(6) PV n:4678
  2 window/eval(qSearch3) = {-35, -165, -34} 
  2 Nxf6+ d:0 [-35,-34] qSearch(1) ALL n:4679
    3 gxf6 d:0 [34,35] qSearch(1) ALL n:4680
      4 window/eval(qSearch3) = {-35, -72, -34} 
Trying   1-6 h6 a34 s37 b35 eval 165
1 h6 d:1 [34,32001] Research(6) PV n:4681
  2 window/eval(qSearch2) = {-32001, -165, -34} 
  2 Nxf6+ d:0 [-165,-34] qSearch(1) PV n:4682
    3 gxf6 d:0 [34,165] qSearch(1) PV n:4683
      4 window/eval(qSearch2) = {-165, -72, -34} 
    3 Qxf6 d:0 [72,165] qSearch(2) PV n:4684
      4 window/eval(qSearch3) = {-165, -258, -72} 
      4 Bxf6 d:0 [-165,-72] qSearch(1) PV n:4685
        5 window/eval(qSearch3) = {72, -2395, 165} 
    3 Ke7 d:0 [72,165] qSearch(3) PV n:4686
      4 window/eval(qSearch3) = {-165, 1485, -72} 
Research 1-6 h6 a34 s72 b32001 eval 165
If you define TRACETT (in search.cpp) you will also get transpostiontable info.

Code: Select all

TTget  Rf6 UPPER d6 v4544 ev3386 13683817015562512718
1 Rf6 d:6 [4506,4679] Search3(1) PV n:3062
  TTget  Re7 LOWER d5 v-4529 ev-4416 3306596708303384888
  2 Re7 d:5 [-4679,-4506] Search3(1) PV n:3063
    TTget  (none) UPPER d4 v4529 ev4264 4254367130390850745
    3 Nxf5 d:4 [4506,4679] Search3(1) PV n:3064
      TTget  Bxg1 LOWER d2 v-4246 ev-4917 14861681196110136598
      4 Bxg1 d:3 [-4679,-4506] Search3(1) PV n:3065
        TTget  (none) UPPER d0 v4246 ev2310 2873710320244200440
        5 Nxe7+ d:2 [4506,4679] Search3(1) PV n:3066
          TTget  Ke3 LOWER d0 v-4246 ev32002 10093934223202345992
          6 Ke3 d:2 [-4679,-4506] Search3(1) PV n:3067
            TTget  (none) UPPER d-1 v4246 ev3870 1912709082286675394
            7 Kxg3 d:1 [4506,4679] Search3(1) PV n:3068
              8 window/eval(qSearch3) = {-4679, -4559, -4506} 
              8 Kxd3 d:0 [-4559,-4506] qSearch(1) PV n:3069
                9 window/eval(qSearch3) = {4506, 3371, 4559} 
                9 Rxf3+ d:0 [4506,4559] qSearch(1) PV n:3070
                  10 Kxc2 d:0 [-4559,-4506] qSearch(1) PV n:3071
                    11 window/eval(qSearch3) = {4506, 2283, 4559} 
                    TTputZ (none) UPPER d-1 v3308 ev2283 807734113181735408
                  TTputY Kxc2 LOWER d0 v-3308 ev32002 18403808337117888031
                TTputZ (none) UPPER d-1 v4396 ev3371 12324638070140695776
              TTputY Kxd3 LOWER d0 v-4396 ev-4559 11655442668158082265
            7 Rxf7 d:1 [4506,4679] Search2(2) PV n:3072
              TTget  Kxd3 LOWER d-1 v-4015 ev-4766 5046704495673313082
              8 window/eval(qSearch2) = {-4507, -4015, -4506} 
            7 Rxc5 d:1 [4506,4679] Search2(3) PV n:3073
              8 window/eval(qSearch3) = {-4507, -3978, -4506} 
              TTputX (none) LOWER d-6 v-3978 ev-3978 14849356801797281778
            7 Nxg6 d:1 [4506,4679] Search2(4) PV n:3074
              8 window/eval(qSearch3) = {-4507, -3884, -4506} 
              TTputX (none) LOWER d-6 v-3884 ev-3884 13869437536136598819
            7 Bxg6 d:1 [4506,4679] Search2(5) PV n:3075
              8 window/eval(qSearch3) = {-4507, -4216, -4506} 
              TTputX (none) LOWER d-6 v-4216 ev-4216 10318345387301461124
            7 h5 d:1 [4506,4679] Pruned1(6) PV n:3076
            7 d6 d:1 [4506,4679] Search2(7) PV n:3077
              8 window/eval(qSearch3) = {-4507, -4000, -4506} 
              TTputX (none) LOWER d-6 v-4000 ev-4000 3313356660580011805
            7 h7 d:1 [4506,4679] Search2(8) PV n:3078
              8 window/eval(qSearch3) = {-4507, -4235, -4506} 
              TTputX (none) LOWER d-6 v-4235 ev-4235 2563032473985290953
            7 Nf5+ d:1 [4506,4679] Pruned5(9) PV n:3079
            7 Nc6 d:1 [4506,4679] Pruned1(10) PV n:3080
            7 Nc8 d:1 [4506,4679] Pruned1(11) PV n:3081
            7 Ng8 d:1 [4506,4679] Pruned1(12) PV n:3082
            7 Be1 d:1 [4506,4679] Pruned1(13) PV n:3083
Toadofsky
Posts: 27
Joined: Sat Dec 03, 2016 2:20 pm

Re: Stockfish extended trace logging

Post by Toadofsky »

I am interested. May I also publish these changes on my public repository?
Lars
Posts: 12
Joined: Sat Jun 08, 2013 7:13 pm
Location: Denmark

Re: Stockfish extended trace logging

Post by Lars »

Fine. You can do with it what you want!
I will need to know where to email a zip file of the sources.
Or where to upload the zip file.
Lars
Posts: 12
Joined: Sat Jun 08, 2013 7:13 pm
Location: Denmark

Re: Stockfish extended trace logging

Post by Lars »

Forgot to mention that I also made a small change to qsearch.
I found that stockfish sometimes loses the last moves of the PV.
Probably not a big deal?
User avatar
cdani
Posts: 2204
Joined: Sat Jan 18, 2014 10:24 am
Location: Andorra

Re: Stockfish extended trace logging

Post by cdani »

Lars wrote:Forgot to mention that I also made a small change to qsearch.
I found that stockfish sometimes loses the last moves of the PV.
Probably not a big deal?
I don't insert qsearch best line into pv in Andscacs. I doubt anyone's ever missed it.
syzygy
Posts: 5943
Joined: Tue Feb 28, 2012 11:56 pm

Re: Stockfish extended trace logging

Post by syzygy »

Lars wrote:Forgot to mention that I also made a small change to qsearch.
I found that stockfish sometimes loses the last moves of the PV.
Probably not a big deal?
I have tried to fix the incomplete PV problem some months ago:
http://tests.stockfishchess.org/tests/v ... 16ff64b418
but it lost Elo. My fix was slightly suboptmial, but Joerg later tested an improved fix, which again failed.