Winter

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

Moderators: Harvey Williamson, bob, hgm

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
jorose
Posts: 317
Joined: Thu Jan 22, 2015 2:21 pm
Location: Zurich, Switzerland
Full name: Jonathan Rosenthal

Winter

Post by jorose » Mon Oct 05, 2020 8:18 am

I intend to reuse this thread in the future for all Winter releases, as other authors have done similarly. This first post is the Winter 0.9 release post.

Before I get into what has changed since version 0.9, I think it is interesting to note what has not changed. Winter is still using the exact same evaluation function as in v0.8, so all strength improvements stem from performance improvements and changes to search. Despite my intentions, Winter is still not supporting endgame tablebases. I know this was an oft requested feature, so there is probably some disappointment. I added support for Pyrrhic, but somewhere I had a bug that I couldn't figure out despite help from Andrew and Terje. I am sure I would have figured it out with a fresh mind the next day, but it kind of killed my motivation, so I decided to postpone EGTB support until the next release.

Now onto what has actually changed! I wrote the following for the release page:
  • WDL Search: WDL probabilities are now used in the whole search. Previously the WDL scores were transformed into scalar values for search purposes. This means Winter now outputs wdl estimates.
  • Support for UCI_ShowWDL uci option.
  • Support for Hash full UCI output.
  • Fixed Time, Node and Depth Searches should no longer return instantly in positions with only one legal move.
  • PV outputs are no longer restricted by the current depth.
  • PV outputs are restricted in the case of draws.
  • Winter has joined OpenBench. As a corollary, this means Winter has support for the bench command. A big thank you to Noobpwnftw who graciously donates the majority of resources to OpenBench, to Andrew Grant for writing OpenBench, to the SF dev team who made the original Fishtest and all the other great people working on or donating resources to OpenBench.
  • Various changes to the search. In general Winter is now more agressive in its pruning, especially in PV nodes.
  • Speed improvements, especially when compiled with GCC. The release binaries should still be significantly faster than in the previous release.
  • Time management has been improved. This is true for both repeating TC and TC with increment, but moreso in the case of increment. The time management is also easier to understand, in case someone would like to steal ideas.
  • Contempt and Armageddon had a minor rework. The functionality should be comparable to in Winter 0.8, but thanks to the new WDL Search it is easier to invert the effect of contempt. This means that cp and wdl score outputs are based on something close to the eval without contempt. That being said, the inverse does not work with contempt set to 100/-100. Armageddon default is 60/-60 for white and black respectively.
Looking forward there are a number of features I am looking at with regards to the next major version. Here are a few off the top of my head.
  • As mentioned above I would like to support Syzygy via Pyrrhic.
  • Fischer Random / Chess960
  • Various ideas I have with regards to the evaluation function. I will likely expand my dataset. At the moment Winter's net has less than 1/1000th the number of model parameters when compared to the NNUE based engines. For this reason, overfitting hasn't been much of an issue so far, but I need to modify my dataset in some way if I want to use larger.
  • Improve QS move ordering
  • Rework high depth move ordering. Most likely replacing the logistic regression model with a small neural net.
  • Partial support for NNUE. I am not sure how far I will go in this regard, but main idea is for people to be able to use nets trained for other engines in Winter. I haven't yet decided if I will support the incremental updates or if I will adopt some ideas from NNUE. It is not likely that Winter will use the standard NNUE net architecture.
The newest release of Winter can be found here. https://github.com/rosenthj/Winter/releases

Finally here are two games. One is a nice miniature from regression testing and the other is a nice win with black against KMCTS from the CCC competition. The KMCTS game was more or less without book (I think just 1.d4). The miniature had a long book, but is well worth playing through, I think.

-Jonathan

User avatar
Werner
Posts: 2548
Joined: Wed Mar 08, 2006 9:09 pm

Re: Winter

Post by Werner » Mon Oct 05, 2020 9:20 am

Thanks for the new version.
Does version 0.9 use an internal nn ?
Werner

jorose
Posts: 317
Joined: Thu Jan 22, 2015 2:21 pm
Location: Zurich, Switzerland
Full name: Jonathan Rosenthal

Re: Winter

Post by jorose » Mon Oct 05, 2020 9:57 am

Werner wrote:
Mon Oct 05, 2020 9:20 am
Thanks for the new version.
Does version 0.9 use an internal nn ?
Yes, it has an internal NN. It is a very small network so the weights are actually hardcoded at the moment.

This has been the approach since Winter started using an NN back in version 0.6.2 and was mostly based on passed experiences where users got confused by external weight files.

I have not decided what I will do if the network gets considerably larger.
-Jonathan

Guenther
Posts: 3436
Joined: Wed Oct 01, 2008 4:33 am
Location: Regensburg, Germany
Full name: Guenther Simon
Contact:

Re: Winter

Post by Guenther » Mon Oct 05, 2020 10:27 am

jorose wrote:
Mon Oct 05, 2020 9:57 am
Werner wrote:
Mon Oct 05, 2020 9:20 am
Thanks for the new version.
Does version 0.9 use an internal nn ?
Yes, it has an internal NN. It is a very small network so the weights are actually hardcoded at the moment.

This has been the approach since Winter started using an NN back in version 0.6.2 and was mostly based on passed experiences where users got confused by external weight files.

I have not decided what I will do if the network gets considerably larger.
Thanks for the new release Jonathan!

I tried the ancient and the older compiles here and get around 195-200 kn/s on my old quadcore from startpos (d16-d22).
https://rwbc-chess.de
Greg Strong@ovyron wrote: What I think is that you have a very, very, VERY strong desire to post, and very little self-control.
All the time. In every conversation. You must post. Something. It's like you just can't help yourself.

User avatar
Werner
Posts: 2548
Joined: Wed Mar 08, 2006 9:09 pm

Re: Winter

Post by Werner » Mon Oct 05, 2020 11:59 am

jorose wrote:
Mon Oct 05, 2020 9:57 am
I have not decided what I will do if the network gets considerably larger.
Thanks, I am not interested in a Winter Chess Engine with a Stockfish NNUE.
Werner

Gabor Szots
Posts: 623
Joined: Sat Jul 21, 2018 5:43 am
Location: Szentendre, Hungary
Full name: Gabor Szots

Re: Winter

Post by Gabor Szots » Mon Oct 05, 2020 1:43 pm

Thanks Jonathan.
Gabor Szots
CCRL testing group

User avatar
CMCanavessi
Posts: 906
Joined: Thu Dec 28, 2017 3:06 pm
Location: Argentina

Re: Winter

Post by CMCanavessi » Mon Oct 05, 2020 3:56 pm

"Before I get into what has changed since version 0.9"

Typo :mrgreen:
Follow my tournament and some Leela gauntlets live at http://twitch.tv/ccls

jorose
Posts: 317
Joined: Thu Jan 22, 2015 2:21 pm
Location: Zurich, Switzerland
Full name: Jonathan Rosenthal

Re: Winter

Post by jorose » Mon Oct 05, 2020 4:37 pm

Guenther wrote:
Mon Oct 05, 2020 10:27 am
Thanks for the new release Jonathan!

I tried the ancient and the older compiles here and get around 195-200 kn/s on my old quadcore from startpos (d16-d22).
How fast is this compared to Winter 0.8? I am expecting it to be considerably more than it was previously.
Werner wrote:
Mon Oct 05, 2020 11:59 am
Thanks, I am not interested in a Winter Chess Engine with a Stockfish NNUE.
Yes, that isn't something I am intending. If I do add support for NNUE networks it would still not be based on any SF code and my referencing SF code would mostly be to make sure networks are compatible. Even so, the primary Winter networks will probably not be compatible with SF style NNUE. The thought process here is people will be able to train nets for Winter if they want and have a guarantee that they will still work even if I change my codebase. At the moment I have not really encouraged users to train new nets, because with how things currently are, whenever I come up with a new set of input features, previous networks all become incompatible.
Gabor Szots wrote:
Mon Oct 05, 2020 1:43 pm
Thanks Jonathan.
No, thank you! Chess programming is a very solitary hobby. Without the support of all the testers, fans and fellow developers it would be quite depressing I think. Winter would not be the same and neither would I.
CMCanavessi wrote:
Mon Oct 05, 2020 3:56 pm
"Before I get into what has changed since version 0.9"

Typo :mrgreen:
Or maybe I was just super prolific in the short time span between making this thread and releasing version 0.9?

Good catch :)
-Jonathan

Guenther
Posts: 3436
Joined: Wed Oct 01, 2008 4:33 am
Location: Regensburg, Germany
Full name: Guenther Simon
Contact:

Re: Winter

Post by Guenther » Mon Oct 05, 2020 4:48 pm

jorose wrote:
Mon Oct 05, 2020 4:37 pm
Guenther wrote:
Mon Oct 05, 2020 10:27 am
Thanks for the new release Jonathan!

I tried the ancient and the older compiles here and get around 195-200 kn/s on my old quadcore from startpos (d16-d22).
How fast is this compared to Winter 0.8? I am expecting it to be considerably more than it was previously.
Oh yes! I checked it now vs. the same compilation of version 0.8.
Here it is between 110-115 kn/s (same conditions as above), so 0.9 seems nearly 80% faster.
https://rwbc-chess.de
Greg Strong@ovyron wrote: What I think is that you have a very, very, VERY strong desire to post, and very little self-control.
All the time. In every conversation. You must post. Something. It's like you just can't help yourself.

jorose
Posts: 317
Joined: Thu Jan 22, 2015 2:21 pm
Location: Zurich, Switzerland
Full name: Jonathan Rosenthal

Re: Winter

Post by jorose » Mon Oct 12, 2020 4:20 am

I don't really want to post many individual games here, but I just replayed a miniature from Graham's Amateur Division 2 that shall be among the exceptions. I'm not sure when I last saw a game with this many pawn sacrifices!

-Jonathan

Post Reply