Scorpio 2.8.7 MCTS+NN windows version

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

Daniel Shawul
Posts: 4185
Joined: Tue Mar 14, 2006 11:34 am
Location: Ethiopia

Scorpio 2.8.7 MCTS+NN windows version

Post by Daniel Shawul »

Hi,

I have made some significant work with GPU acceleration of NN evaluation in this version.
Multi-threaded batching as I have described in the programming section helps a lot and now scorpio
can be launched with upto 256 threads even on a 4-core machine and a single GPU and perform well.
I get 10kn/s on a 6x64 net on a P100 GPU.

This version also works on Windows machines at least on the CPU. I have not tested the GPU version so
I am gonna need help with that.

I will describe the steps I took to get scorpio+mcts+nn CPU version woking on windows. Once you get that working then you can
try to get the GPU version working as well, which btw will give you 2 orders of magnitude acceleration

Steps

a) Download egbbdll64.dll from here. This dll is used for probing bitbases and neural networks as well. For the latter it comes prepackaged with a tensorflow.dll which is a huge step compared to previous version where I expected the user to figure this out ... silly me. Extract these files to where egbb endgame bitbases are located (or in any other place if you just want neural network support)

b) Add to the "Path" environment variable the path to where you extracted the egbbdll64.ll. This step is required so that the system can find
tensorflow.dll, cudnn.dll which comes pre-packaged with egbbdll

c) Download some network files from here. I have networks as big as A0s (40x256) if you need
them but it is pretty slow. Then edit the nn_path in scorpio.ini to choose your network

d) Then on the command line do a "scorpio go quit" to see if it works as intended.

More information can be found here and here

Daniel
User avatar
Werner
Posts: 2871
Joined: Wed Mar 08, 2006 10:09 pm
Location: Germany
Full name: Werner Schüle

Re: Scorpio 2.8.7 MCTS+NN windows version

Post by Werner »

Thanks Daniel for the lot of work.
I am not sure if it works here on my Windows 10 System as I am not sure I did this correct:
Add to the "Path" environment variable the path to where you extracted the egbbdll64.ll (it is now on \System32 and in the scorpio path too.
PS the path to the nets do not work. Here my output with nneps = 0

feature done=0
ht 16777216 X 16 = 256.0 MB
eht 524288 X 8 = 8.0 MB
pht 32768 X 24 = 0.8 MB
treeht 335539200 X 40 = 12799.8 MB
processors [1]
go
EgbbProbe 4.1 by Daniel Shawul
180 egbbs loaded !
loading_time = 0s
[st = 11114ms, mt = 29250ms , hply = 0 , moves_left 10]
63 35 112 1385180 e2-e4 e7-e5 Nb1-c3 Nb8-c6 d2-d3 Ng8-f6
64 37 224 2931972 e2-e4 e7-e5 Ng1-f3 Nb8-c6 Nb1-c3 Ng8-f6 d2-d4 e5xd4 Nf3xd4
65 37 337 4497275 e2-e4 e7-e5 Ng1-f3 Nb8-c6 Nb1-c3 Ng8-f6 d2-d4 d7-d6 d4-d5 Nc6-b4 Bf1-b5 c7-c6
66 37 449 6178313 e2-e4 e7-e5 Ng1-f3 Nb8-c6 Nb1-c3 Ng8-f6 d2-d4 e5xd4 Nf3xd4 Bf8-b4 Bc1-g5 Ke8-g8 Nd4-f5 d7-d5
67 37 568 8131462 e2-e4 e7-e5 Ng1-f3 Nb8-c6 Nb1-c3 Ng8-f6 d2-d4 e5xd4 Nf3xd4 Bf8-b4 f2-f3 Ke8-g8 a2-a3 Bb4xc3 b2xc3 d7-
d5 Nd4xc6 b7xc6 e4-e5 Qd8-e7 Bc1-f4 Bc8-b7
68 37 685 10052322 e2-e4 e7-e5 Ng1-f3 Nb8-c6 Nb1-c3 Ng8-f6 d2-d4 e5xd4 Nf3xd4 Bf8-b4 f2-f3 Ke8-g8 Bf1-b5 a7-a6 Bb5-a4 N
c6xd4 Qd1xd4 c7-c5 Qd4-d2 b7-b5 Ba4-b3 c5-c4 e4-e5 c4xb3 e5xf6 Rf8-e8 Ke1-d1 b3xc2 Qd2xc2 Qd8xf6 Bc1-d2
69 37 799 11879346 e2-e4 e7-e5 Ng1-f3 Nb8-c6 Nb1-c3 Ng8-f6 d2-d4 e5xd4 Nf3xd4 Bf8-b4 Nd4xc6 d7xc6 Qd1xd8 Ke8xd8 Bc1-g5
Bc8-e6 Bg5xf6 g7xf6 Ra1-d1 Kd8-e7 Rd1-d3 Ra8-d8 a2-a3 Rd8xd3 c2xd3
70 37 913 13631069 e2-e4 e7-e5 Ng1-f3 Nb8-c6 Nb1-c3 Ng8-f6 d2-d4 e5xd4 Nf3xd4 Bf8-b4 Nd4xc6 d7xc6 Qd1xd8 Ke8xd8 f2-f3 B
c8-e6 Bc1-f4 Rh8-e8 Bf4-e5 Be6-d7 Be5-d4 c6-c5 Bd4-e3 Nf6-d5 Be3xc5 Bb4xc5 Nc3xd5 f7-f5 Bf1-d3 c7-c6 Nd5-c3 Bc5-d4 Ke1-c
1 Bd4-e3 Kc1-b1 f5xe4 Bd3xe4 Kd8-c7
71 37 1027 15346953 e2-e4 e7-e5 Ng1-f3 Nb8-c6 Nb1-c3 Ng8-f6 d2-d4 e5xd4 Nf3xd4 Bf8-b4 Nd4xc6 d7xc6 Qd1xd8 Ke8xd8 f2-f3
Bc8-e6 Bc1-f4 Rh8-e8 Bf4-e5 Be6-d7 Be5-d4 c6-c5 Bd4-e3 Nf6-d5 Be3xc5 Bb4xc5 Nc3xd5 f7-f5 Bf1-d3 c7-c6 Nd5-c3 Kd8-c7 Ke1-
c1 f5-f4 Kc1-b1 Bd7-e6 e4-e5 Bc5-d4 Rh1-e1 g7-g6 g2-g3 Bd4-f2 Re1-h1 Bf2-e3 Nc3-e4 Ra8-d8 g3xf4 Be3xf4 Ne4-f6 Re8-f8 Nf6
xh7 Rf8-h8

# 1 36 58183 e2-e4 e7-e5 Ng1-f3 Nb8-c6 Nb1-c3 Ng8-f6 d2-d4 e5xd4 Nf3xd4 Bf8-b4 Nd4xc6 b7xc6 Bf1-d3 Ke8-g8 Ke1-g1
Rf8-e8 Rf1-e1 d7-d6 Bc1-f4 Bb4-c5 Bd3-c4 Bc8-g4 Qd1-d2 Ra8-b8 h2-h3 Bg4-h5 e4-e5 d6xe5 Qd2xd8 Rb8xd8 Bf4xe5 Rd8-d2 Be5-g
3 Re8-d8 Bc4-d3 Bc5-d4 a2-a3 Bh5-g6 Ra1-d1 Bd4xc3 b2xc3 Rd2xd1 Re1xd1 Bg6xd3 c2xd3 Nf6-e4 Bg3xc7 Ne4xc3 Rd1-e1 Rd8-c8 Bc
7-d6 Nc3-d5 f2-f3 Rc8-d8 Kg1-f2 f7-f6 Bd6-g3 Kg8-f7 d3-d4 Rd8-e8 Re1xe8 Kf7xe8 Bg3-d6
# 2 36 12959 d2-d4 d7-d5 Nb1-c3 Ng8-f6 Ng1-f3 Nb8-c6 e2-e3 h7-h6 Bf1-d3
# 3 20 576 Nb1-c3 e7-e5 e2-e4 d7-d6 Ng1-f3
# 4 35 8754 Ng1-f3 d7-d5 Nb1-c3 Ng8-f6 d2-d4 e7-e6 e2-e3
# 5 14 350 e2-e3 e7-e5 d2-d4 d7-d6
# 6 16 392 d2-d3 e7-e5 Ng1-f3 d7-d6 e2-e4
# 7 -4 137 g2-g3 d7-d5 d2-d4 Ng8-f6
# 8 -4 136 b2-b3 e7-e5 e2-e4 Nb8-c6
# 9 -5 132 f2-f3 e7-e5 e2-e4 Nb8-c6
# 10 -5 131 h2-h3 d7-d5 d2-d4 Ng8-f6
# 11 -6 127 c2-c3 d7-d5 d2-d4 Ng8-f6
# 12 -5 131 a2-a3 d7-d5 d2-d4 Ng8-f6
# 13 -14 96 Nb1-a3 d7-d5 Ng1-f3 e7-e6
# 14 -15 93 Ng1-h3 e7-e5 e2-e4 Nb8-c6
# 15 -5 133 f2-f4 d7-d5 e2-e3 e7-e6 d2-d4
# 16 -4 137 c2-c4 e7-e5 d2-d3 d7-d6 e2-e4
# 17 -14 96 h2-h4 d7-d5 d2-d4
# 18 -14 96 a2-a4 d7-d5 d2-d4
# 19 -20 81 g2-g4 d7-d5 e2-e3
# 20 -19 81 b2-b4 e7-e5 Ng1-f3 d7-d6

nodes = 16221295 <91% qnodes> time = 11200ms nps = 1448329 eps = 1024649 nneps = 0
Tree: nodes = 2468222 depth = 62 pps = 7393 visits = 82802
qsearch_calls = 2391773 search_calls = 0
move e2e4
Werner
BrendanJNorman
Posts: 2526
Joined: Mon Feb 08, 2016 12:43 am
Full name: Brendan J Norman

Re: Scorpio 2.8.7 MCTS+NN windows version

Post by BrendanJNorman »

Daniel Shawul wrote: Sat Sep 08, 2018 8:30 am Hi,

I have made some significant work with GPU acceleration of NN evaluation in this version.
Multi-threaded batching as I have described in the programming section helps a lot and now scorpio
can be launched with upto 256 threads even on a 4-core machine and a single GPU and perform well.
I get 10kn/s on a 6x64 net on a P100 GPU.

This version also works on Windows machines at least on the CPU. I have not tested the GPU version so
I am gonna need help with that.

I will describe the steps I took to get scorpio+mcts+nn CPU version woking on windows. Once you get that working then you can
try to get the GPU version working as well, which btw will give you 2 orders of magnitude acceleration

Steps

a) Download egbbdll64.dll from here. This dll is used for probing bitbases and neural networks as well. For the latter it comes prepackaged with a tensorflow.dll which is a huge step compared to previous version where I expected the user to figure this out ... silly me. Extract these files to where egbb endgame bitbases are located (or in any other place if you just want neural network support)

b) Add to the "Path" environment variable the path to where you extracted the egbbdll64.ll. This step is required so that the system can find
tensorflow.dll, cudnn.dll which comes pre-packaged with egbbdll

c) Download some network files from here. I have networks as big as A0s (40x256) if you need
them but it is pretty slow. Then edit the nn_path in scorpio.ini to choose your network

d) Then on the command line do a "scorpio go quit" to see if it works as intended.

More information can be found here and here

Daniel
This is really an awesome project.

Daniel, could you give me some tips of how to get/use nn-train?

I'd love to experiment with some of my own nets.
Damir
Posts: 2801
Joined: Mon Feb 11, 2008 3:53 pm
Location: Denmark
Full name: Damir Desevac

Re: Scorpio 2.8.7 MCTS+NN windows version

Post by Damir »

Daniel Shawul wrote: Sat Sep 08, 2018 8:30 am Hi,

I have made some significant work with GPU acceleration of NN evaluation in this version.
Multi-threaded batching as I have described in the programming section helps a lot and now scorpio
can be launched with upto 256 threads even on a 4-core machine and a single GPU and perform well.
I get 10kn/s on a 6x64 net on a P100 GPU.

This version also works on Windows machines at least on the CPU. I have not tested the GPU version so
I am gonna need help with that.

I will describe the steps I took to get scorpio+mcts+nn CPU version woking on windows. Once you get that working then you can
try to get the GPU version working as well, which btw will give you 2 orders of magnitude acceleration

Steps

a) Download egbbdll64.dll from here. This dll is used for probing bitbases and neural networks as well. For the latter it comes prepackaged with a tensorflow.dll which is a huge step compared to previous version where I expected the user to figure this out ... silly me. Extract these files to where egbb endgame bitbases are located (or in any other place if you just want neural network support)

b) Add to the "Path" environment variable the path to where you extracted the egbbdll64.ll. This step is required so that the system can find
tensorflow.dll, cudnn.dll which comes pre-packaged with egbbdll

c) Download some network files from here. I have networks as big as A0s (40x256) if you need
them but it is pretty slow. Then edit the nn_path in scorpio.ini to choose your network

d) Then on the command line do a "scorpio go quit" to see if it works as intended.

More information can be found here and here

Daniel
Thanks a lot for the new engine Daniel. But unfortunately I can not download the networks. Something is wrong...
User avatar
Werner
Posts: 2871
Joined: Wed Mar 08, 2006 10:09 pm
Location: Germany
Full name: Werner Schüle

Re: Scorpio 2.8.7 MCTS+NN windows version

Post by Werner »

Werner
Daniel Shawul
Posts: 4185
Joined: Tue Mar 14, 2006 11:34 am
Location: Ethiopia

Re: Scorpio 2.8.7 MCTS+NN windows version

Post by Daniel Shawul »

Werner wrote: Sat Sep 08, 2018 11:32 am Thanks Daniel for the lot of work.
I am not sure if it works here on my Windows 10 System as I am not sure I did this correct:
Add to the "Path" environment variable the path to where you extracted the egbbdll64.ll (it is now on \System32 and in the scorpio path too.
PS the path to the nets do not work. Here my output with nneps = 0

feature done=0
ht 16777216 X 16 = 256.0 MB
eht 524288 X 8 = 8.0 MB
pht 32768 X 24 = 0.8 MB
treeht 335539200 X 40 = 12799.8 MB
processors [1]
go
EgbbProbe 4.1 by Daniel Shawul
180 egbbs loaded !
loading_time = 0s
[st = 11114ms, mt = 29250ms , hply = 0 , moves_left 10]
63 35 112 1385180 e2-e4 e7-e5 Nb1-c3 Nb8-c6 d2-d3 Ng8-f6
64 37 224 2931972 e2-e4 e7-e5 Ng1-f3 Nb8-c6 Nb1-c3 Ng8-f6 d2-d4 e5xd4 Nf3xd4
65 37 337 4497275 e2-e4 e7-e5 Ng1-f3 Nb8-c6 Nb1-c3 Ng8-f6 d2-d4 d7-d6 d4-d5 Nc6-b4 Bf1-b5 c7-c6
66 37 449 6178313 e2-e4 e7-e5 Ng1-f3 Nb8-c6 Nb1-c3 Ng8-f6 d2-d4 e5xd4 Nf3xd4 Bf8-b4 Bc1-g5 Ke8-g8 Nd4-f5 d7-d5
67 37 568 8131462 e2-e4 e7-e5 Ng1-f3 Nb8-c6 Nb1-c3 Ng8-f6 d2-d4 e5xd4 Nf3xd4 Bf8-b4 f2-f3 Ke8-g8 a2-a3 Bb4xc3 b2xc3 d7-
d5 Nd4xc6 b7xc6 e4-e5 Qd8-e7 Bc1-f4 Bc8-b7
68 37 685 10052322 e2-e4 e7-e5 Ng1-f3 Nb8-c6 Nb1-c3 Ng8-f6 d2-d4 e5xd4 Nf3xd4 Bf8-b4 f2-f3 Ke8-g8 Bf1-b5 a7-a6 Bb5-a4 N
c6xd4 Qd1xd4 c7-c5 Qd4-d2 b7-b5 Ba4-b3 c5-c4 e4-e5 c4xb3 e5xf6 Rf8-e8 Ke1-d1 b3xc2 Qd2xc2 Qd8xf6 Bc1-d2
69 37 799 11879346 e2-e4 e7-e5 Ng1-f3 Nb8-c6 Nb1-c3 Ng8-f6 d2-d4 e5xd4 Nf3xd4 Bf8-b4 Nd4xc6 d7xc6 Qd1xd8 Ke8xd8 Bc1-g5
Bc8-e6 Bg5xf6 g7xf6 Ra1-d1 Kd8-e7 Rd1-d3 Ra8-d8 a2-a3 Rd8xd3 c2xd3
70 37 913 13631069 e2-e4 e7-e5 Ng1-f3 Nb8-c6 Nb1-c3 Ng8-f6 d2-d4 e5xd4 Nf3xd4 Bf8-b4 Nd4xc6 d7xc6 Qd1xd8 Ke8xd8 f2-f3 B
c8-e6 Bc1-f4 Rh8-e8 Bf4-e5 Be6-d7 Be5-d4 c6-c5 Bd4-e3 Nf6-d5 Be3xc5 Bb4xc5 Nc3xd5 f7-f5 Bf1-d3 c7-c6 Nd5-c3 Bc5-d4 Ke1-c
1 Bd4-e3 Kc1-b1 f5xe4 Bd3xe4 Kd8-c7
71 37 1027 15346953 e2-e4 e7-e5 Ng1-f3 Nb8-c6 Nb1-c3 Ng8-f6 d2-d4 e5xd4 Nf3xd4 Bf8-b4 Nd4xc6 d7xc6 Qd1xd8 Ke8xd8 f2-f3
Bc8-e6 Bc1-f4 Rh8-e8 Bf4-e5 Be6-d7 Be5-d4 c6-c5 Bd4-e3 Nf6-d5 Be3xc5 Bb4xc5 Nc3xd5 f7-f5 Bf1-d3 c7-c6 Nd5-c3 Kd8-c7 Ke1-
c1 f5-f4 Kc1-b1 Bd7-e6 e4-e5 Bc5-d4 Rh1-e1 g7-g6 g2-g3 Bd4-f2 Re1-h1 Bf2-e3 Nc3-e4 Ra8-d8 g3xf4 Be3xf4 Ne4-f6 Re8-f8 Nf6
xh7 Rf8-h8

# 1 36 58183 e2-e4 e7-e5 Ng1-f3 Nb8-c6 Nb1-c3 Ng8-f6 d2-d4 e5xd4 Nf3xd4 Bf8-b4 Nd4xc6 b7xc6 Bf1-d3 Ke8-g8 Ke1-g1
Rf8-e8 Rf1-e1 d7-d6 Bc1-f4 Bb4-c5 Bd3-c4 Bc8-g4 Qd1-d2 Ra8-b8 h2-h3 Bg4-h5 e4-e5 d6xe5 Qd2xd8 Rb8xd8 Bf4xe5 Rd8-d2 Be5-g
3 Re8-d8 Bc4-d3 Bc5-d4 a2-a3 Bh5-g6 Ra1-d1 Bd4xc3 b2xc3 Rd2xd1 Re1xd1 Bg6xd3 c2xd3 Nf6-e4 Bg3xc7 Ne4xc3 Rd1-e1 Rd8-c8 Bc
7-d6 Nc3-d5 f2-f3 Rc8-d8 Kg1-f2 f7-f6 Bd6-g3 Kg8-f7 d3-d4 Rd8-e8 Re1xe8 Kf7xe8 Bg3-d6
# 2 36 12959 d2-d4 d7-d5 Nb1-c3 Ng8-f6 Ng1-f3 Nb8-c6 e2-e3 h7-h6 Bf1-d3
# 3 20 576 Nb1-c3 e7-e5 e2-e4 d7-d6 Ng1-f3
# 4 35 8754 Ng1-f3 d7-d5 Nb1-c3 Ng8-f6 d2-d4 e7-e6 e2-e3
# 5 14 350 e2-e3 e7-e5 d2-d4 d7-d6
# 6 16 392 d2-d3 e7-e5 Ng1-f3 d7-d6 e2-e4
# 7 -4 137 g2-g3 d7-d5 d2-d4 Ng8-f6
# 8 -4 136 b2-b3 e7-e5 e2-e4 Nb8-c6
# 9 -5 132 f2-f3 e7-e5 e2-e4 Nb8-c6
# 10 -5 131 h2-h3 d7-d5 d2-d4 Ng8-f6
# 11 -6 127 c2-c3 d7-d5 d2-d4 Ng8-f6
# 12 -5 131 a2-a3 d7-d5 d2-d4 Ng8-f6
# 13 -14 96 Nb1-a3 d7-d5 Ng1-f3 e7-e6
# 14 -15 93 Ng1-h3 e7-e5 e2-e4 Nb8-c6
# 15 -5 133 f2-f4 d7-d5 e2-e3 e7-e6 d2-d4
# 16 -4 137 c2-c4 e7-e5 d2-d3 d7-d6 e2-e4
# 17 -14 96 h2-h4 d7-d5 d2-d4
# 18 -14 96 a2-a4 d7-d5 d2-d4
# 19 -20 81 g2-g4 d7-d5 e2-e3
# 20 -19 81 b2-b4 e7-e5 Ng1-f3 d7-d6

nodes = 16221295 <91% qnodes> time = 11200ms nps = 1448329 eps = 1024649 nneps = 0
Tree: nodes = 2468222 depth = 62 pps = 7393 visits = 82802
qsearch_calls = 2391773 search_calls = 0
move e2e4
Edit "It is only woking without NN heres
Pretty supper awesome !!! Glad to see it is working !
You are gonna have to help me with testing if the GPU version works too.
Maybe I was paranoid about the "Path" thing because once you set the path to egbbdll, maybe it will
just look for the dlls there. I knes i had to set LD_LIBRARY_PATH in linux


To use the neural networks try doing this
"scorpio use_nn 1 go quit"

You should see some values for "nneps"
Last edited by Daniel Shawul on Sat Sep 08, 2018 2:34 pm, edited 1 time in total.
Daniel Shawul
Posts: 4185
Joined: Tue Mar 14, 2006 11:34 am
Location: Ethiopia

Re: Scorpio 2.8.7 MCTS+NN windows version

Post by Daniel Shawul »

BrendanJNorman wrote: Sat Sep 08, 2018 11:34 am
Daniel Shawul wrote: Sat Sep 08, 2018 8:30 am Hi,

I have made some significant work with GPU acceleration of NN evaluation in this version.
Multi-threaded batching as I have described in the programming section helps a lot and now scorpio
can be launched with upto 256 threads even on a 4-core machine and a single GPU and perform well.
I get 10kn/s on a 6x64 net on a P100 GPU.

This version also works on Windows machines at least on the CPU. I have not tested the GPU version so
I am gonna need help with that.

I will describe the steps I took to get scorpio+mcts+nn CPU version woking on windows. Once you get that working then you can
try to get the GPU version working as well, which btw will give you 2 orders of magnitude acceleration

Steps

a) Download egbbdll64.dll from here. This dll is used for probing bitbases and neural networks as well. For the latter it comes prepackaged with a tensorflow.dll which is a huge step compared to previous version where I expected the user to figure this out ... silly me. Extract these files to where egbb endgame bitbases are located (or in any other place if you just want neural network support)

b) Add to the "Path" environment variable the path to where you extracted the egbbdll64.ll. This step is required so that the system can find
tensorflow.dll, cudnn.dll which comes pre-packaged with egbbdll

c) Download some network files from here. I have networks as big as A0s (40x256) if you need
them but it is pretty slow. Then edit the nn_path in scorpio.ini to choose your network

d) Then on the command line do a "scorpio go quit" to see if it works as intended.

More information can be found here and here

Daniel
This is really an awesome project.

Daniel, could you give me some tips of how to get/use nn-train?

I'd love to experiment with some of my own nets.
To train your own networks clone this repository https://github.com/dshawul/nn-train

To train from a collection of games (PGN) do:
python train.py --pgn ccrl.pgn
And to train from a collection of labelled (EPD) positions:
python train.ph --epd quiet.epd

Then to convert your keras model to protobuf tensorformat do:
./convert.sh ID-model-0

You will get ID-model-0.pb in the nets/ directory.
You can use multiple GPUs for training, you can train multiple networks simultanesouly by editing train.py

I will put more documentaiton for this process.

Daniel
Daniel Shawul
Posts: 4185
Joined: Tue Mar 14, 2006 11:34 am
Location: Ethiopia

Re: Scorpio 2.8.7 MCTS+NN windows version

Post by Daniel Shawul »

Give me some time to fix this,
the egbbdll I uploaded seems to be a dynamically linked dll that is missing some dependencies...
Daniel Shawul
Posts: 4185
Joined: Tue Mar 14, 2006 11:34 am
Location: Ethiopia

Re: Scorpio 2.8.7 MCTS+NN windows version

Post by Daniel Shawul »

Daniel Shawul wrote: Sat Sep 08, 2018 2:56 pm Give me some time to fix this,
the egbbdll I uploaded seems to be a dynamically linked dll that is missing some dependencies...
Actually what I had was correct. Here is more explanation on what I did.

I extracted the scorpio287-mcts+nn

Code: Select all

c:\dev\scorpio287-mcts-nn>dir
 Volume in drive C is OS
 Volume Serial Number is 78F4-686E

 Directory of c:\dev\scorpio287-mcts-nn

09/08/2018  12:40 PM    <DIR>          .
09/08/2018  12:40 PM    <DIR>          ..
09/08/2018  12:58 PM    <DIR>          bin
               0 File(s)              0 bytes
               3 Dir(s)  159,065,767,936 bytes free

c:\dev\scorpio287-mcts-nn>cd bin/Windows

c:\dev\scorpio287-mcts-nn\bin\Windows>dir
 Volume in drive C is OS
 Volume Serial Number is 78F4-686E

 Directory of c:\dev\scorpio287-mcts-nn\bin\Windows

09/08/2018  01:58 PM    <DIR>          .
09/08/2018  01:58 PM    <DIR>          ..
09/08/2018  01:57 PM    <DIR>          egbbdll
09/08/2018  12:58 PM    <DIR>          nets-ccrl
09/07/2018  10:53 PM           343,040 scorpio-nopop.exe
09/07/2018  10:55 PM           342,528 scorpio.exe
09/08/2018  01:58 PM             3,960 scorpio.ini
               3 File(s)        689,528 bytes
               4 Dir(s)  159,065,767,936 bytes free

 Directory of c:\dev\scorpio287-mcts-nn\bin\Windows\egbbdll

09/08/2018  01:57 PM    <DIR>          .
09/08/2018  01:57 PM    <DIR>          ..
09/08/2018  01:57 PM           344,576 egbbdll64.dll
09/08/2018  01:57 PM        71,551,488 tensorflow.dll
               2 File(s)     71,896,064 bytes
               2 Dir(s)  159,066,640,384 bytes free

c:\dev\scorpio287-mcts-nn\bin\Windows\egbbdll>cd ../nets-ccrl

c:\dev\scorpio287-mcts-nn\bin\Windows\nets-ccrl>dir
 Volume in drive C is OS
 Volume Serial Number is 78F4-686E

 Directory of c:\dev\scorpio287-mcts-nn\bin\Windows\nets-ccrl

09/08/2018  12:58 PM    <DIR>          .
09/08/2018  12:58 PM    <DIR>          ..
09/07/2018  08:57 PM           804,338 net-1x32.pb
               1 File(s)        804,338 bytes
               2 Dir(s)  159,066,636,288 bytes free
So in the bin/Windows directory I have directory for egbbdll which contains both egbbdll64.dll and tensorflow.dll
In the nets-ccrl directory I have one sample network file

Then I edit scorpio.ini

Code: Select all

egbb_path                egbbdll\
or more explicitly

Code: Select all

egbb_path               C:\dev\scorpio287-mcts-nn\bin\Windows\egbbdll\
Try setting your paths with backslash as in "C:\dev\scorpio287-mcts-nn\bin\Windows\egbbdll\" and don't forget to put
a backslash at the end as well. This is one of the issues people encounter with setting egbbdll paths in windows

Also I added the this explict path to the "Path" environment variable. Then a "scorpio.exe go quit" should work with tensorflow.dll
and give you values for nneps (neural network evaluations per second) as shown below

Code: Select all

c:\dev\scorpio287-mcts-nn\bin\Windows>scorpio.exe go quit
feature done=0
ht 4194304 X 16 = 64.0 MB
eht 524288 X 8 = 8.0 MB
pht 32768 X 24 = 0.8 MB
treeht 335539200 X 40 = 12799.8 MB
processors [1]
EgbbProbe 4.1 by Daniel Shawul
0 egbbs loaded !
Loading neural network ...
2018-09-08 14:07:25.520907: I c:\users\user\source\repos\tensorflow\tensorflow\core\platform\cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2
Neural network loaded !
loading_time = 0s
[st = 11114ms, mt = 29250ms , hply = 0 , moves_left 10]
63 24 112 84698  d2-d4 e7-e5 Ng1-f3 Bf8-b4 c2-c3 e5xd4 c3xb4
64 21 224 221714  d2-d4 e7-e5 Ng1-f3 e5xd4 Qd1xd4
65 18 336 385633  d2-d4 d7-d5 e2-e3 e7-e6 Nb1-c3 Ng8-f6
66 16 447 569291  d2-d4 d7-d5 Ng1-f3 Ng8-f6 e2-e3 Nb8-c6
67 17 559 772624  d2-d4 d7-d5 Ng1-f3 Ng8-f6 e2-e3 e7-e6 Bf1-b5 Nb8-c6
68 17 670 1005244  d2-d4 d7-d5 Ng1-f3 Ng8-f6 e2-e3 Nb8-c6 Bf1-d3
69 17 781 1294851  d2-d4 d7-d5 Ng1-f3 Ng8-f6 e2-e3 e7-e6 Bf1-b5 c7-c6 Bb5-d3
70 17 892 1569500  d2-d4 d7-d5 Ng1-f3 Nb8-c6 Bc1-f4 e7-e6 e2-e3 Ng8-e7 Nf3-g5 Ne7-g6 c2-c3 Ng6xf4 e3xf4
71 17 1004 1816652  d2-d4 d7-d5 Ng1-f3 Nb8-c6 e2-e3 e7-e6 Bf1-d3 Bf8-d6 c2-c4 Ng8-f6 c4xd5 e6xd5 Ke1-g1 Ke8-g8 Nb1-c3 Rf8-e8 a2-a3 a7-a6 h2-h3 Bc8-d7

#  1     11     880 e2-e4 Ng8-f6 e4-e5 Nf6-e4 Nb1-c3 d7-d5 Nc3xe4
#  2     15   14901 d2-d4 d7-d5 Ng1-f3 e7-e6 e2-e3 Ng8-f6 h2-h3 Nb8-c6 Bf1-d3 Bf8-d6 Nb1-c3 Ke8-g8 Ke1-g1 Bc8-d7 Bc1-d2 a7-a6 a2-a3 h7-h6 Qd1-e2 e6-e5 Nf3xe5 Bd6xe5 d4xe5 Nc6xe5 f2-f4 Ne5-g6 e3-e4 Rf8-e8 e4-e5 c7-c6 Bd2-e3 Qd8-e7 Be3-b6 Qe7-f8 Ra1-d1 Ra8-c8 Qe2-f2 Nf6-h7 Qf2-g3 Re8-e6 Bd3-f5 Qf8-e7 Bf5xe6 Bd7xe6 Rd1-d3 Rc8-e8 Rf1-e1 Be6-f5
#  3     10     816 Nb1-c3 d7-d5 e2-e4 d5xe4 d2-d4 Nb8-c6
#  4     11     992 Ng1-f3 d7-d5 d2-d3 Ng8-f6 h2-h3 Nb8-c6
#  5      8     592 e2-e3 d7-d5 Ng1-f3 e7-e6 Nb1-c3 Nb8-c6
#  6      8     613 d2-d3 d7-d5 Ng1-f3 Ng8-f6 h2-h3 Nb8-c6
#  7      3     342 g2-g3 e7-e5 Bf1-g2 d7-d6 Nb1-c3
#  8      0     252 b2-b3 d7-d5 d2-d4 e7-e6 Ng1-f3
#  9     -2     206 f2-f3 e7-e5 e2-e4 Nb8-c6
# 10     -2     214 h2-h3 d7-d5 d2-d4 e7-e6 e2-e3
# 11     -2     209 c2-c3 e7-e5 d2-d4 e5xd4 c3xd4
# 12     -3     200 a2-a3 d7-d5 d2-d4 e7-e6 Nb1-c3
# 13     -3     196 Nb1-a3 d7-d5 d2-d4 e7-e6 Ng1-f3
# 14     -2     208 Ng1-h3 e7-e5 e2-e4 d7-d6 Nb1-c3
# 15      0     264 f2-f4 d7-d5 Ng1-f3 e7-e6 e2-e3
# 16      1     302 c2-c4 e7-e5 Nb1-c3 d7-d6 e2-e4
# 17     -4     188 h2-h4 d7-d5 d2-d4 e7-e6 Ng1-f3
# 18     -5     174 a2-a4 d7-d5 d2-d4 e7-e6 e2-e3
# 19     -6     156 g2-g4 d7-d5 e2-e3 Ng8-f6
# 20     -3     197 b2-b4 e7-e5 Bc1-b2 Bf8xb4 Bb2xe5

nodes = 2421850 <92% qnodes> time = 11152ms nps = 217167 eps = 170056 nneps = 1258
Tree: nodes = 642510 depth = 62 pps = 1962 visits = 21883
      qsearch_calls = 621011 search_calls = 0
move d2d4
Bye Bye
Let me know if this helps
Daniel

Edit: I have updated the CPU egbbdll with a smaller binary of size 91 kb here https://github.com/dshawul/Scorpio/rele ... ws-cpu.zip
User avatar
Werner
Posts: 2871
Joined: Wed Mar 08, 2006 10:09 pm
Location: Germany
Full name: Werner Schüle

Re: Scorpio 2.8.7 MCTS+NN windows version

Post by Werner »

Hi Daniel,
thanks for the detailed Information. It works now!
I have had a wrong configuration:
the eggb files in C:\egbbs with the old egbbdll

and the new egbbdll inside the scorpio Folder - so the setup did not work of course.

Werner

nodes = 280883 <94% qnodes> time = 11156ms nps = 25177 eps = 20816 nneps = 185
Tree: nodes = 75252 depth = 32 pps = 228 visits = 2547
qsearch_calls = 72724 search_calls = 0
move d2d4
Bye Bye
Werner