Igel and NNUE
As many of you are aware, there is a big thing happening these days in chess – NNUE based evaluation that is appearing now in many chess engines (Stockfish, Minic) replacing classic (or legacy) evaluation and adding enormous strength to existing engines bringing them to another level.
In my opinion, neural networks as efficient as NNUE will replace legacy handcrafted evaluation routines for most top engines competing in chess tournaments and this is just a matter of time.
NNUE is just a starting point in the evolution of chess engines and so many things can be tried/researched further to enhance strength of engines: hybrid evals, scaling of evals, modifications to learner and most importantly, working and researching input features of the network. I would be eager to try all of this in a near future in Igel.
Because of that I have decided to integrate NNUE into Igel and use it as a main evaluation function as of upcoming Igel 2.7.0 release. As a starting point the NNUE implementation in Igel is compatible with networks used by Stockfish, however I would discourage use of Stockfish network in Igel due to the following reasons:
1. Training of network is a complicated work, some may call it an art, so work of those people spending time training networks for Stockfish cannot be just used in Igel without their permissions
2. Other networks may be not working so well with Igel because of Igel’s search algorithm pruning conditions and scaling of network may be different
3. In near future the NNUE architecture in Igel may change if I chose to experiment with different features
4. I am currently working on a NNUE learner that is based solely on Igel search and most of the search parameters are going to be adapted to Igel based networks
Igel 2.7.0 will use NNUE network called "Night-Nurse" trained by Dietrich Kappe and based on his network BadGyal:
- https://github.com/dkappe/leela-chess-w ... i/Bad-Gyal
- https://github.com/dkappe/leela-chess-w ... -Gyal-Data
I would like to thank Dietrich for training this network and offering it to use for Igel’s TCEC S19 L2 release and for Igel 2.7.0. This network is adapted to Igel's search due to scaling adjustments and it adds significant strength to Igel compared with previous release.
I would like to keep a good user experience and integrate the network file directly into Igel's executable for Windows binaries: there is no need to configure network file, etc, simply use the executable and it will load the default network out of the box. It is still possible to configure custom eval file using command line for advanced users.
Introducing Igel chess engine
Moderator: Ras
-
- Posts: 297
- Joined: Sat Jun 30, 2018 10:58 pm
- Location: Ukraine
- Full name: Volodymyr Shcherbyna
-
- Posts: 3400
- Joined: Sat Feb 16, 2008 7:38 am
- Full name: Peter Martan
Re: Introducing Igel chess engine
Thanks a lot, Volodymyr!voffka wrote: ↑Wed Aug 19, 2020 11:56 pm Igel 2.7.0 will use NNUE network called "Night-Nurse" trained by Dietrich Kappe and based on his network BadGyal:
- https://github.com/dkappe/leela-chess-w ... i/Bad-Gyal
- https://github.com/dkappe/leela-chess-w ... -Gyal-Data
I would like to thank Dietrich for training this network and offering it to use for Igel’s TCEC S19 L2 release and for Igel 2.7.0. This network is adapted to Igel's search due to scaling adjustments and it adds significant strength to Igel compared with previous release.
I would like to keep a good user experience and integrate the network file directly into Igel's executable for Windows binaries: there is no need to configure network file, etc, simply use the executable and it will load the default network out of the box. It is still possible to configure custom eval file using command line for advanced users.
At your github- site there's a Igel_2_7_0.nnue to be downloaded too. Works with SF NNUE also, is it for Igel only?
Peter.
-
- Posts: 297
- Joined: Sat Jun 30, 2018 10:58 pm
- Location: Ukraine
- Full name: Volodymyr Shcherbyna
Re: Introducing Igel chess engine
Hello peter,
Technically Igel's NNUE implementation is compatible with SF networks in Igel 2.7.0 release, but due to the reasons above I recommend to use the network supplied with Igel release. This compatibility may change in the future versions.
-
- Posts: 136
- Joined: Wed Aug 15, 2007 12:18 pm
- Location: Munich
Re: Introducing Igel chess engine
Great news, Volodymyr!
-
- Posts: 3400
- Joined: Sat Feb 16, 2008 7:38 am
- Full name: Peter Martan
Re: Introducing Igel chess engine
3,5 points out of 4 games:
https://tcec-chess.com/
Go, Igel, go!

Pity there's just avx2-compiles for download, I can use SSE4.2-popcnt at the utmost.

Peter.
-
- Posts: 297
- Joined: Sat Jun 30, 2018 10:58 pm
- Location: Ukraine
- Full name: Volodymyr Shcherbyna
Re: Introducing Igel chess engine
Let me know which compiles you want to have, I put avx2 as it is most common, but I can do SSE and AVX512, etc.
-
- Posts: 8
- Joined: Thu Aug 17, 2017 2:31 pm
Re: Introducing Igel chess engine
Interesting points. Individual engines each training a net also seems a little unhelpful, like a computing resource drain for one. May I suggest thought is given to combining resources with other developers by creating some sort of net development similar to OpenBench which I know you are a supporter of.voffka wrote: ↑Wed Aug 19, 2020 11:56 pmAs a starting point the NNUE implementation in Igel is compatible with networks used by Stockfish, however I would discourage use of Stockfish network in Igel due to the following reasons:
1. Training of network is a complicated work, some may call it an art, so work of those people spending time training networks for Stockfish cannot be just used in Igel without their permissions
2. Other networks may be not working so well with Igel because of Igel’s search algorithm pruning conditions and scaling of network may be different
3. In near future the NNUE architecture in Igel may change if I chose to experiment with different features
4. I am currently working on a NNUE learner that is based solely on Igel search and most of the search parameters are going to be adapted to Igel based networks
-
- Posts: 3400
- Joined: Sat Feb 16, 2008 7:38 am
- Full name: Peter Martan
Re: Introducing Igel chess engine
SSE4.2-popcnt, if your compiler has flags for that, which I don't think there are any, so SSE4.1- popcnt for example or anything like this. The popcnt-avx2- compile even gets started in console but doesn't get loaded in GUI, at least not in Fritz.
My CPU is Intel Xeon X5670 x 12.
Thankful regards
Peter.
-
- Posts: 1632
- Joined: Tue Aug 21, 2018 7:52 pm
- Full name: Dietrich Kappe
Re: Introducing Igel chess engine
These nets can have very different playing styles. Check out the toga, ice, Komodo and Bad Gyal derived nnue. Each a style of its own.Sam Watson wrote: ↑Thu Aug 20, 2020 4:44 pmInteresting points. Individual engines each training a net also seems a little unhelpful, like a computing resource drain for one. May I suggest thought is given to combining resources with other developers by creating some sort of net development similar to OpenBench which I know you are a supporter of.voffka wrote: ↑Wed Aug 19, 2020 11:56 pmAs a starting point the NNUE implementation in Igel is compatible with networks used by Stockfish, however I would discourage use of Stockfish network in Igel due to the following reasons:
1. Training of network is a complicated work, some may call it an art, so work of those people spending time training networks for Stockfish cannot be just used in Igel without their permissions
2. Other networks may be not working so well with Igel because of Igel’s search algorithm pruning conditions and scaling of network may be different
3. In near future the NNUE architecture in Igel may change if I chose to experiment with different features
4. I am currently working on a NNUE learner that is based solely on Igel search and most of the search parameters are going to be adapted to Igel based networks
Fat Titz by Stockfish, the engine with the bodaciously big net. Remember: size matters. If you want to learn more about this engine just google for "Fat Titz".
-
- Posts: 2980
- Joined: Wed Mar 08, 2006 10:09 pm
- Location: Germany
- Full name: Werner Schüle
Re: Introducing Igel chess engine
Inside Arena the engine uses always the default network - even when there is an eval folder with an nn.bin.
NN.bin is only used when I manually config the engine with ok.
So maybe the uci option is not correct configured?
edit
Found an easy solution: use another name for the net, e.g. ninu-0.2.bin
NN.bin is only used when I manually config the engine with ok.
So maybe the uci option is not correct configured?
edit
Found an easy solution: use another name for the net, e.g. ninu-0.2.bin
Werner