lantonov / asmFish

A continuation of the nice project asmFish by Mohammed Li. Latest version: 07.08.2019
https://lantonov.github.io/asmFish/
Other
118 stars 49 forks source link

fixed depth testing #77

Closed tthsqe12 closed 6 years ago

tthsqe12 commented 7 years ago

Let us collect results about fixed depth testing in this thread.

First we have lantonov's python script for comparing pgn's:

import chess
from chess import pgn

def pgn_compare():

### Enter the directory of your pgn file below. If it contains FENs,
### those should be full (6 items) otherwise an error is raised
    pgn = open("C:\\fishtest-master\\worker\\testing\\results.pgn")
    offsets = chess.pgn.scan_offsets(pgn)
    pairs = []

    for offset in offsets:
        pgn.seek(offset)
        game = chess.pgn.read_game(pgn)
        main = game.main_line()
        board = game.board()
        variation = board.variation_san(main)
        pairs.append(variation)

    for i in range(0, len(pairs[:-1]), 2):
        game_odd, game_even = pairs[i], pairs[i+1]
        if game_odd != game_even:

### The output is the numbers of the games in a pair that eventually differs [Round: "#"]
### If there is no differing pair, there is no output
            print(i+1, i+2)

if __name__ == '__main__':
    pgn_compare()

Next we have my python script for comparing best move/node count on random positions from startpos:

import re
import subprocess
from subprocess import Popen, PIPE, STDOUT
import random

## set these to whatever is needed for your system

armCmd = ['qemu-aarch64', '/home/me/asmFish/armFish/armFish']
asmCmd = ['./afish']
stockCmd = ['./stockfish']

## important! you must recompile stockfish with the following modification:
##  it needs to be able to respond to the "wait" command
##  so that the engine does not quit before the search is finished
#
# original uci.cpp around line 204:
#
#      else if (token == "setoption")  setoption(is);
#
#      // Additional custom non-UCI commands, useful for debugging
#      else if (token == "flip")       pos.flip();
#
# modified uci.cpp around line 204:
#
#      else if (token == "setoption")  setoption(is);
#
#      // Additional custom non-UCI commands, useful for debugging
#      else if (token == "wait")       Threads.main()->wait_for_search_finished();
#      else if (token == "flip")       pos.flip();

# run an engine to depth 15 on a sequence of moves
def GetData(cmd, mseq):
    p = Popen(cmd, stdout = PIPE, stdin = PIPE, stderr = PIPE)
    data = p.communicate(input = 'position startpos moves ' + ' '.join(mseq) + '\ngo depth 15\nwait\nquit\n')[0]
    nodes = '?'
    bestmove = '?'
    for line in data.split('\n'):
        tokens = line.split();
        for i in range(0, len(tokens) - 1):
            if tokens[i] == 'bestmove':
                bestmove = tokens[i + 1]
            if tokens[i] == 'nodes':
                nodes = tokens[i + 1]
    return [nodes, bestmove]

# generate a list of all legal moves given a sequence of moves from startpos
def GetLegalMoves(mseq):
    p = Popen(asmCmd, stdout = PIPE, stdin = PIPE, stderr = PIPE)
    data = p.communicate(input = 'position startpos moves ' + ' '.join(mseq) + '\nperft 1\nquit\n')[0]
    res = []
    for line in data.split('\n'):
        mo = re.search('=' , line, flags=0)
        if mo != None:
            break
        tokens = line.split(':');
        if len(tokens) > 1:
            res.append(tokens[0].strip())
    return res

# generate a random sequence of moves
def GetRandMoveList():
    mseq = []
    for i in range(random.randint(3, 100)):
        newlist = GetLegalMoves(mseq)
        if len(newlist) < 1:
            mseq = mseq[:-1] # avoid mate
            break
        mseq.append(random.choice(newlist))
    return mseq

for i in range(100):
    mseq = GetRandMoveList()
    print 'testing ',
    print(' '.join(mseq))
    armData = GetData(armCmd, mseq)
    asmData = GetData(asmCmd, mseq)
    stockData = GetData(stockCmd, mseq)
    print '  arm',
    print(armData)
    print '  asm',
    print(asmData)
    print 'stock',
    print(stockData)
    if asmData != stockData:
        print('FAILED')
        break
    elif asmData != armData:
        print('FAILED')
        break
    else:
        print('PASSED')
lantonov commented 7 years ago

stockfish-c3e964f vs asmFish-ff59ed7 (latest versions) 100 games depth 14 result +17 -18 =65, 14/50 different earliest difference

============24. Rc4 vs 24. Rxd7+
[Event "?"]
[Site "?"]
[Date "2017.08.14"]
[Round "97"]
[White "stockfish"]
[Black "asmfish"]
[Result "1/2-1/2"]
[FEN "r1bqkb1r/pppppppp/n4n2/8/2PP4/8/PP2PPPP/RNBQKBNR w KQkq - 1 1"]
[PlyCount "50"]
[SetUp "1"]
[TimeControl "inf"]

1. Nc3 {+0.94/14 0.25s} e6 {-0.75/14 0.23s} 2. e4 {+0.85/14 0.15s}
d5 {-0.91/14 0.17s} 3. e5 {+0.96/14 0.15s} Ne4 {-0.77/14 0.12s}
4. Nge2 {+1.01/14 0.21s} Nxc3 {-0.64/14 0.096s} 5. Nxc3 {+0.87/14 0.049s}
c5 {-0.77/14 0.078s} 6. cxd5 {+0.52/14 0.19s} cxd4 {-1.04/14 0.079s}
7. Bxa6 {+0.77/14 0.16s} dxc3 {-0.62/14 0.066s} 8. Bb5+ {+0.50/14 0.068s}
Bd7 {-0.59/14 0.046s} 9. dxe6 {+0.51/14 0.047s} fxe6 {-0.49/14 0.11s}
10. Qxd7+ {+0.49/14 0.14s} Qxd7 {-0.57/14 0.026s} 11. Bxd7+ {+0.51/14 0.099s}
Kxd7 {-0.57/14 0.019s} 12. bxc3 {+0.58/14 0.048s} Rc8 {-0.52/14 0.071s}
13. Ke2 {+0.52/14 0.14s} Rxc3 {-0.37/14 0.062s} 14. Be3 {+0.47/14 0.11s}
Bc5 {-0.52/14 0.17s} 15. Rad1+ {+0.42/14 0.099s} Ke7 {-0.37/14 0.062s}
16. Rc1 {+0.40/14 0.043s} Rxc1 {-0.32/14 0.030s} 17. Rxc1 {+0.32/14 0.008s}
Bxe3 {-0.32/14 0.007s} 18. Kxe3 {+0.31/14 0.029s} Rd8 {-0.32/14 0.011s}
19. g4 {+0.43/14 0.24s} b6 {-0.32/14 0.10s} 20. h4 {+0.39/14 0.12s}
Rd5 {-0.25/14 0.037s} 21. Rc7+ {+0.22/14 0.042s} Rd7 {-0.23/14 0.020s}
22. Rc8 {+0.20/14 0.047s} Rd5 {-0.23/14 0.007s} 23. Rc7+ {+0.20/14 0.053s}
Rd7 {-0.24/14 0.023s} 24. Rc4 {+0.17/14 0.064s} Rd1 {-0.26/14 0.068s}
25. Rc7+ {+0.18/14 0.016s} Rd7 {0.00/14 0s, Draw by 3-fold repetition} 1/2-1/2

[Event "?"]
[Site "?"]
[Date "2017.08.14"]
[Round "98"]
[White "asmfish"]
[Black "stockfish"]
[Result "1/2-1/2"]
[FEN "r1bqkb1r/pppppppp/n4n2/8/2PP4/8/PP2PPPP/RNBQKBNR w KQkq - 1 1"]
[PlyCount "70"]
[SetUp "1"]
[Termination "adjudication"]
[TimeControl "inf"]

1. Nc3 {+0.94/14 0.24s} e6 {-0.75/14 0.28s} 2. e4 {+0.85/14 0.12s}
d5 {-0.91/14 0.21s} 3. e5 {+0.96/14 0.15s} Ne4 {-0.77/14 0.18s}
4. Nge2 {+1.01/14 0.15s} Nxc3 {-0.64/14 0.12s} 5. Nxc3 {+0.87/14 0.048s}
c5 {-0.77/14 0.084s} 6. cxd5 {+0.52/14 0.14s} cxd4 {-1.04/14 0.14s}
7. Bxa6 {+0.77/14 0.10s} dxc3 {-0.62/14 0.079s} 8. Bb5+ {+0.50/14 0.071s}
Bd7 {-0.59/14 0.042s} 9. dxe6 {+0.51/14 0.032s} fxe6 {-0.49/14 0.12s}
10. Qxd7+ {+0.49/14 0.11s} Qxd7 {-0.57/14 0.033s} 11. Bxd7+ {+0.51/14 0.086s}
Kxd7 {-0.57/14 0.019s} 12. bxc3 {+0.58/14 0.048s} Rc8 {-0.52/14 0.097s}
13. Ke2 {+0.52/14 0.11s} Rxc3 {-0.37/14 0.083s} 14. Be3 {+0.47/14 0.096s}
Bc5 {-0.52/14 0.24s} 15. Rad1+ {+0.42/14 0.091s} Ke7 {-0.37/14 0.072s}
16. Rc1 {+0.40/14 0.043s} Rxc1 {-0.32/14 0.029s} 17. Rxc1 {+0.32/14 0.009s}
Bxe3 {-0.32/14 0.008s} 18. Kxe3 {+0.31/14 0.020s} Rd8 {-0.32/14 0.019s}
19. g4 {+0.43/14 0.20s} b6 {-0.32/14 0.12s} 20. h4 {+0.39/14 0.13s}
Rd5 {-0.25/14 0.044s} 21. Rc7+ {+0.22/14 0.042s} Rd7 {-0.23/14 0.024s}
22. Rc8 {+0.20/14 0.041s} Rd5 {-0.23/14 0.009s} 23. Rc7+ {+0.20/14 0.040s}
Rd7 {-0.22/14 0.026s} 24. Rxd7+ {+0.22/14 0.027s} Kxd7 {-0.16/14 0.021s}
25. f4 {+0.19/14 0.013s} g6 {-0.12/14 0.031s} 26. Kd4 {+0.10/14 0.067s}
a6 {-0.18/14 0.060s} 27. h5 {+0.26/14 0.036s} gxh5 {-0.22/14 0.028s}
28. gxh5 {+0.20/14 0.025s} Ke7 {-0.08/14 0.041s} 29. Ke4 {+0.08/14 0.015s}
Kf7 {-0.08/14 0.009s} 30. Kd4 {+0.08/14 0.004s} Ke8 {-0.08/14 0.006s}
31. Kd3 {+0.08/14 0.003s} Ke7 {-0.10/14 0.014s} 32. Ke3 {+0.08/14 0.004s}
Ke8 {-0.02/14 0.007s} 33. Kf3 {+0.08/14 0.005s} Ke7 {-0.08/14 0.004s}
34. Ke4 {+0.08/14 0.005s} Kf7 {-0.02/14 0.004s} 35. Ke3 {+0.08/14 0.002s}
Ke8 {-0.02/14 0.003s, Draw by adjudication} 1/2-1/2

stockfish-5837228 vs asmFish-ff59ed7 100 games depth 14 result +17 -22 =61, 24/50 different earliest difference

============20. Bd2 vs 20. a3
[Event "?"]
[Site "?"]
[Date "2017.08.14"]
[Round "33"]
[White "stockfish"]
[Black "asmfish"]
[Result "1/2-1/2"]
[FEN "r1bqkbnr/pppppppp/8/n7/6P1/8/PPPPPP1P/RNBQKBNR w KQkq - 1 1"]
[PlyCount "199"]
[SetUp "1"]
[Termination "adjudication"]
[TimeControl "inf"]

1. Nf3 {-0.20/14 0.35s} d5 {+0.31/14 0.34s} 2. Rg1 {-0.44/14 0.21s}
e6 {+0.30/14 0.20s} 3. d3 {-0.35/14 0.67s} c5 {+0.25/14 0.40s}
4. e4 {-0.45/14 0.33s} Nc6 {+0.44/14 0.34s} 5. exd5 {-0.50/14 0.40s}
exd5 {+0.66/14 0.33s} 6. Qe2+ {-0.63/14 0.51s} Be6 {+0.95/14 0.22s}
7. Nc3 {-1.00/14 0.51s} Nd4 {+1.01/14 0.16s} 8. Qd1 {-1.07/14 0.14s}
Ne7 {+0.95/14 0.10s} 9. Nxd4 {-0.93/14 0.17s} cxd4 {+0.80/14 0.068s}
10. Ne2 {-0.78/14 0.14s} Nc6 {+0.74/14 0.050s} 11. h3 {-0.80/14 0.074s}
Bc5 {+0.76/14 0.14s} 12. Rg3 {-0.83/14 0.38s} O-O {+0.66/14 0.22s}
13. Bg2 {-0.59/14 0.21s} Qh4 {+0.78/14 0.46s} 14. Kf1 {-0.39/14 0.56s}
Rae8 {+0.61/14 0.29s} 15. Kg1 {-0.33/14 0.33s} Qe7 {+0.50/14 0.24s}
16. Bd2 {-0.25/14 0.20s} Qc7 {+0.34/14 0.24s} 17. Bf4 {-0.29/14 0.38s}
Qd8 {+0.33/14 0.063s} 18. Bd2 {-0.44/14 0.28s} Bd6 {+0.33/14 0.027s}
19. Bf4 {-0.46/14 0.14s} Bc5 {+0.35/14 0.050s} 20. Bd2 {-0.47/14 0.087s}
Bd6 {+0.44/14 0.20s} 21. Bf4 {-0.43/14 0.028s} Be7 {+0.48/14 0.088s}
22. g5 {-0.57/14 0.15s} f6 {+0.60/14 0.026s} 23. h4 {-0.50/14 0.17s}
fxg5 {+0.60/14 0.021s} 24. hxg5 {-0.40/14 0.16s} g6 {+0.65/14 0.14s}
25. a3 {-0.60/14 0.22s} Qd7 {+0.67/14 0.13s} 26. b4 {-0.65/14 0.22s}
b5 {+0.70/14 0.38s} 27. Qf1 {-0.68/14 0.23s} Bd8 {+0.61/14 0.14s}
28. Re1 {-0.61/14 0.15s} Rf7 {+0.55/14 0.11s} 29. Bc1 {-0.58/14 0.14s}
Ref8 {+0.59/14 0.13s} 30. f3 {-0.96/14 0.16s} Bb6 {+0.93/14 0.085s}
31. Bd2 {-1.02/14 0.13s} Ne7 {+0.92/14 0.063s} 32. Nf4 {-0.74/14 0.025s}
Bf5 {+1.13/14 0.12s} 33. Ne2 {-1.27/14 0.18s} Be6 {+1.09/14 0.091s}
34. Nf4 {-1.12/14 0.047s} Bf5 {+0.99/14 0.011s} 35. Ne2 {-1.27/14 0.022s}
a6 {+0.98/14 0.048s} 36. f4 {-1.13/14 0.12s} Be6 {+1.04/14 0.053s}
37. Bh3 {-1.00/14 0.038s} Bxh3 {+1.07/14 0.048s} 38. Rxh3 {-0.88/14 0.062s}
Nf5 {+1.17/14 0.040s} 39. Rh2 {-0.87/14 0.064s} Re8 {+0.91/14 0.068s}
40. Qh3 {-0.84/14 0.085s} Rfe7 {+1.07/14 0.029s} 41. Qg4 {-0.71/14 0.076s}
Bc7 {+0.85/14 0.11s} 42. Rf1 {-0.81/14 0.15s} Qc6 {+0.68/14 0.098s}
43. Ng3 {-0.69/14 0.045s} Ne3 {+0.90/14 0.092s} 44. Bxe3 {-0.72/14 0.033s}
dxe3 {+0.77/14 0.040s} 45. Qf3 {-0.83/14 0.067s} Rd8 {+1.08/14 0.041s}
46. Re2 {-0.94/14 0.22s} Qd6 {+0.78/14 0.11s} 47. Ree1 {-1.05/14 0.11s}
Rf8 {+0.58/14 0.17s} 48. Ne2 {-0.94/14 0.086s} d4 {+1.01/14 0.11s}
49. c3 {-0.90/14 0.030s} dxc3 {+1.15/14 0.019s} 50. Nxc3 {-0.85/14 0.10s}
Rd8 {+0.90/14 0.15s} 51. Ne4 {-0.75/14 0.14s} Qxd3 {+1.19/14 0.099s}
52. Nf6+ {-1.30/14 0.12s} Kf8 {+1.16/14 0.062s} 53. Rd1 {-0.70/14 0.088s}
Qc4 {+1.19/14 0.062s} 54. Rd5 {-1.02/14 0.050s} e2 {+1.19/14 0.025s}
55. Re1 {-0.90/14 0.067s} Kg7 {+1.12/14 0.042s} 56. Rxd8 {-1.27/14 0.051s}
Bxd8 {+1.43/14 0.030s} 57. Kg2 {-1.43/14 0.035s} h5 {+1.48/14 0.037s}
58. Qd5 {-1.08/14 0.032s} Qxd5+ {+1.16/14 0.018s} 59. Nxd5 {-1.37/14 0.012s}
Rd7 {+1.39/14 0.017s} 60. Ne3 {-1.54/14 0.008s} Rd3 {+1.49/14 0.016s}
61. Rxe2 {-1.47/14 0.058s} Rxa3 {+1.57/14 0.014s} 62. Rd2 {-0.85/14 0.029s}
Be7 {+0.62/14 0.048s} 63. Nd5 {-0.54/14 0.048s} Kf7 {+0.42/14 0.018s}
64. Rc2 {-0.76/14 0.029s} Ke6 {+0.75/14 0.027s} 65. Nxe7 {-0.51/14 0.008s}
Kxe7 {+0.36/14 0.012s} 66. Rc6 {-0.57/14 0.015s} Kf7 {+0.34/14 0.009s}
67. Rf6+ {-0.17/14 0.031s} Kg7 {+0.26/14 0.008s} 68. Rb6 {-0.17/14 0.006s}
h4 {+0.21/14 0.020s} 69. Rb7+ {-0.08/14 0.012s} Kg8 {+0.16/14 0.005s}
70. Ra7 {-0.08/14 0.010s} h3+ {+0.16/14 0.009s} 71. Kh2 {-0.08/14 0.002s}
Kf8 {+0.37/14 0.011s} 72. Rb7 {-0.08/14 0.008s} Rf3 {+0.56/14 0.011s}
73. Rb6 {-0.52/14 0.027s} Kf7 {+0.56/14 0.003s} 74. Rf6+ {-0.63/14 0.035s}
Kg7 {+0.47/14 0.012s} 75. f5 {-0.24/14 0.044s} gxf5 {+0.15/14 0.020s}
76. Rxa6 {-0.08/14 0.016s} Rb3 {+0.08/14 0.020s} 77. Rb6 {-0.08/14 0.007s}
f4 {+0.40/14 0.020s} 78. Rxb5 {-0.40/14 0.048s} Kg6 {+0.63/14 0.038s}
79. Rc5 {-0.13/14 0.041s} Rg3 {+0.55/14 0.010s} 80. b5 {-0.19/14 0.021s}
Rb3 {+0.08/14 0.018s} 81. Re5 {-0.42/14 0.025s} Kh5 {+0.08/14 0.007s}
82. Rd5 {-0.26/14 0.008s} Re3 {+0.08/14 0.009s} 83. Rd2 {0.00/14 0.026s}
Rb3 {+0.08/14 0.005s} 84. Rd5 {0.00/14 0.003s} Kg6 {+0.04/14 0.005s}
85. Re5 {-0.08/14 0.010s} Re3 {0.00/14 0.013s} 86. Rxe3 {0.00/14 0.030s}
fxe3 {0.00/14 0.020s} 87. b6 {0.00/14 0.002s} e2 {0.00/14 0.008s}
88. b7 {0.00/14 0.014s} e1=Q {0.00/14 0.006s} 89. b8=Q {0.00/14 0.030s}
Qe2+ {0.00/14 0.014s} 90. Kxh3 {0.00/14 0.021s} Qf3+ {0.00/14 0.005s}
91. Kh4 {0.00/14 0.013s} Qh5+ {0.00/14 0.007s} 92. Kg3 {0.00/14 0.038s}
Qxg5+ {0.00/14 0.009s} 93. Kh3 {0.00/14 0.026s} Qe3+ {0.00/14 0.014s}
94. Kh2 {0.00/14 0.022s} Qd2+ {0.00/14 0.015s} 95. Kg3 {0.00/14 0.007s}
Qc3+ {0.00/14 0.012s} 96. Kh2 {0.00/14 0.032s} Qd2+ {0.00/14 0.005s}
97. Kg3 {0.00/14 0.001s} Qc3+ {0.00/14 0.001s} 98. Kh2 {0.00/14 0.005s}
Qc2+ {0.00/14 0.007s} 99. Kg3 {0.00/14 0.007s} Qf5 {0.00/14 0.005s}
100. Qg8+ {0.00/14 0.014s, Draw by adjudication} 1/2-1/2

[Event "?"]
[Site "?"]
[Date "2017.08.14"]
[Round "34"]
[White "asmfish"]
[Black "stockfish"]
[Result "1/2-1/2"]
[FEN "r1bqkbnr/pppppppp/8/n7/6P1/8/PPPPPP1P/RNBQKBNR w KQkq - 1 1"]
[PlyCount "113"]
[SetUp "1"]
[TimeControl "inf"]

1. Nf3 {-0.20/14 0.25s} d5 {+0.31/14 0.45s} 2. Rg1 {-0.44/14 0.17s}
e6 {+0.30/14 0.28s} 3. d3 {-0.35/14 0.57s} c5 {+0.25/14 0.54s}
4. e4 {-0.45/14 0.27s} Nc6 {+0.44/14 0.46s} 5. exd5 {-0.50/14 0.33s}
exd5 {+0.66/14 0.44s} 6. Qe2+ {-0.63/14 0.39s} Be6 {+0.95/14 0.29s}
7. Nc3 {-1.00/14 0.40s} Nd4 {+1.01/14 0.20s} 8. Qd1 {-1.07/14 0.092s}
Ne7 {+0.95/14 0.12s} 9. Nxd4 {-0.93/14 0.14s} cxd4 {+0.80/14 0.10s}
10. Ne2 {-0.78/14 0.11s} Nc6 {+0.74/14 0.071s} 11. h3 {-0.80/14 0.077s}
Bc5 {+0.76/14 0.14s} 12. Rg3 {-0.83/14 0.24s} O-O {+0.66/14 0.33s}
13. Bg2 {-0.59/14 0.22s} Qh4 {+0.78/14 0.66s} 14. Kf1 {-0.39/14 0.47s}
Rae8 {+0.61/14 0.33s} 15. Kg1 {-0.33/14 0.29s} Qe7 {+0.50/14 0.24s}
16. Bd2 {-0.25/14 0.21s} Qc7 {+0.34/14 0.28s} 17. Bf4 {-0.29/14 0.29s}
Qd8 {+0.33/14 0.054s} 18. Bd2 {-0.44/14 0.33s} Bd6 {+0.33/14 0.027s}
19. Bf4 {-0.46/14 0.11s} Bc5 {+0.35/14 0.051s} 20. a3 {-0.20/14 0.090s}
f6 {+0.41/14 0.39s} 21. b4 {-0.18/14 0.10s} Bb6 {+0.29/14 0.079s}
22. Bd2 {0.00/14 0.12s} a5 {+0.07/14 0.17s} 23. Nf4 {-0.22/14 0.20s}
Bf7 {+0.15/14 0.19s} 24. h4 {-0.01/14 0.15s} Bc7 {+0.05/14 0.15s}
25. h5 {-0.18/14 0.12s} axb4 {+0.33/14 0.26s} 26. axb4 {0.00/14 0.17s}
Nxb4 {0.00/14 0.21s} 27. Qb1 {-0.14/14 0.090s} Na6 {+0.12/14 0.12s}
28. Qxb7 {+0.04/14 0.054s} Nc5 {+0.04/14 0.088s} 29. Qb4 {0.00/14 0.10s}
Ne6 {+0.19/14 0.13s} 30. Nxe6 {-0.20/14 0.071s} Rxe6 {+0.40/14 0.17s}
31. Rh3 {-0.16/14 0.071s} h6 {+0.35/14 0.093s} 32. Bf3 {-0.33/14 0.22s}
Rc6 {+0.30/14 0.090s} 33. Qa4 {-0.37/14 0.19s} Qd7 {+0.30/14 0.12s}
34. Bd1 {-0.40/14 0.10s} Be6 {+0.34/14 0.15s} 35. Rh4 {-0.33/14 0.082s}
Rc8 {+0.39/14 0.25s} 36. Rb1 {-0.20/14 0.22s} Bb6 {+0.45/14 0.15s}
37. Bf4 {-0.32/14 0.13s} Bd8 {+0.32/14 0.35s} 38. Qxd4 {-0.17/14 0.099s}
f5 {+0.20/14 0.12s} 39. Rh2 {-0.24/14 0.064s} fxg4 {+0.37/14 0.18s}
40. Rg2 {0.00/14 0.10s} Bf6 {+0.39/14 0.15s} 41. Be5 {-0.35/14 0.049s}
Bxe5 {+0.35/14 0.020s} 42. Qxe5 {-0.27/14 0.073s} Qf7 {+0.56/14 0.11s}
43. Qd4 {-0.35/14 0.052s} Re8 {+0.43/14 0.13s} 44. c4 {-0.16/14 0.073s}
Rc7 {+0.16/14 0.078s} 45. Bxg4 {-0.08/14 0.039s} dxc4 {+0.08/14 0.17s}
46. Bxe6 {-0.15/14 0.071s} Qxe6 {+0.14/14 0.069s} 47. dxc4 {-0.08/14 0.050s}
Qxc4 {+0.08/14 0.050s} 48. Qxc4+ {-0.12/14 0.056s} Rxc4 {+0.08/14 0.011s}
49. Rg3 {-0.12/14 0.028s} Re7 {+0.08/14 0.071s} 50. Rb5 {-0.08/14 0.045s}
Rf4 {+0.08/14 0.016s} 51. Ra3 {0.00/14 0.044s} Re8 {0.00/14 0.13s}
52. f3 {-0.08/14 0.022s} Ref8 {0.00/14 0.017s} 53. Kg2 {-0.02/14 0.022s}
R8f5 {0.00/14 0.014s} 54. Raa5 {-0.07/14 0.033s} Rf8 {0.00/14 0.011s}
55. Ra3 {-0.05/14 0.057s} R8f5 {0.00/14 0.002s} 56. Raa5 {0.00/14 0.001s}
Rf8 {0.00/14 0.003s} 57. Ra3 {0.00/14 0s, Draw by 3-fold repetition} 1/2-1/2

stockfish-5837228 vs asmFish-a1df589 100 games depth 14 result +15 -16 =69, 16/50 different earliest difference

====32...Rfd8 vs Ra8
[Event "?"]
[Site "?"]
[Date "2017.08.14"]
[Round "57"]
[White "stockfish"]
[Black "asmfish"]
[Result "1-0"]
[FEN "rnbqkb1r/ppp1pppp/5n2/3p4/2P4P/8/PP1PPPP1/RNBQKBNR w KQkq - 1 1"]
[PlyCount "80"]
[SetUp "1"]
[Termination "adjudication"]
[TimeControl "inf"]

1. cxd5 {+0.15/14 0.18s} c6 {+0.14/14 0.18s} 2. Nc3 {-0.09/14 0.13s}
cxd5 {+0.16/14 0.074s} 3. d4 {-0.18/14 0.062s} Nc6 {+0.18/14 0.024s}
4. Nf3 {-0.27/14 0.19s} e6 {+0.18/14 0.11s} 5. e3 {-0.27/14 0.018s}
Bd6 {+0.24/14 0.028s} 6. Bd2 {-0.27/14 0.079s} O-O {+0.23/14 0.10s}
7. Nb5 {-0.27/14 0.17s} Bb8 {+0.49/14 0.18s} 8. Be2 {-0.39/14 0.057s}
a6 {+0.40/14 0.096s} 9. Nc3 {-0.33/14 0.028s} Re8 {+0.38/14 0.27s}
10. Kf1 {-0.40/14 0.52s} h6 {+0.46/14 0.41s} 11. Rc1 {-0.30/14 0.34s}
Bd7 {+0.35/14 0.27s} 12. Na4 {-0.37/14 0.12s} Bd6 {+0.33/14 0.093s}
13. Be1 {-0.39/14 0.16s} Ne4 {+0.22/14 0.24s} 14. Nd2 {-0.22/14 0.16s}
Ne7 {+0.43/14 0.13s} 15. Nxe4 {-0.21/14 0.062s} dxe4 {+0.30/14 0.090s}
16. Qb3 {-0.29/14 0.18s} Bc6 {+0.42/14 0.22s} 17. Nb6 {-0.27/14 0.14s}
Rb8 {+0.54/14 0.14s} 18. Ba5 {-0.20/14 0.071s} Bc7 {+0.47/14 0.17s}
19. g3 {-0.30/14 0.067s} Nd5 {+0.30/14 0.096s} 20. Nxd5 {-0.29/14 0.049s}
Bxa5 {+0.32/14 0.082s} 21. Nb4 {-0.08/14 0.12s} Bd7 {0.00/14 0.17s}
22. Kg2 {-0.09/14 0.23s} Qb6 {+0.09/14 0.070s} 23. a3 {-0.08/14 0.057s}
e5 {+0.13/14 0.12s} 24. Rhd1 {0.00/14 0.11s} Rbd8 {-0.06/14 0.16s}
25. d5 {0.00/14 0.062s} Bf5 {0.00/14 0.072s} 26. Qa4 {0.00/14 0.031s}
Rf8 {-0.41/14 0.15s} 27. Nxa6 {+0.69/14 0.045s} Qxb2 {-0.81/14 0.019s}
28. Rc2 {+1.04/14 0.029s} Qb6 {-0.62/14 0.014s} 29. Rc5 {+1.32/14 0.097s}
Qb2 {-0.51/14 0.025s} 30. Rc2 {+1.40/14 0.017s} Qb6 {-0.62/14 0.030s}
31. Nc5 {+1.23/14 0.071s} Rc8 {-0.78/14 0.059s} 32. Rdc1 {+1.14/14 0.18s}
Rfd8 {-1.19/14 0.097s} 33. g4 {+1.53/14 0.022s} Rxd5 {-1.07/14 0.027s}
34. gxf5 {+2.01/14 0.015s} Rdxc5 {-1.53/14 0.021s} 35. Rxc5 {+8.64/14 0.068s}
Rxc5 {-3.20/14 0.044s} 36. Qe8+ {+9.98/14 0.063s} Kh7 {-3.46/14 0.005s}
37. Rxc5 {+10.06/14 0.015s} Qxc5 {-3.50/14 0.006s} 38. Bh5 {+10.67/14 0.013s}
Qc6 {-4.08/14 0.013s} 39. Qf8 {+11.14/14 0.012s} Qf6 {-11.01/14 0.025s}
40. Bxf7 {+11.72/14 0.013s} Qxf7 {-11.19/14 0.011s, White wins by adjudication}
1-0

[Event "?"]
[Site "?"]
[Date "2017.08.14"]
[Round "58"]
[White "asmfish"]
[Black "stockfish"]
[Result "1-0"]
[FEN "rnbqkb1r/ppp1pppp/5n2/3p4/2P4P/8/PP1PPPP1/RNBQKBNR w KQkq - 1 1"]
[PlyCount "132"]
[SetUp "1"]
[Termination "adjudication"]
[TimeControl "inf"]

1. cxd5 {+0.15/14 0.15s} c6 {+0.14/14 0.23s} 2. Nc3 {-0.09/14 0.092s}
cxd5 {+0.16/14 0.11s} 3. d4 {-0.18/14 0.049s} Nc6 {+0.18/14 0.031s}
4. Nf3 {-0.27/14 0.19s} e6 {+0.18/14 0.17s} 5. e3 {-0.27/14 0.017s}
Bd6 {+0.24/14 0.033s} 6. Bd2 {-0.27/14 0.058s} O-O {+0.23/14 0.14s}
7. Nb5 {-0.27/14 0.13s} Bb8 {+0.49/14 0.18s} 8. Be2 {-0.39/14 0.046s}
a6 {+0.40/14 0.10s} 9. Nc3 {-0.33/14 0.021s} Re8 {+0.38/14 0.32s}
10. Kf1 {-0.40/14 0.44s} h6 {+0.46/14 0.44s} 11. Rc1 {-0.30/14 0.22s}
Bd7 {+0.35/14 0.30s} 12. Na4 {-0.37/14 0.098s} Bd6 {+0.33/14 0.10s}
13. Be1 {-0.39/14 0.10s} Ne4 {+0.22/14 0.26s} 14. Nd2 {-0.22/14 0.13s}
Ne7 {+0.43/14 0.16s} 15. Nxe4 {-0.21/14 0.047s} dxe4 {+0.30/14 0.12s}
16. Qb3 {-0.29/14 0.16s} Bc6 {+0.42/14 0.23s} 17. Nb6 {-0.27/14 0.12s}
Rb8 {+0.54/14 0.12s} 18. Ba5 {-0.20/14 0.065s} Bc7 {+0.47/14 0.18s}
19. g3 {-0.30/14 0.054s} Nd5 {+0.30/14 0.11s} 20. Nxd5 {-0.29/14 0.041s}
Bxa5 {+0.32/14 0.12s} 21. Nb4 {-0.08/14 0.099s} Bd7 {0.00/14 0.15s}
22. Kg2 {-0.09/14 0.14s} Qb6 {+0.09/14 0.058s} 23. a3 {-0.08/14 0.051s}
e5 {+0.13/14 0.13s} 24. Rhd1 {0.00/14 0.071s} Rbd8 {-0.06/14 0.15s}
25. d5 {0.00/14 0.040s} Bf5 {0.00/14 0.097s} 26. Qa4 {0.00/14 0.028s}
Rf8 {-0.41/14 0.19s} 27. Nxa6 {+0.69/14 0.035s} Qxb2 {-0.81/14 0.028s}
28. Rc2 {+1.04/14 0.029s} Qb6 {-0.62/14 0.014s} 29. Rc5 {+1.32/14 0.080s}
Qb2 {-0.51/14 0.032s} 30. Rc2 {+1.40/14 0.018s} Qb6 {-0.62/14 0.038s}
31. Nc5 {+0.74/14 0.057s} Rc8 {-0.89/14 0.066s} 32. Rdc1 {+0.86/14 0.031s}
Ra8 {-1.17/14 0.063s} 33. Nd7 {+1.00/14 0.088s} Bxd7 {-1.09/14 0.21s}
34. Qxd7 {+0.78/14 0.085s} Rad8 {-1.18/14 0.14s} 35. Qf5 {+1.13/14 0.092s}
Qd6 {-1.31/14 0.067s} 36. Rb1 {+1.24/14 0.042s} g6 {-1.33/14 0.13s}
37. Qxe4 {+1.40/14 0.049s} Rd7 {-1.46/14 0.057s} 38. Rb5 {+1.59/14 0.12s}
Bd8 {-1.39/14 0.13s} 39. Qd3 {+1.52/14 0.063s} f5 {-1.60/14 0.24s}
40. Qb3 {+1.66/14 0.12s} Rff7 {-1.58/14 0.13s} 41. e4 {+1.46/14 0.27s}
Kg7 {-1.44/14 0.34s} 42. Bf3 {+1.67/14 0.17s} Qa6 {-1.89/14 0.33s}
43. Rb2 {+1.68/14 0.10s} Qf6 {-1.79/14 0.15s} 44. Qd3 {+1.62/14 0.068s}
fxe4 {-1.65/14 0.20s} 45. Bxe4 {+1.65/14 0.028s} b6 {-1.88/14 0.16s}
46. Qe2 {+1.89/14 0.071s} Rd6 {-1.96/14 0.16s} 47. Rc2 {+1.87/14 0.055s}
Qe7 {-1.72/14 0.22s} 48. Rc6 {+1.83/14 0.11s} Rdf6 {-1.90/14 0.098s}
49. Rb3 {+1.72/14 0.12s} Bc7 {-2.02/14 0.15s} 50. Qc2 {+1.74/14 0.16s}
g5 {-1.97/14 0.053s} 51. hxg5 {+2.10/14 0.075s} hxg5 {-2.02/14 0.20s}
52. Rf3 {+2.40/14 0.14s} Rxc6 {-2.26/14 0.039s} 53. Qxc6 {+2.43/14 0.056s}
Rxf3 {-2.02/14 0.12s} 54. Qg6+ {+2.11/14 0.080s} Kf8 {-2.25/14 0.022s}
55. Bxf3 {+2.10/14 0.017s} Bd8 {-1.94/14 0.15s} 56. d6 {+2.32/14 0.053s}
Qf6 {-2.07/14 0.089s} 57. Qd3 {+2.12/14 0.054s} Qe6 {-2.15/14 0.068s}
58. a4 {+2.07/14 0.082s} Kg7 {-2.42/14 0.14s} 59. Be4 {+2.17/14 0.065s}
Qd7 {-2.43/14 0.062s} 60. Qd5 {+2.75/14 0.024s} Bf6 {-2.60/14 0.12s}
61. Bc2 {+2.93/14 0.022s} g4 {-3.13/14 0.14s} 62. Kg1 {+3.57/14 0.082s}
Bd8 {-3.73/14 0.13s} 63. Qxe5+ {+3.75/14 0.048s} Bf6 {-3.93/14 0.014s}
64. Qd5 {+3.65/14 0.052s} Bd8 {-4.15/14 0.048s} 65. Bb3 {+3.77/14 0.055s}
Kf6 {-4.55/14 0.24s} 66. Qd4+ {+3.61/14 0.13s}
Kf5 {-4.45/14 0.039s, White wins by adjudication} 1-0

stockfish-b40e45c vs asmFish-a1df589 100 games depth 14 result +12 -12 =76, 0/50 different !!!

stockfish-f731bca vs asmFish-a1df589 100 games depth 14 result +17 -17 =66, 0/50 different !!!

stockfish-f731bca vs asmFish-ff59ed7 100 games depth 14 result +17 -17 =66, 0/50 different !!!

stockfish-66c5eae vs asmFish-ff59ed7 100 games depth 14 result +21 -21 =58, 0/50 different !!!

stockfish-2783203 vs asmFish-ff59ed7 100 games depth 14 result +20 -20 =60, 0/50 different !!!

stockfish-5837228 (recompiled) vs asmFish-ff59ed7 100 games depth 14 result +22 -22 =56, 0/50 different !!!

stockfish-df6cb44 vs asmFish-ff59ed7 100 games depth 14 result +13 -16 =71, 22/50 different !!! earliest difference

====26. Nf3 vs Nb5
[Event "?"]
[Site "?"]
[Date "2017.08.14"]
[Round "23"]
[White "stockfish"]
[Black "asmfish"]
[Result "1/2-1/2"]
[FEN "rnbqkbnr/1ppppppp/8/8/p7/1P5N/P1PPPPPP/RNBQKB1R w KQkq - 1 1"]
[PlyCount "104"]
[SetUp "1"]
[TimeControl "inf"]

1. Ba3 {-0.38/14 0.64s} d5 {+0.49/14 0.32s} 2. d4 {-0.50/14 0.34s}
Bxh3 {+0.62/14 0.25s} 3. gxh3 {-0.38/14 0.071s} e6 {+0.62/14 0.12s}
4. Bxf8 {-0.52/14 0.079s} Kxf8 {+0.67/14 0.15s} 5. Nc3 {-0.40/14 0.24s}
axb3 {+0.60/14 0.11s} 6. axb3 {-0.73/14 0.094s} Nc6 {+0.60/14 0.036s}
7. e3 {-0.73/14 0.013s} g6 {+0.72/14 0.053s} 8. Bb5 {-0.74/14 0.075s}
Nce7 {+0.75/14 0.040s} 9. Rxa8 {-0.80/14 0.10s} Qxa8 {+0.78/14 0.028s}
10. Kd2 {-0.65/14 0.065s} Nf6 {+0.56/14 0.040s} 11. Bd3 {-0.62/14 0.039s}
Kg7 {+0.56/14 0.066s} 12. Qa1 {-0.68/14 0.10s} c6 {+0.59/14 0.050s}
13. Qxa8 {-0.58/14 0.091s} Rxa8 {+0.65/14 0.070s} 14. Rg1 {-0.58/14 0.044s}
h6 {+0.59/14 0.11s} 15. f3 {-0.47/14 0.14s} Nd7 {+0.40/14 0.094s}
16. h4 {-0.53/14 0.085s} h5 {+0.57/14 0.056s} 17. Ne2 {-0.51/14 0.080s}
e5 {+0.45/14 0.052s} 18. e4 {-0.45/14 0.064s} exd4 {+0.60/14 0.10s}
19. Nxd4 {-0.41/14 0.073s} Kf6 {+0.57/14 0.12s} 20. Rg5 {-0.56/14 0.14s}
Ne5 {+0.55/14 0.33s} 21. Be2 {-0.56/14 0.081s} Nd7 {+0.34/14 0.059s}
22. Bd3 {-0.55/14 0.10s} Ne5 {+0.50/14 0.054s} 23. Be2 {-0.44/14 0.054s}
dxe4 {+0.38/14 0.048s} 24. fxe4 {-0.51/14 0.079s} b6 {+0.44/14 0.11s}
25. Rg1 {-0.36/14 0.12s} c5 {+0.44/14 0.17s} 26. Nf3 {-0.45/14 0.13s}
N7c6 {+0.73/14 0.078s} 27. Nxe5 {-0.45/14 0.069s} Nxe5 {+0.55/14 0.030s}
28. Rd1 {-0.45/14 0.011s} Ra2 {+0.54/14 0.061s} 29. Rf1+ {-0.66/14 0.12s}
Ke7 {+0.55/14 0.13s} 30. Kc3 {-0.54/14 0.11s} Ke6 {+0.55/14 0.053s}
31. Bb5 {-0.68/14 0.046s} Ra5 {+0.50/14 0.007s} 32. Bc4+ {-0.58/14 0.053s}
Ke7 {+0.42/14 0.043s} 33. Be2 {-0.58/14 0.029s} Ra7 {+0.35/14 0.006s}
34. Bd3 {-0.58/14 0.062s} Ke6 {+0.34/14 0.033s} 35. Be2 {-0.65/14 0.018s}
Rd7 {+0.36/14 0.051s} 36. Ra1 {-0.52/14 0.071s} Rd4 {+0.54/14 0.027s}
37. Ra4 {-0.68/14 0.039s} Rxa4 {+0.48/14 0.041s} 38. bxa4 {-0.80/14 0.017s}
Kf6 {+0.78/14 0.038s} 39. Kd2 {-0.31/14 0.035s} Ke6 {+0.32/14 0.032s}
40. Ke3 {-0.30/14 0.016s} Kd6 {+0.34/14 0.004s} 41. c3 {-0.10/14 0.014s}
Kd7 {+0.24/14 0.013s} 42. Kf4 {-0.08/14 0.005s} Ke6 {+0.38/14 0.005s}
43. Kg5 {-0.07/14 0.004s} Ke7 {+0.13/14 0.011s} 44. Kf4 {-0.06/14 0.003s}
Kd6 {+0.13/14 0.005s} 45. Kg5 {-0.06/14 0.003s} Ke7 {+0.13/14 0.003s}
46. Kf4 {-0.06/14 0.002s} f6 {+0.04/14 0.009s} 47. Bb5 {-0.39/14 0.015s}
Ng4 {+0.04/14 0.002s} 48. Be2 {0.00/14 0.008s} Ne5 {0.00/14 0.009s}
49. Bb5 {0.00/14 0.002s} Kf7 {0.00/14 0.002s} 50. Ba6 {0.00/14 0.007s}
Ng4 {0.00/14 0.008s} 51. Bc4+ {0.00/14 0.006s} Ke7 {0.00/14 0.003s}
52. Be2 {0.00/14 0.002s} Ne5 {0.00/14 0.002s, Draw by 3-fold repetition} 1/2-1/2

[Event "?"]
[Site "?"]
[Date "2017.08.14"]
[Round "24"]
[White "asmfish"]
[Black "stockfish"]
[Result "1/2-1/2"]
[FEN "rnbqkbnr/1ppppppp/8/8/p7/1P5N/P1PPPPPP/RNBQKB1R w KQkq - 1 1"]
[PlyCount "82"]
[SetUp "1"]
[TimeControl "inf"]

1. Ba3 {-0.38/14 0.56s} d5 {+0.49/14 0.39s} 2. d4 {-0.50/14 0.27s}
Bxh3 {+0.62/14 0.31s} 3. gxh3 {-0.38/14 0.046s} e6 {+0.62/14 0.12s}
4. Bxf8 {-0.52/14 0.068s} Kxf8 {+0.67/14 0.19s} 5. Nc3 {-0.40/14 0.22s}
axb3 {+0.60/14 0.14s} 6. axb3 {-0.73/14 0.076s} Nc6 {+0.60/14 0.049s}
7. e3 {-0.73/14 0.010s} g6 {+0.72/14 0.054s} 8. Bb5 {-0.74/14 0.058s}
Nce7 {+0.75/14 0.053s} 9. Rxa8 {-0.80/14 0.10s} Qxa8 {+0.78/14 0.028s}
10. Kd2 {-0.65/14 0.057s} Nf6 {+0.56/14 0.043s} 11. Bd3 {-0.62/14 0.032s}
Kg7 {+0.56/14 0.074s} 12. Qa1 {-0.68/14 0.098s} c6 {+0.59/14 0.058s}
13. Qxa8 {-0.58/14 0.083s} Rxa8 {+0.65/14 0.066s} 14. Rg1 {-0.58/14 0.044s}
h6 {+0.59/14 0.14s} 15. f3 {-0.47/14 0.12s} Nd7 {+0.40/14 0.098s}
16. h4 {-0.53/14 0.074s} h5 {+0.57/14 0.078s} 17. Ne2 {-0.51/14 0.074s}
e5 {+0.45/14 0.064s} 18. e4 {-0.45/14 0.053s} exd4 {+0.60/14 0.16s}
19. Nxd4 {-0.41/14 0.067s} Kf6 {+0.57/14 0.14s} 20. Rg5 {-0.56/14 0.14s}
Ne5 {+0.55/14 0.45s} 21. Be2 {-0.56/14 0.077s} Nd7 {+0.34/14 0.092s}
22. Bd3 {-0.55/14 0.074s} Ne5 {+0.35/14 0.049s} 23. Be2 {-0.57/14 0.094s}
dxe4 {+0.37/14 0.087s} 24. fxe4 {-0.59/14 0.027s} b6 {+0.47/14 0.22s}
25. Rg2 {-0.34/14 0.17s} c5 {+0.49/14 0.17s} 26. Nb5 {-0.38/14 0.084s}
N7c6 {+0.33/14 0.23s} 27. Nc7 {-0.26/14 0.10s} Ra2 {+0.10/14 0.13s}
28. Nd5+ {-0.44/14 0.084s} Kg7 {+0.22/14 0.089s} 29. Nc3 {-0.29/14 0.064s}
Ra8 {+0.20/14 0.18s} 30. Na4 {-0.30/14 0.073s} Rd8+ {+0.36/14 0.13s}
31. Ke3 {-0.38/14 0.085s} Nd4 {+0.55/14 0.038s} 32. Bxh5 {-0.38/14 0.087s}
Rh8 {+0.48/14 0.097s} 33. Bg4 {-0.08/14 0.14s} Nxc2+ {+0.44/14 0.16s}
34. Rxc2 {-0.66/14 0.094s} Nxg4+ {+0.47/14 0.094s} 35. Kf3 {-0.65/14 0.091s}
Ne5+ {+0.64/14 0.11s} 36. Kg2 {-0.70/14 0.065s} Rxh4 {+0.68/14 0.057s}
37. Nxb6 {-0.80/14 0.10s} Rg4+ {+0.68/14 0.12s} 38. Kf1 {-0.80/14 0.006s}
Rf4+ {+0.67/14 0.025s} 39. Kg2 {-0.80/14 0.004s} Rg4+ {+0.71/14 0.040s}
40. Kf1 {-0.80/14 0.001s} Rf4+ {+0.70/14 0.031s} 41. Kg2 {-0.60/14 0.23s}
Rg4+ {+0.65/14 0.050s, Draw by 3-fold repetition} 1/2-1/2
tthsqe12 commented 7 years ago

I have submitted an issue regarding this. Not my fault. https://github.com/official-stockfish/Stockfish/issues/1207

lantonov commented 7 years ago

When trying to compile Stockfish-bdeda52 the compiler (gcc 7.1.0) gives an error and fails to compile:

$ mingw32-make profile-build ARCH=x86-64-bmi2 COMP=mingw

Config:
debug: 'no'
sanitize: 'no'
optimize: 'yes'
arch: 'x86_64'
bits: '64'
kernel: 'MINGW64_NT-10.0'
os: 'Windows_NT'
prefetch: 'yes'
popcnt: 'yes'
sse: 'yes'
pext: 'yes'

Flags:
CXX: g++
CXXFLAGS: -Wall -Wcast-qual -fno-exceptions -fno-rtti -std=c++11  -Wextra -Wshad                                                                                                                                  ow -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -mbmi2
LDFLAGS:  -static

Testing config sanity. If this fails, try 'make help' ...

Step 1/4. Building instrumented executable ...
C:/msys2/mingw64/bin/mingw32-make ARCH=x86-64-bmi2 COMP=mingw gcc-profile-make
mingw32-make[1]: Entering directory 'C:/msys2/home/lanto/src'
C:/msys2/mingw64/bin/mingw32-make ARCH=x86-64-bmi2 COMP=mingw \
EXTRACXXFLAGS='-fprofile-generate' \
EXTRALDFLAGS='-lgcov' \
all
mingw32-make[2]: Entering directory 'C:/msys2/home/lanto/src'
g++ -Wall -Wcast-qual -fno-exceptions -fno-rtti -std=c++11 -fprofile-generate -W                                                                                                                                  extra -Wshadow -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_                                                                                                                                  PEXT -mbmi2   -c -o benchmark.o benchmark.cpp
g++ -Wall -Wcast-qual -fno-exceptions -fno-rtti -std=c++11 -fprofile-generate -W                                                                                                                                  extra -Wshadow -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_                                                                                                                                  PEXT -mbmi2   -c -o bitbase.o bitbase.cpp
g++ -Wall -Wcast-qual -fno-exceptions -fno-rtti -std=c++11 -fprofile-generate -W                                                                                                                                  extra -Wshadow -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_                                                                                                                                  PEXT -mbmi2   -c -o bitboard.o bitboard.cpp
g++ -Wall -Wcast-qual -fno-exceptions -fno-rtti -std=c++11 -fprofile-generate -W                                                                                                                                  extra -Wshadow -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_                                                                                                                                  PEXT -mbmi2   -c -o endgame.o endgame.cpp
g++ -Wall -Wcast-qual -fno-exceptions -fno-rtti -std=c++11 -fprofile-generate -W                                                                                                                                  extra -Wshadow -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_                                                                                                                                  PEXT -mbmi2   -c -o evaluate.o evaluate.cpp
g++ -Wall -Wcast-qual -fno-exceptions -fno-rtti -std=c++11 -fprofile-generate -W                                                                                                                                  extra -Wshadow -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_                                                                                                                                  PEXT -mbmi2   -c -o main.o main.cpp
g++ -Wall -Wcast-qual -fno-exceptions -fno-rtti -std=c++11 -fprofile-generate -W                                                                                                                                  extra -Wshadow -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_                                                                                                                                  PEXT -mbmi2   -c -o material.o material.cpp
g++ -Wall -Wcast-qual -fno-exceptions -fno-rtti -std=c++11 -fprofile-generate -W                                                                                                                                  extra -Wshadow -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_                                                                                                                                  PEXT -mbmi2   -c -o misc.o misc.cpp
g++ -Wall -Wcast-qual -fno-exceptions -fno-rtti -std=c++11 -fprofile-generate -W                                                                                                                                  extra -Wshadow -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_                                                                                                                                  PEXT -mbmi2   -c -o movegen.o movegen.cpp
g++ -Wall -Wcast-qual -fno-exceptions -fno-rtti -std=c++11 -fprofile-generate -W                                                                                                                                  extra -Wshadow -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_                                                                                                                                  PEXT -mbmi2   -c -o movepick.o movepick.cpp
g++ -Wall -Wcast-qual -fno-exceptions -fno-rtti -std=c++11 -fprofile-generate -W                                                                                                                                  extra -Wshadow -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_                                                                                                                                  PEXT -mbmi2   -c -o pawns.o pawns.cpp
g++ -Wall -Wcast-qual -fno-exceptions -fno-rtti -std=c++11 -fprofile-generate -W                                                                                                                                  extra -Wshadow -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_                                                                                                                                  PEXT -mbmi2   -c -o position.o position.cpp
g++ -Wall -Wcast-qual -fno-exceptions -fno-rtti -std=c++11 -fprofile-generate -W                                                                                                                                  extra -Wshadow -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_                                                                                                                                  PEXT -mbmi2   -c -o psqt.o psqt.cpp
g++ -Wall -Wcast-qual -fno-exceptions -fno-rtti -std=c++11 -fprofile-generate -W                                                                                                                                  extra -Wshadow -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_                                                                                                                                  PEXT -mbmi2   -c -o search.o search.cpp
g++ -Wall -Wcast-qual -fno-exceptions -fno-rtti -std=c++11 -fprofile-generate -W                                                                                                                                  extra -Wshadow -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_                                                                                                                                  PEXT -mbmi2   -c -o thread.o thread.cpp
g++ -Wall -Wcast-qual -fno-exceptions -fno-rtti -std=c++11 -fprofile-generate -W                                                                                                                                  extra -Wshadow -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_                                                                                                                                  PEXT -mbmi2   -c -o timeman.o timeman.cpp
g++ -Wall -Wcast-qual -fno-exceptions -fno-rtti -std=c++11 -fprofile-generate -W                                                                                                                                  extra -Wshadow -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_                                                                                                                                  PEXT -mbmi2   -c -o tt.o tt.cpp
g++ -Wall -Wcast-qual -fno-exceptions -fno-rtti -std=c++11 -fprofile-generate -W                                                                                                                                  extra -Wshadow -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_                                                                                                                                  PEXT -mbmi2   -c -o uci.o uci.cpp
In file included from C:/msys2/mingw64/lib/gcc/x86_64-w64-mingw32/7.1.0/include/                                                                                                                                  c++/x86_64-w64-mingw32/bits/c++allocator.h:33:0,
                 from C:/msys2/mingw64/lib/gcc/x86_64-w64-mingw32/7.1.0/include/                                                                                                                                  c++/bits/allocator.h:46,
                 from C:/msys2/mingw64/lib/gcc/x86_64-w64-mingw32/7.1.0/include/                                                                                                                                  c++/string:41,
                 from C:/msys2/mingw64/lib/gcc/x86_64-w64-mingw32/7.1.0/include/                                                                                                                                  c++/bits/locale_classes.h:40,
                 from C:/msys2/mingw64/lib/gcc/x86_64-w64-mingw32/7.1.0/include/                                                                                                                                  c++/bits/ios_base.h:41,
                 from C:/msys2/mingw64/lib/gcc/x86_64-w64-mingw32/7.1.0/include/                                                                                                                                  c++/ios:42,
                 from C:/msys2/mingw64/lib/gcc/x86_64-w64-mingw32/7.1.0/include/                                                                                                                                  c++/ostream:38,
                 from C:/msys2/mingw64/lib/gcc/x86_64-w64-mingw32/7.1.0/include/                                                                                                                                  c++/iostream:39,
                 from uci.cpp:22:
C:/msys2/mingw64/lib/gcc/x86_64-w64-mingw32/7.1.0/include/c++/ext/new_allocator.                                                                                                                                  h: In instantiation of 'void __gnu_cxx::new_allocator<_Tp>::construct(_Up*, _Arg                                                                                                                                  s&& ...) [with _Up = Thread; _Args = {int}; _Tp = Thread]':
C:/msys2/mingw64/lib/gcc/x86_64-w64-mingw32/7.1.0/include/c++/bits/alloc_traits.                                                                                                                                  h:475:4:   required from 'static void std::allocator_traits<std::allocator<_Char                                                                                                                                  T> >::construct(std::allocator_traits<std::allocator<_CharT> >::allocator_type&,                                                                                                                                   _Up*, _Args&& ...) [with _Up = Thread; _Args = {int}; _Tp = Thread; std::alloca                                                                                                                                  tor_traits<std::allocator<_CharT> >::allocator_type = std::allocator<Thread>]'
C:/msys2/mingw64/lib/gcc/x86_64-w64-mingw32/7.1.0/include/c++/bits/shared_ptr_ba                                                                                                                                  se.h:1325:23:   required from 'std::__shared_ptr<_Tp, _Lp>::__shared_ptr(std::_S                                                                                                                                  p_make_shared_tag, const _Alloc&, _Args&& ...) [with _Alloc = std::allocator<Thr                                                                                                                                  ead>; _Args = {int}; _Tp = Thread; __gnu_cxx::_Lock_policy _Lp = (__gnu_cxx::_Lo                                                                                                                                  ck_policy)2]'
C:/msys2/mingw64/lib/gcc/x86_64-w64-mingw32/7.1.0/include/c++/bits/shared_ptr.h:                                                                                                                                  344:64:   required from 'std::shared_ptr<_Tp>::shared_ptr(std::_Sp_make_shared_t                                                                                                                                  ag, const _Alloc&, _Args&& ...) [with _Alloc = std::allocator<Thread>; _Args = {                                                                                                                                  int}; _Tp = Thread]'
C:/msys2/mingw64/lib/gcc/x86_64-w64-mingw32/7.1.0/include/c++/bits/shared_ptr.h:                                                                                                                                  690:14:   required from 'std::shared_ptr<_Tp> std::allocate_shared(const _Alloc&                                                                                                                                  , _Args&& ...) [with _Tp = Thread; _Alloc = std::allocator<Thread>; _Args = {int                                                                                                                                  }]'
C:/msys2/mingw64/lib/gcc/x86_64-w64-mingw32/7.1.0/include/c++/bits/shared_ptr.h:                                                                                                                                  706:39:   required from 'std::shared_ptr<_Tp> std::make_shared(_Args&& ...) [wit                                                                                                                                  h _Tp = Thread; _Args = {int}]'
uci.cpp:151:45:   required from here
C:/msys2/mingw64/lib/gcc/x86_64-w64-mingw32/7.1.0/include/c++/ext/new_allocator.                                                                                                                                  h:136:4: error: no matching function for call to 'Thread::Thread(int)'
  { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); }
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from uci.cpp:30:0:
thread.h:51:3: note: candidate: Thread::Thread()
   Thread();
   ^~~~~~
thread.h:51:3: note:   candidate expects 0 arguments, 1 provided
<builtin>: recipe for target 'uci.o' failed
mingw32-make[2]: *** [uci.o] Error 1
mingw32-make[2]: Leaving directory 'C:/msys2/home/lanto/src'
Makefile:532: recipe for target 'gcc-profile-make' failed
mingw32-make[1]: *** [gcc-profile-make] Error 2
mingw32-make[1]: Leaving directory 'C:/msys2/home/lanto/src'
Makefile:436: recipe for target 'profile-build' failed
mingw32-make: *** [profile-build] Error 2

The next commit, stockfish-df6cb44, compiles normally without warnings.

tthsqe12 commented 7 years ago

Thanks, lantonov, for the game testing. However, in the last pgn you posted, your claim that stockfish-5837228 plays 32 ... Ra8 seems to be wrong. I get

score cp -119 nodes 192983
bestmove f8d8 ponder g3g4

from both stockfish-5837228 and asmFish-ff59ed7

lantonov commented 7 years ago

@tthsqe12 , the results above show that the ball is in the SF's court

tthsqe12 commented 7 years ago

I wouldn't try to compile intermediate commits. df6cb44 and bdeda52 were pushed together and bdeda52 looks suspicious. Also, it seems that the maintainer is aware of the problem now.

lantonov commented 7 years ago

It seems that there is some problem in the compilation. The compiles from yesterday were 1121 kb and those of today are 1122 kb. I compared the recompiled stockfish-5837228 and asmFish-ff59ed7 above with no difference. bdeda52 fails to compile.

tthsqe12 commented 7 years ago

Is it possible to get python to run games between engines? I want to compare not only the moves but also the node counts. Any do it all from python with a reasonable speed. Unfortunately, doing this at each move seems to be quite slow:

p = Popen(cmd, stdout = PIPE, stdin = PIPE, stderr = PIPE)
data = p.communicate(...)
lantonov commented 7 years ago

I have a couple of python scripts (deplay.py and dezinc.py) in https://github.com/lantonov/Rockstar that play games between engines. They are intended for optimisation but can be easily adapted to count nodes.

BTW, if I compare SF and AF in fixed-nodes games (go nodes <>), I always get different games. theo from the TCEC chat said that this is due to the different way that AF and SF check for node counts. AF checks the nodes at interval 4086 while SF checks nodes more often. Is this true? When I observe nodes checked on a move, AF has always more nodes checked than SF. That's why AF wins at fixed-nodes games.

tthsqe12 commented 7 years ago

I didn't like stockfish's checktime function so I changed it. You might want to read https://github.com/lantonov/asmFish/blob/master/asmFish/guts/CheckTime.asm it is mostly comments. Calls to checktime take an indeterminate amount of time. However, most systems have a fast way of getting the time in userspace mode. To account for timer wrap around, I'm also going to change the jmp on this line https://github.com/lantonov/asmFish/blob/master/asmFish/guts/CheckTime.asm#L43 from "jb" to "js", as well as anyother places that need it.

The implementation of checktime on windows needs some work, as the timer will lose some ticks when the system is under heavy load. This things will be corrected when time management is updated.

As for node counts - when you test stockfish and asmfish, who gets closer to the target node count?

tthsqe12 commented 7 years ago

I tested the node count - are you sure that AF consistently has more nodes than SF? AF should always go over the target. However, it should never exceed it by more than ~50. In contast, this simple test shows SF exceeding by ~1000:

$ ./stockfish-5837228
Stockfish 140817 64 by T. Romstad, M. Costalba, J. Kiiski, G. Linscott
go nodes 1000000
info depth 1 seldepth 1 multipv 1 score cp 93 nodes 20 nps 10000 tbhits 0 time 2 pv e2e4
info depth 2 seldepth 2 multipv 1 score cp 91 nodes 47 nps 23500 tbhits 0 time 2 pv e2e4 b7b6
info depth 3 seldepth 3 multipv 1 score cp 124 nodes 111 nps 37000 tbhits 0 time 3 pv d2d4 d7d6 e2e4
info depth 4 seldepth 4 multipv 1 score cp 107 nodes 256 nps 85333 tbhits 0 time 3 pv d2d4 d7d6 e2e4 d6d5
info depth 5 seldepth 5 multipv 1 score cp 62 nodes 841 nps 210250 tbhits 0 time 4 pv e2e4 e7e5 d2d4 d7d6 d4e5
info depth 6 seldepth 6 multipv 1 score cp 13 nodes 2399 nps 342714 tbhits 0 time 7 pv e2e4 e7e5 d2d4 g8f6 d4e5 f6e4
info depth 7 seldepth 8 multipv 1 score cp 25 nodes 5295 nps 407307 tbhits 0 time 13 pv e2e4 e7e5 b1c3 d7d5 c3d5 g8f6 d5c3
info depth 8 seldepth 9 multipv 1 score cp 18 nodes 8630 nps 431500 tbhits 0 time 20 pv e2e4 e7e5 b1c3 d7d5 c3d5 g8f6 d5f6 d8f6 g1e2
info depth 9 seldepth 13 multipv 1 score cp 13 nodes 18083 nps 547969 tbhits 0 time 33 pv e2e4 d7d5 e4d5 d8d5 d1e2 g8f6 g1f3 b8c6 b1c3
info depth 10 seldepth 13 multipv 1 score cp 64 nodes 32337 nps 688021 tbhits 0 time 47 pv e2e4 d7d5 e4d5 d8d5 b1c3 d5a5 d2d4 g8f6 g1f3 c8g4 d1e2
info depth 11 seldepth 15 multipv 1 score cp 55 nodes 51379 nps 802796 tbhits 0 time 64 pv e2e4 d7d5 e4d5 d8d5 d2d4 g8f6 c2c4 d5e6 d1e2 e6e2 g1e2 e7e5 b1c3 e5d4 e2d4
info depth 12 seldepth 19 multipv 1 score cp 50 nodes 95515 nps 909666 tbhits 0 time 105 pv e2e4 d7d5 e4d5 d8d5 g1f3 c8g4 b1c3 d5a5 f1d3 e7e5 e1g1 a5c5 d1e2
info depth 13 seldepth 20 multipv 1 score cp 60 nodes 207523 nps 1022280 tbhits 0 time 203 pv e2e4 e7e6 d2d4 d7d5 e4d5 e6d5 d1e2 d8e7 c1g5 e7e2 g1e2 b8c6 b1c3 f8b4 e1c1
info depth 14 seldepth 22 multipv 1 score cp 26 nodes 461757 nps 1112667 tbhits 0 time 415 pv e2e4 e7e6 d2d4 d7d5 e4d5 e6d5 b1c3 f8e7 g1f3 g8f6 f1b5 c7c6 b5d3 h7h6 h2h3 c8e6 e1g1 e8g8
info depth 15 seldepth 22 multipv 1 score cp 20 nodes 688697 nps 1129011 tbhits 0 time 610 pv e2e4 e7e6 d2d4 d7d5 e4e5 c7c5 c2c3 b8c6 g1f3 c5d4 c3d4 f8b4 b1c3 g8e7 f1e2 e8g8
info depth 16 seldepth 24 multipv 1 score cp 25 nodes 969516 nps 1143297 tbhits 0 time 848 pv d2d4 d7d5 e2e3 g8f6 g1f3 e7e6 c2c4 c7c5 b1c3 f8e7 c4d5 e6d5 f1b5 c8d7 e1g1 e8g8 d4c5
info depth 17 seldepth 24 multipv 1 score cp 25 nodes 1001022 nps 1142719 tbhits 0 time 876 pv d2d4 d7d5 e2e3 g8f6 g1f3 e7e6 c2c4 c7c5 b1c3 f8e7 c4d5 e6d5 f1b5 c8d7 e1g1 e8g8 d4c5
bestmove d2d4 ponder d7d5
quit
$ ./afish
asmFishL_2017-08-14_popcnt
go nodes 1000000
info depth 1 seldepth 1 multipv 1 time 2 nps 10000 score cp 93 nodes 20 tbhits 0 pv e2e4
info depth 2 seldepth 2 multipv 1 time 2 nps 23500 score cp 91 nodes 47 tbhits 0 pv e2e4 b7b6
info depth 3 seldepth 3 multipv 1 time 2 nps 55500 score cp 124 nodes 111 tbhits 0 pv d2d4 d7d6 e2e4
info depth 4 seldepth 4 multipv 1 time 2 nps 128000 score cp 107 nodes 256 tbhits 0 pv d2d4 d7d6 e2e4 d6d5
info depth 5 seldepth 5 multipv 1 time 3 nps 280333 score cp 62 nodes 841 tbhits 0 pv e2e4 e7e5 d2d4 d7d6 d4e5
info depth 6 seldepth 6 multipv 1 time 6 nps 399833 score cp 13 nodes 2399 tbhits 0 pv e2e4 e7e5 d2d4 g8f6 d4e5 f6e4
info depth 7 seldepth 8 multipv 1 time 10 nps 529500 score cp 25 nodes 5295 tbhits 0 pv e2e4 e7e5 b1c3 d7d5 c3d5 g8f6 d5c3
info depth 8 seldepth 9 multipv 1 time 14 nps 616428 score cp 18 nodes 8630 tbhits 0 pv e2e4 e7e5 b1c3 d7d5 c3d5 g8f6 d5f6 d8f6 g1e2
info depth 9 seldepth 13 multipv 1 time 23 nps 786217 score cp 13 nodes 18083 tbhits 0 pv e2e4 d7d5 e4d5 d8d5 d1e2 g8f6 g1f3 b8c6 b1c3
info depth 10 seldepth 13 multipv 1 time 33 nps 979909 score cp 64 nodes 32337 tbhits 0 pv e2e4 d7d5 e4d5 d8d5 b1c3 d5a5 d2d4 g8f6 g1f3 c8g4 d1e2
info depth 11 seldepth 15 multipv 1 time 44 nps 1167704 score cp 55 nodes 51379 tbhits 0 pv e2e4 d7d5 e4d5 d8d5 d2d4 g8f6 c2c4 d5e6 d1e2 e6e2 g1e2 e7e5 b1c3 e5d4 e2d4
info depth 12 seldepth 19 multipv 1 time 74 nps 1290743 score cp 50 nodes 95515 tbhits 0 pv e2e4 d7d5 e4d5 d8d5 g1f3 c8g4 b1c3 d5a5 f1d3 e7e5 e1g1 a5c5 d1e2
info depth 13 seldepth 20 multipv 1 time 150 nps 1383486 score cp 60 nodes 207523 tbhits 0 pv e2e4 e7e6 d2d4 d7d5 e4d5 e6d5 d1e2 d8e7 c1g5 e7e2 g1e2 b8c6 b1c3 f8b4 e1c1
info depth 14 seldepth 22 multipv 1 time 311 nps 1484749 score cp 26 nodes 461757 tbhits 0 pv e2e4 e7e6 d2d4 d7d5 e4d5 e6d5 b1c3 f8e7 g1f3 g8f6 f1b5 c7c6 b5d3 h7h6 h2h3 c8e6 e1g1 e8g8
info depth 15 seldepth 22 multipv 1 time 457 nps 1506995 score cp 20 nodes 688697 tbhits 0 pv e2e4 e7e6 d2d4 d7d5 e4e5 c7c5 c2c3 b8c6 g1f3 c5d4 c3d4 f8b4 b1c3 g8e7 f1e2 e8g8
info depth 16 seldepth 24 multipv 1 time 662 nps 1464525 score cp 25 nodes 969516 tbhits 0 pv d2d4 d7d5 e2e3 g8f6 g1f3 e7e6 c2c4 c7c5 b1c3 f8e7 c4d5 e6d5 f1b5 c8d7 e1g1 e8g8 d4c5
info depth 17 seldepth 24 multipv 1 time 685 nps 1459872 score cp 25 nodes 1000013 tbhits 0 pv d2d4 d7d5 e2e3 g8f6 g1f3 e7e6 c2c4 c7c5 b1c3 f8e7 c4d5 e6d5 f1b5 c8d7 e1g1 e8g8 d4c5
bestmove d2d4 ponder d7d5
quit
$
lantonov commented 7 years ago

I finished the series of comparisons (see above) and they showed convincingly that commit stockfish-df6cb44 is the culprit here. I did some stats on the node counts to look more closely into this matter. With the starting position my node counts are exactly as yours: 1001022 vs 1000013 rn1qkbnr/ppp1pppp/8/3p1b2/2P5/1P6/P2PPPPP/RNBQKBNR w KQkq - 1 2: 1000160 vs 1000003 6k1/3p4/P2P4/8/5Kp1/1p4Q1/p5p1/b7 w - - bm Qxg2: 1000871 vs 1000024 rnbqkbnr/1p1ppppp/p1p5/8/8/4PQ2/PPPP1PPP/RNB1KBNR w KQkq - 1 2: 1000981 vs 1000081 rnbqkbnr/p2ppppp/8/1pp5/8/4P3/PPPPNPPP/RNBQKB1R w KQkq - 1 2: 1001460 vs 1000092 rnbqkbnr/pp1pppp1/2p5/7p/4P1Q1/8/PPPP1PPP/RNB1KBNR w KQkq - 1 2: 1001480 vs 1000014 rnbqkbnr/1p1ppppp/2p5/p7/8/2P5/PPQPPPPP/RNB1KBNR w KQkq - 1 2: 1000554 vs 1000039 rnbqkbnr/pp1pp1pp/5p2/2p5/7P/5P2/PPPPP1P1/RNBQKBNR w KQkq - 1 2: 1001482 vs 1000016 rnbqkbnr/1pppppp1/7p/p7/5P2/4P3/PPPP2PP/RNBQKBNR w KQkq - 1 2: 1000510 vs 1000038 rnbqkb1r/ppppppp1/7n/7p/P7/R7/1PPPPPPP/1NBQKBNR w Kkq - 1 2: 1001158 vs 1000001 Stockfish-5837228: 1000967.8 +/- 453.5 nodes asmFish-ff59ed7: 1000032.1 +/- 31.43 nodes

lantonov commented 7 years ago

stockfish-232c50f (latest after the fix) vs asmFish-ff59ed7 100 games depth 14 result +19 -19 =62, 0/50 different

Tried the same with fixed nodes stockfish-232c50f (latest after the fix) vs asmFish-ff59ed7 100 games nodes 100000 result +24 -24 =52, 50/50 different

tthsqe12 commented 7 years ago

오래간만에 I ran a match between stockfish and asmFish. The stock version was from http://abrok.eu/stockfish/builds/e10255339fc7cb54bb0466945f759646f442f4f0/linux64modern/stockfish_17081817_x64_modern and asmFish was run the newly applied time management patch. On a linux box with arena and 1min+1sec time controls, the match is 6-0-26 in favour of you know who. I hope this doesn't mean the stockfish team is going backwards again.

lantonov commented 7 years ago

Thanks, I will check tomorrow because it's 2:30 am at my place. I will also try to make the Mac .o files on my box. At https://nextchessmove.com/dev-builds latest SF is about 5 Elo below though more games to go. Update: with 7690 games 1.5 Elo down

lantonov commented 7 years ago

asmFish-b4e48b8 vs asmFish-9129122 100 games depth 14 result +21 -21 =58, 0/50 different stockfish-232c50f vs asmfish-9129122 100 games depth 14 result +19 -19 =62, 0/50 different

tthsqe12 commented 7 years ago

100 game match finished 19-4-79

lantonov commented 7 years ago

stockfish-e102553 vs asmfish-9129122 100 games 60+1 sec result +9 -20 =71, elo -38.37 +/-36.42

tthsqe12 commented 7 years ago

Try to link the ...try2.o in the mac folder. I'm assuming you have bmi2 capable processor.

lantonov commented 7 years ago

stockfish-002bf4d vs asmFish-9129122 100 games depth 14 result +16 -16 =68, 0/50 different benches are different 5479946 and 5608839 this is because of https://github.com/official-stockfish/Stockfish/tree/444d99b6d24ba823c8c1ed7a94f3c15b0a536024 and https://github.com/official-stockfish/Stockfish/tree/fa5b0936eef8e647df99f424e454510839d0a344

stockfish-002bf4d vs asmFish-9129122 1000 games depth 14 result +209 -209 =582, 0/500 different

stockfish-002bf4d vs asmFish-303126a 100 games depth 14 result +18 -18 =64, 0/50 different

stockfish-d5f883a vs asmFish-303126a 100 games depth 14 result +28 -23 =49, 17.39 +/- 48.89 Elo, 50/50 different

lantonov commented 7 years ago

I made a little addition to the counting script so that it outputs the number of different pairs:

import chess
from chess import pgn

def pgn_compare():

### Enter the directory of your pgn file below. If it contains FENs,
### those should be full (6 items) otherwise an error is raised
    pgn = open("C:\\cutechess\\results.pgn")
    offsets = chess.pgn.scan_offsets(pgn)
    pairs = []
    number = 0
    for offset in offsets:
        pgn.seek(offset)
        game = chess.pgn.read_game(pgn)
        main = game.main_line()
        board = game.board()
        variation = board.variation_san(main)
        pairs.append(variation)

    for i in range(0, len(pairs[:-1]), 2):
        game_odd, game_even = pairs[i], pairs[i+1]
        if game_odd != game_even:

### The output is the numbers of the games in a pair that eventually differs [Round: "#"]
### and the number of differing pairs.
            print(i+1, i+2)
            number += 1
    print("The number of differing pairs is " + str(number))

if __name__ == '__main__':
    pgn_compare()

stockfish-21926ce vs asmFish-303126a 1000 games depth 14 result +225 -162 =613, 21.92 +/- 13.37 Elo, 500/500 different

lantonov commented 7 years ago

I ran a match between the latest versions of SF and AF to see how difference in applied patches reflects on pure evaluation strength. The latest patches of SF (after October 4 when SF = AF) have lost 5 Elo Score of stockfish-287e2e2 vs asmfish-e1d082d: +189 - 204 = 607 [0.492] 1000 games at depth=14 Elo difference: -5.21 +/- 13.49 SPRT: llr -0.22, lbound -2.94, ubound 2.94

lantonov commented 7 years ago

Score of asmFish-5433bc2 vs Stockfish-7dd1f4a: 174 - 192 - 634 [0.491] 1000 depth 14 Elo difference: -6.25 +/- 13.01 500/500 different