Chess engine: Mantissa 3.3.0 NNUE
This is not as big of a release as v3.0.0 was, which saw the introduction of several search changes, improvements to infrastructure, as well as the introduction of NNUE. I'm hard at work on pushing towards 4.0.0, which will no doubt end up having several improvements all around.
However, in the meantime, I did make one very big change. I've changed the topology for Mantissa's NNUE net and trained it on a better, larger, training set formed from Mantissa 3.0.0 self-play.
The new topology and structure is similar to the 3.0.0 net and consequently Zahak's, but takes an inspiration from a reading of Koivisto's source for a way to maintain certain symmetry to evaluations. Now instead of a 769th feature for side-to-move, the new net uses 2 sets of 128 neurons in the hidden layer with mirrored weights to reflect the game from the point of views of both sides. The outgoing weights from the hidden layer to the output neuron are "flipped" (or you can think of it as shifting around the positions of the neurons) based on side-to-move. There is still only one hidden layer and a single output neuron. In self-play at fast time control, this gained ~30 Elo over a 256-neuron Zahak-style net trained on the same data.
In addition to the change in topology, instead of a set of 60 million positions from Mantissa 2.6.2 self-play, the new net was trained on 140 million posititions from Mantissa 3.0.0 self-play games.
As before, all training and data gathering was done by tissa-trainer, Mantissa, and Cute-chess.
In 2+1, the resulting net plugged into Mantissa showed a strength increase of about 100 Elo over Mantissa 3.0.0 in self-play on my machine. I'm not sure how well this will translate against a pool of other engines, but it seemed worthy of a new release. The result is Mantissa-3.3.0, and it is likely I will continue to use this net, or another of the same topology, through 4.0.0 as I'll be focusing more on search improvements for a while.
Which Binary To Use
Included in this release are 2 binaries for playing Mantissa at full strength, one for Windows and one for Linux.
Linux: mantissa-3.3.0-avx-linux
Windows: mantissa-3.3.0-avx.exe
For those on slightly older hardware that still want to play around with Mantissa, I've also compiled versions which only require sse3 support, rather than AVX. These come with the caveat that they don't play at Mantissa's full strength, because the nps is cut roughly in half. Additionally, if your computer also lacks the popcnt instruction, you can get the nopopcnt variants. These are:
Linux: mantissa-3.3.0-sse3-linux
Linux: mantissa-3.3.0-sse3-nopopcnt-linux
Windows: mantissa-3.3.0-sse3.exe
Windows: mantissa-3.3.0-sse3-nopopcnt.exe
Thanks for your interest in Mantissa. I'll continue working hard for a 4.0.0 release, but have no timetable on when to expect it to be done. If you end up encountering any issues, please feel free to message me or raise an issue for this repo and I'll try to respond when I can.
Comments
Post a Comment