Compiling Winter for Windows

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

Moderators: hgm, Rebel, chrisw

User avatar
AdminX
Posts: 6339
Joined: Mon Mar 13, 2006 2:34 pm
Location: Acworth, GA

Compiling Winter for Windows

Post by AdminX »

Dos anyone have directions for compiling Winter on Windows?

Thanks

https://github.com/rosenthj/Winter
"Good decisions come from experience, and experience comes from bad decisions."
__________________________________________________________________
Ted Summers
User avatar
Guenther
Posts: 4605
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: Compiling Winter for Windows

Post by Guenther »

AdminX wrote: Thu Oct 31, 2019 3:23 pm Dos anyone have directions for compiling Winter on Windows?

Thanks

https://github.com/rosenthj/Winter
Aren't you happy with the delivered compiles@releases?
https://rwbc-chess.de

trollwatch:
Chessqueen + chessica + AlexChess + Eduard + Sylwy
User avatar
AdminX
Posts: 6339
Joined: Mon Mar 13, 2006 2:34 pm
Location: Acworth, GA

Re: Compiling Winter for Windows

Post by AdminX »

Yes, but I would like to learn howto compile it myself.
"Good decisions come from experience, and experience comes from bad decisions."
__________________________________________________________________
Ted Summers
jorose
Posts: 358
Joined: Thu Jan 22, 2015 3:21 pm
Location: Zurich, Switzerland
Full name: Jonathan Rosenthal

Re: Compiling Winter for Windows

Post by jorose »

Back when I was compiling Winter on Windows I used a mingw gcc compiler and it was fairly straightforward, but I failed when trying to compile with clang. I don't know much about C++ on Windows, so I am sure someone else might be of more use.

Longterm I would like to support cmake, but I have never written a cmake file myself before, so it would take a bit of effort. For now there are other things that I would prefer to prioritize. Currently top priority is releasing my NN training script.

Winter does not rely on any libraries aside from the C++ standard library. I am not sure what other information I can give to help compilation. Feel free to contact me here or via email.

My university email adress is rosenth0 at my current university dot edu. I hope you can make the substitutions an internet crawler cannot. I am currently a PhD student at Purdue.
-Jonathan
User avatar
AdminX
Posts: 6339
Joined: Mon Mar 13, 2006 2:34 pm
Location: Acworth, GA

Re: Compiling Winter for Windows

Post by AdminX »

jorose wrote: Fri Nov 01, 2019 7:42 am Back when I was compiling Winter on Windows I used a mingw gcc compiler and it was fairly straightforward, but I failed when trying to compile with clang. I don't know much about C++ on Windows, so I am sure someone else might be of more use.

Longterm I would like to support cmake, but I have never written a cmake file myself before, so it would take a bit of effort. For now there are other things that I would prefer to prioritize. Currently top priority is releasing my NN training script.

Winter does not rely on any libraries aside from the C++ standard library. I am not sure what other information I can give to help compilation. Feel free to contact me here or via email.

My university email adress is rosenth0 at my current university dot edu. I hope you can make the substitutions an internet crawler cannot. I am currently a PhD student at Purdue.
Thanks for this information.
"Good decisions come from experience, and experience comes from bad decisions."
__________________________________________________________________
Ted Summers
User avatar
Guenther
Posts: 4605
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: Compiling Winter for Windows

Post by Guenther »

jorose wrote: Fri Nov 01, 2019 7:42 am Back when I was compiling Winter on Windows I used a mingw gcc compiler and it was fairly straightforward, but I failed when trying to compile with clang. I don't know much about C++ on Windows, so I am sure someone else might be of more use.

Longterm I would like to support cmake, but I have never written a cmake file myself before, so it would take a bit of effort. For now there are other things that I would prefer to prioritize. Currently top priority is releasing my NN training script.

Winter does not rely on any libraries aside from the C++ standard library. I am not sure what other information I can give to help compilation. Feel free to contact me here or via email.

My university email adress is rosenth0 at my current university dot edu. I hope you can make the substitutions an internet crawler cannot. I am currently a PhD student at Purdue.
Copmiled latest master with MingW via MySys2 and just got a little warning about an unused variable?

Code: Select all

src/search.cc:730:7: warning: 'Score search::sample_node_and_return_alpha(const Board&, Depth, {anonymous}::NodeType, Score)' defined but not used [-Wunused-function]
I compiled a SSE4.1 version for my machine from current master and with go depth 20 it reaches ~200 kn/s, while the 0.7 version (called 'Older') from your github download reaches around ~170 kn/s. So either Winter has got faster in n/s, or it is because it is compiled on a target machine.

Code: Select all

uci
id name Winter 0.7.4 SSE4.1
id author Jonathan Rosenthal
option name Hash type spin default 32 min 1 max 104576
option name Threads type spin default 1 min 1 max 256
option name Contempt type spin default 0 min -100 max 100
option name Armageddon type check default false
uciok
go depth 20
info  depth 1 seldepth 1 time 0 nodes 21 nps 21000 score cp 27 pv d2d4
info  depth 2 seldepth 4 time 5 nodes 155 nps 25833 score cp 27 pv e2e3 d7d5
...
info  depth 18 seldepth 33 time 9689 nodes 1914060 nps 197529 score cp 20 pv e2e4 e7e5 b1c3 b8c6 g1f3 g8f6 f1b5 f8d6 e1g1 e8g8 d2d4 e5d4 f3d4 a7a6 b5e2 d6e5 c1e3 f8e8
info  depth 19 seldepth 39 time 25822 nodes 5138238 nps 198979 score cp 19 pv e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5c6 d7c6 e1g1 g8f6 f3e5 f6e4 d2d4 f8e7 f1e1 e4d6 b1c3 e8g8 d4d5
info  depth 20 seldepth 39 time 36874 nodes 7366983 nps 199782 score cp 21 pv e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5c6 d7c6 e1g1 f7f6 b1c3 f8c5 d2d3 g8e7 c1e3 c5d6 d3d4 e8g8 d4e5 f6e5
bestmove e2e4
https://rwbc-chess.de

trollwatch:
Chessqueen + chessica + AlexChess + Eduard + Sylwy
Dann Corbit
Posts: 12538
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: Compiling Winter for Windows

Post by Dann Corbit »

get MSYS2 and then install gcc 9.2
https://www.msys2.org/
To install any tool on msys2, you use pacman
https://github.com/msys2/msys2/wiki/Using-packages

Then it is as easy as :

Code: Select all

dcorbit@DCORBIT MINGW64 /e/chess
$ cd Winter-master/

dcorbit@DCORBIT MINGW64 /e/chess/Winter-master
$ ls
Contributors.txt  Copying.txt  data  logo.png  Makefile  README.md  src  tests

dcorbit@DCORBIT MINGW64 /e/chess/Winter-master
$ make
g++ -c -DNDEBUG -Ofast -flto -g3 -Wall -Wno-sign-compare -m64 -march=native -std=c++11 -Isrc -Isrc/general -Isrc/learning src/general/magic.cc -o src/general/magic.o
g++ -c -DNDEBUG -Ofast -flto -g3 -Wall -Wno-sign-compare -m64 -march=native -std=c++11 -Isrc -Isrc/general -Isrc/learning src/general/parse.cc -o src/general/parse.o
g++ -c -DNDEBUG -Ofast -flto -g3 -Wall -Wno-sign-compare -m64 -march=native -std=c++11 -Isrc -Isrc/general -Isrc/learning src/general/debug.cc -o src/general/debug.o
g++ -c -DNDEBUG -Ofast -flto -g3 -Wall -Wno-sign-compare -m64 -march=native -std=c++11 -Isrc -Isrc/general -Isrc/learning src/general/bookkeeping.cc -o src/general/bookkeeping.o
g++ -c -DNDEBUG -Ofast -flto -g3 -Wall -Wno-sign-compare -m64 -march=native -std=c++11 -Isrc -Isrc/general -Isrc/learning src/learning/cluster.cc -o src/learning/cluster.o
g++ -c -DNDEBUG -Ofast -flto -g3 -Wall -Wno-sign-compare -m64 -march=native -std=c++11 -Isrc -Isrc/general -Isrc/learning src/learning/machine_learning.cc -o src/learning/machine_learning.o
g++ -c -DNDEBUG -Ofast -flto -g3 -Wall -Wno-sign-compare -m64 -march=native -std=c++11 -Isrc -Isrc/general -Isrc/learning src/net_evaluation.cc -o src/net_evaluation.o
g++ -c -DNDEBUG -Ofast -flto -g3 -Wall -Wno-sign-compare -m64 -march=native -std=c++11 -Isrc -Isrc/general -Isrc/learning src/transposition.cc -o src/transposition.o
g++ -c -DNDEBUG -Ofast -flto -g3 -Wall -Wno-sign-compare -m64 -march=native -std=c++11 -Isrc -Isrc/general -Isrc/learning src/evaluation.cc -o src/evaluation.o
g++ -c -DNDEBUG -Ofast -flto -g3 -Wall -Wno-sign-compare -m64 -march=native -std=c++11 -Isrc -Isrc/general -Isrc/learning src/uci.cc -o src/uci.o
g++ -c -DNDEBUG -Ofast -flto -g3 -Wall -Wno-sign-compare -m64 -march=native -std=c++11 -Isrc -Isrc/general -Isrc/learning src/search.cc -o src/search.o
src/search.cc:730:7: warning: 'Score search::sample_node_and_return_alpha(const Board&, Depth, {anonymous}::NodeType, Score)' defined but not used [-Wunused-function]
  730 | Score sample_node_and_return_alpha(const Board &board, const Depth depth,
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
g++ -c -DNDEBUG -Ofast -flto -g3 -Wall -Wno-sign-compare -m64 -march=native -std=c++11 -Isrc -Isrc/general -Isrc/learning src/data.cc -o src/data.o
g++ -c -DNDEBUG -Ofast -flto -g3 -Wall -Wno-sign-compare -m64 -march=native -std=c++11 -Isrc -Isrc/general -Isrc/learning src/main.cc -o src/main.o
g++ -c -DNDEBUG -Ofast -flto -g3 -Wall -Wno-sign-compare -m64 -march=native -std=c++11 -Isrc -Isrc/general -Isrc/learning src/search_thread.cc -o src/search_thread.o
g++ -c -DNDEBUG -Ofast -flto -g3 -Wall -Wno-sign-compare -m64 -march=native -std=c++11 -Isrc -Isrc/general -Isrc/learning src/board.cc -o src/board.o
g++ -c -DNDEBUG -Ofast -flto -g3 -Wall -Wno-sign-compare -m64 -march=native -std=c++11 -Isrc -Isrc/general -Isrc/learning src/benchmark.cc -o src/benchmark.o
g++ -flto -Wall src/general/magic.o src/general/parse.o src/general/debug.o src/general/bookkeeping.o src/learning/cluster.o src/learning/machine_learning.o src/net_evaluation.o src/transposition.o src/evaluation.o src/uci.o src/search.o src/data.o src/main.o src/search_thread.o src/board.o src/benchmark.o -o Winter -lpthread

dcorbit@DCORBIT MINGW64 /e/chess/Winter-master
$
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.
Dann Corbit
Posts: 12538
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: Compiling Winter for Windows

Post by Dann Corbit »

Guenther wrote: Fri Nov 01, 2019 5:11 pm Copmiled latest master with MingW via MySys2 and just got a little warning about an unused variable?

Code: Select all

src/search.cc:730:7: warning: 'Score search::sample_node_and_return_alpha(const Board&, Depth, {anonymous}::NodeType, Score)' defined but not used [-Wunused-function]
I compiled a SSE4.1 version for my machine from current master and with go depth 20 it reaches ~200 kn/s, while the 0.7 version (called 'Older') from your github download reaches around ~170 kn/s. So either Winter has got faster in n/s, or it is because it is compiled on a target machine.
It's just a function that is not called anywhere. Nothing to worry about.
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.
Dann Corbit
Posts: 12538
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: Compiling Winter for Windows

Post by Dann Corbit »

Your NPS seems low.
I get 375K NPS on one thread and 2.9M NPS on 11 threads. I did use a big hash table of 16 Gb. I do not know if that makes a difference.
I just benched from the starting position with go infininte
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
Guenther
Posts: 4605
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: Compiling Winter for Windows

Post by Guenther »

Dann Corbit wrote: Fri Nov 01, 2019 7:29 pm Your NPS seems low.
I get 375K NPS on one thread and 2.9M NPS on 11 threads. I did use a big hash table of 16 Gb. I do not know if that makes a difference.
I just benched from the starting position with go infininte
For comparing we use always 1 thread and default hash ofc, also my machine is old and just SSE 4.1 as told.
https://rwbc-chess.de

trollwatch:
Chessqueen + chessica + AlexChess + Eduard + Sylwy