Nemorino 6 (NNUE)

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

Moderators: hgm, Rebel, chrisw

Florentino
Posts: 43
Joined: Tue Mar 25, 2014 10:34 pm

Nemorino 6 (NNUE)

Post by Florentino »

I just released version 6 of Nemorino!
Main new feature is the support for NNUE networks, which improves Nemorino's playing strength a lot!

Nemorino comes with it's own network. The network format is slightly different than the original format from Stockfish as I removed the 64 "BONA_PIECE_ZERO" input parameters from the weights file and from the inference code (which is an adapted copy of the code from Stockfish). Nevertheless Nemorino can use the network files from Stockfish as well - it will simply create a converted copy on first use.

Additionally as it's more than 2 years since the last release, this version contains a lot of minor improvements and bugfixes.

You can find source code and binaries for windows at https://bitbucket.org/christian_g_nther/nemorino
User avatar
Rebel
Posts: 6991
Joined: Thu Aug 18, 2011 12:04 pm

Re: Nemorino 6 (NNUE)

Post by Rebel »

Code: Select all

    Engine           Points  Used Time   Found   Pos    Elo   Score   Score    ms     Mb  Cpu  Errors
 1  Stockfish 12     341638  11:34:09.7  25383  40000  3416  400000  85.41%   1000   128    1     0
 2  Rubi 1.8 NNUE    328244  11:30:21.7  23651  40000  3282  400000  82.06%   1000   128    1     0
 3  Minic 2.50 NNUE  322147  11:06:22.6  22986  40000  3221  400000  80.54%   1000   128    1     0
 4  Nemorino 6.00    319148  10:36:00.7  22853  40000  3191  400000  79.79%   1000   128    1    42
........
29  Nemorino 5.00    291649  10:05:27.4  19882  40000  2916  400000  72.91%   1000   128    1    41
+275 elo

4000ms tomorrow
90% of coding is debugging, the other 10% is writing bugs.
Terje
Posts: 347
Joined: Tue Nov 19, 2019 4:34 am
Location: https://github.com/TerjeKir/weiss
Full name: Terje Kirstihagen

Re: Nemorino 6 (NNUE)

Post by Terje »

What data was the net trained on? Nemorino games/evals?
User avatar
Rebel
Posts: 6991
Joined: Thu Aug 18, 2011 12:04 pm

Re: Nemorino 6 (NNUE)

Post by Rebel »

4000ms +292

Code: Select all

    Engine           Points  Used Time   Found   Pos    Elo   Score   Score    ms     Mb  Cpu  Errors
 1  Stockfish 12     348460  44:54:23.9  26480  40000  3484  400000  87.12%   4000   128    1     0
 2  Rubi 1.8 NNUE    337312  44:48:11.8  24972  40000  3373  400000  84.33%   4000   128    1     0
 3  Minic 2.50 NNUE  336293  41:30:40.6  24680  40000  3362  400000  84.07%   4000   128    1     0
 4  Nemorino 6.00    332057  43:53:36.7  24202  40000  3320  400000  83.01%   4000   128    1    42
.....
30  Nemorino 5.00    302844  43:23:07.1  21009  40000  3028  400000  75.71%   4000   128    1    41
90% of coding is debugging, the other 10% is writing bugs.
User avatar
MikeB
Posts: 4889
Joined: Thu Mar 09, 2006 6:34 am
Location: Pen Argyl, Pennsylvania

Re: Nemorino 6 (NNUE)

Post by MikeB »

Rebel wrote: Tue Sep 29, 2020 2:22 am

Code: Select all

    Engine           Points  Used Time   Found   Pos    Elo   Score   Score    ms     Mb  Cpu  Errors
 1  Stockfish 12     341638  11:34:09.7  25383  40000  3416  400000  85.41%   1000   128    1     0
 2  Rubi 1.8 NNUE    328244  11:30:21.7  23651  40000  3282  400000  82.06%   1000   128    1     0
 3  Minic 2.50 NNUE  322147  11:06:22.6  22986  40000  3221  400000  80.54%   1000   128    1     0
 4  Nemorino 6.00    319148  10:36:00.7  22853  40000  3191  400000  79.79%   1000   128    1    42
........
29  Nemorino 5.00    291649  10:05:27.4  19882  40000  2916  400000  72.91%   1000   128    1    41
+275 elo

4000ms tomorrow
Stockfish has gained nearly 20 Elo in the last two days based on the LTC Elo gains per commit. The real Elo might be a little bit less, sill an excellent two days for the SF development team. My own testing against SF-11-R99 the last cur-dev-SF before the NNUE commit, is showing similar results.

Running a 30,000 game set now in preparation for a Honey-12-R1 engine family release this weekend.

Code: Select all

PGN File: c:/cluster.mfb/pgn/09290016.pgn
Time Control: Time Control-> base+inc: 25+0.500
Games: 30000
Threads: 1
Hash: 256

Current date : time (EDST)
Date: 09/29/20 : 00:46:21

Projected-> Time: 16h:26m:52s
     Run -> Time: 0h:30m:7s

825 game(s) loaded
Rank Name                 Rating   Δ     +    -     #     Σ    Σ%     W    L    D   W%    =%   OppR
---------------------------------------------------------------------------------------------------------

   1 Bluefish-12-R1        3539   0.0   20   20   276  158.0  57.2   65   25  186  23.6  67.4  3492
   2 Oki-Maguro-12-R1      3539   0.4   20   20   275  158.0  57.5   60   19  196  21.8  71.3  3492
   3 stockfish-092820      3535   3.4   20   20   274  154.0  56.2   60   26  188  21.9  68.6  3493
   4 Honey-12-R1           3535   0.1   20   20   274  155.0  56.6   59   23  192  21.5  70.1  3493
   5 Black-Diamond-12-R1   3465  70.2   20   20   276  119.0  43.1   31   69  176  11.2  63.8  3508
   6 Stockfish-11r99       3387  78.1   20   20   275   81.0  29.5   24  137  114   8.7  41.5  3523
---------------------------------------------------------------------------------------------------------

  Δ = delta from the next higher rated opponent
  # = number of games played
  Σ = total score, 1 point for win, 1/2 point for draw

LOS:
                     Bl Ok st Ho Bl St
Bluefish-12-R1          51 61 61 99100
Oki-Maguro-12-R1     48    60 60 99100
stockfish-092820     38 39    50 99100
Honey-12-R1          38 39 49    99100
Black-Diamond-12-R1   0  0  0  0    99
Stockfish-11r99       0  0  0  0  0

825 game(s) loaded

loops/scheduled: 6/240




I do expect SF to be on top when it's all over of course
Image
Florentino
Posts: 43
Joined: Tue Mar 25, 2014 10:34 pm

Re: Nemorino 6 (NNUE)

Post by Florentino »

Terje wrote: Tue Sep 29, 2020 2:28 am What data was the net trained on? Nemorino games/evals?
The net was trained on Nemorino evals at depth 12.
User avatar
Guenther
Posts: 4605
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: Nemorino 6 (NNUE)

Post by Guenther »

Florentino wrote: Mon Sep 28, 2020 10:11 pm I just released version 6 of Nemorino!
Main new feature is the support for NNUE networks, which improves Nemorino's playing strength a lot!

Nemorino comes with it's own network. The network format is slightly different than the original format from Stockfish as I removed the 64 "BONA_PIECE_ZERO" input parameters from the weights file and from the inference code (which is an adapted copy of the code from Stockfish). Nevertheless Nemorino can use the network files from Stockfish as well - it will simply create a converted copy on first use.

Additionally as it's more than 2 years since the last release, this version contains a lot of minor improvements and bugfixes.

You can find source code and binaries for windows at https://bitbucket.org/christian_g_nther/nemorino
Hi Christian, there seems to be an error in the default uci options for nnue.

It says

Code: Select all

option name UseNNUE type check default false
, but in reality it uses the nnue by default.

I am currently experimenting with compiling a faster build for my no popcount/SSE4.1 hardware, as there is some room
between your plain no popcount and SSE2 compilations.
It seems also that there is quite some speed improvement possible in the nnue implementation for older hardware.
(SF increased speed by a lot for those in the beginning of nnue)
https://rwbc-chess.de

trollwatch:
Chessqueen + chessica + AlexChess + Eduard + Sylwy
Florentino
Posts: 43
Joined: Tue Mar 25, 2014 10:34 pm

Re: Nemorino 6 (NNUE)

Post by Florentino »

Hello Günther,
regarding the default value: You are right I will fix it!
Regarding the compiles: The SSE2 compile is also a NO_POPCOUNT compile, so I assume it works on your hardware as well.
Best regards,
Christian
User avatar
Guenther
Posts: 4605
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: Nemorino 6 (NNUE)

Post by Guenther »

Florentino wrote: Tue Sep 29, 2020 12:42 pm
...
Regarding the compiles: The SSE2 compile is also a NO_POPCOUNT compile, so I assume it works on your hardware as well.
Best regards,
Christian
I know, but I still tried SSSE3 and SSE4.1 both w/o popcount, so far it seems there is just a tiny difference,
testing is difficult though with all this prefetching.
(It is not that important anyway, sooner or later such old hardware will bite the dust - I am already surprised
how long it survived, with some modifications, but still with the original main HD! since 2009)

BTW do you have an idea about how to exclude programs from prefetching?
https://rwbc-chess.de

trollwatch:
Chessqueen + chessica + AlexChess + Eduard + Sylwy
User avatar
Tibono
Posts: 79
Joined: Sat Aug 01, 2015 6:16 pm
Location: France

Re: Nemorino 6 (NNUE)

Post by Tibono »

Florentino wrote: Tue Sep 29, 2020 7:47 am The net was trained on Nemorino evals at depth 12.
Thanks for this NNUE version! And congrats for having trained the net on Nemorino's evals. I fear too many programs would senselessly converge towards the very same strength and playing style, by the way of using the same "best" available net.
Kind regards