Introducing Igel chess engine

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

Moderators: bob, hgm, Harvey Williamson

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
voffka
Posts: 121
Joined: Sat Jun 30, 2018 8:58 pm
Location: Ukraine
Full name: Volodymyr Shcherbyna
Contact:

Re: Introducing Igel chess engine

Post by voffka » Sat Mar 28, 2020 5:20 pm

Hey xr_a_y,
xr_a_y wrote:
Sat Mar 28, 2020 5:15 pm
Here's today results at LTC (8min+4sec) Igel 2.4.0 versus Minic 1.55
Good. I usually run my own regression suite of 500 games per opponent against a set of opponents (usually top 50 engines, tc=all/60+0.6 with tbs), this allows me to get an average elo increase estimate because the suite is mandatory for an Igel release.

For example,

Igel 2.4.0

Code: Select all

Rank Name                          Elo     +/-   Games   Score   Draws
   0 Igel 2.4.0 64 POPCNT          -80       6   10000   38.7%   32.1%
   1 Stockfish 10 64 POPCNT        501      48     500   94.7%   10.6%
   2 Ethereal 11.75 (PEXT)         324      31     500   86.6%   24.4%
   3 Fire 7.1 x64 popcnt           311      31     500   85.7%   23.8%
   4 Xiphos 0.6 BMI2               299      30     500   84.8%   26.4%
   5 rofChade 2.202 BMI            217      25     500   77.7%   35.8%
   6 Laser 1.7                     215      27     500   77.5%   33.0%
   7 Defenchess 2.2 x64            192      27     500   75.1%   32.6%
   8 Andscacs 0.95                 161      26     500   71.7%   33.0%
   9 Pedone 2.0                    109      24     500   65.2%   38.8%
  10 RubiChess 1.6                  81      23     500   61.5%   44.2%
  11 Arasan 22.0                    66      24     500   59.4%   39.6%
  12 Strelka 5.5 x64                62      24     500   58.8%   36.8%
  13 Deep iCE 4.0.853 x64/popcnt    48      24     500   56.8%   36.8%
  14 Texel 1.07                     41      22     500   55.9%   47.0%
  15 Vajolet2 2.8.0                 39      24     500   55.6%   37.6%
  16 Nemorino                       27      24     500   53.9%   37.4%
  17 Protector 1.9.0               -13      24     500   48.1%   36.2%
  18 Winter 0.7 BMI2              -136      27     500   31.4%   30.0%
  19 zurichess neuchatel          -234      27     500   20.6%   31.2%
  20 GreKo 2018.08                -487      54     500    5.7%    7.8%
Igel 2.3.1

Code: Select all

Rank Name                          Elo     +/-   Games   Score   Draws
   0 Igel 2.3.1 64 POPCNT         -106       6   10000   35.2%   31.0%
   1 Stockfish 10 64 POPCNT        527      55     500   95.4%    8.0%
   2 Fire 7.1 x64 popcnt           346      35     500   88.0%   19.6%
   3 Ethereal 11.75 (PEXT)         340      31     500   87.6%   23.6%
   4 Xiphos 0.6 BMI2               318      31     500   86.2%   24.4%
   5 Laser 1.7                     259      28     500   81.6%   29.6%
   6 rofChade 2.202 BMI            220      27     500   78.0%   32.8%
   7 Defenchess 2.2 x64            206      26     500   76.6%   34.0%
   8 Andscacs 0.95                 172      27     500   72.9%   30.2%
   9 RubiChess 1.6                 161      24     500   71.7%   41.0%
  10 Pedone 2.0                    143      25     500   69.5%   34.6%
  11 Strelka 5.5 x64               119      25     500   66.5%   34.6%
  12 Deep iCE 4.0.853 x64/popcnt    98      24     500   63.7%   39.0%
  13 Arasan 22.0                    95      25     500   63.4%   35.6%
  14 Texel 1.07                     89      24     500   62.6%   38.8%
  15 Vajolet2 2.8.0                 65      23     500   59.2%   44.4%
  16 Nemorino                       44      25     500   56.3%   34.2%
  17 Protector 1.9.0                 2      23     500   50.3%   40.6%
  18 Winter 0.7 BMI2              -111      26     500   34.5%   29.8%
  19 zurichess neuchatel          -215      26     500   22.5%   33.8%
  20 GreKo 2018.08                -411      44     500    8.6%   11.2%
Igel 2.3.0

Code: Select all

Rank Name                          Elo     +/-   Games   Score   Draws
   0 Igel 2.3.0 64 POPCNT         -178      14    2000   26.5%   24.9%
   1 Stockfish 10 64 POPCNT        531     132     100   95.5%    9.0%
   2 Xiphos 0.6 BMI2               494     115     100   94.5%   11.0%
   3 Ethereal 11.75 (PEXT)         478     121     100   94.0%   10.0%
   4 Fire 7.1 x64 popcnt           436     103     100   92.5%   13.0%
   5 Laser 1.7                     330      68     100   87.0%   26.0%
   6 rofChade 2.202 BMI            323      74     100   86.5%   23.0%
   7 Defenchess 2.2 x64            295      73     100   84.5%   23.0%
   8 Andscacs 0.95                 263      72     100   82.0%   22.0%
   9 Pedone 2.0                    230      65     100   79.0%   28.0%
  10 RubiChess 1.6                 230      61     100   79.0%   32.0%
  11 Strelka 5.5 x64               220      71     100   78.0%   20.0%
  12 Arasan 22.0                   186      61     100   74.5%   31.0%
  13 Texel 1.07                    168      63     100   72.5%   27.0%
  14 Deep iCE 4.0.853 x64/popcnt   143      54     100   69.5%   41.0%
  15 Nemorino                      143      61     100   69.5%   29.0%
  16 Vajolet2 2.8.0                119      58     100   66.5%   33.0%
  17 Protector 1.9.0               100      56     100   64.0%   36.0%
  18 Winter 0.7 BMI2               -31      58     100   45.5%   29.0%
  19 zurichess neuchatel           -63      53     100   41.0%   40.0%
  20 GreKo 2018.08                -295      83     100   15.5%   15.0%
Since the regression suite engine set is the same you can clearly measure the elo increase, I encourage you to do the same for Minic :)

Wolfgang
Posts: 351
Joined: Fri May 12, 2006 11:08 pm

Re: Introducing Igel engine

Post by Wolfgang » Sat Mar 28, 2020 9:18 pm

voffka wrote:
Sat Mar 28, 2020 1:32 pm
Hello Wolfgang,
Wolfgang wrote:
Sat Mar 28, 2020 12:46 pm

Adjudication rules:
- adjudicate game as lost when both (!) engines show -999 centipawns for 5 moves
I think the adjudication of 999 cp is the trick that causes the games to end smoothly on your side. When I fixed the bug yesterday, I realized it was in a very specific condition:

1. Igel finds a winning mate
2. Igel reaches maximum depth (127)
3. Once the maximum depth is reached, it exits the aspiration loop
4. When in ponder if an aspiration loop is exited Igel waits on an explicit ponderhit/stop
5. Due to the bug the exit from the wait (after aspiration loop) did not happen

So, once you use adjudication, you basically invalidate the condition #2 and #3 and this is why you did not see the issue with ponder in your list.

You can test this theory by running a single game between Igel 2.3.1 and some weaker opponent without adjudication, the moment Igel finds mate and reaches max ply you should see a freeze.

In 2.4.0 this is fixed :)
Yes, really very specific bug... ;)
Best
Wolfgang
CEGT-Team

Wolfgang
Posts: 351
Joined: Fri May 12, 2006 11:08 pm

Re: Introducing Igel chess engine

Post by Wolfgang » Fri Apr 10, 2020 10:45 am

https://cegt.forumieren.com/t1188-for-t ... -list#2553

Actual opponents are a bit too weak for Igel, but Deep iCE 4.0 as next participant will probably be on same level.
Best
Wolfgang
CEGT-Team

voffka
Posts: 121
Joined: Sat Jun 30, 2018 8:58 pm
Location: Ukraine
Full name: Volodymyr Shcherbyna
Contact:

Re: Introducing Igel chess engine

Post by voffka » Fri Apr 10, 2020 3:02 pm

Thanks Wolfgang,
Wolfgang wrote:
Fri Apr 10, 2020 10:45 am
https://cegt.forumieren.com/t1188-for-t ... -list#2553

Actual opponents are a bit too weak for Igel, but Deep iCE 4.0 as next participant will probably be on same level.
Actually Rodent is quite strong, I think on the same level as Igel 2.4.0, so I am curios if the difference in performance is due to some glitches with ponder.

Overall, quite happy about ponder performance, will add it in upcoming version of Igel (2.5.0) together with some time management improvements in time controls without increment (reported by @jpqy)

User avatar
xr_a_y
Posts: 1185
Joined: Sat Nov 25, 2017 1:28 pm
Location: France

Re: Introducing Igel chess engine

Post by xr_a_y » Fri Apr 10, 2020 3:46 pm

voffka wrote:
Fri Apr 10, 2020 3:02 pm
Thanks Wolfgang,
Wolfgang wrote:
Fri Apr 10, 2020 10:45 am
https://cegt.forumieren.com/t1188-for-t ... -list#2553

Actual opponents are a bit too weak for Igel, but Deep iCE 4.0 as next participant will probably be on same level.
Actually Rodent is quite strong, I think on the same level as Igel 2.4.0, so I am curios if the difference in performance is due to some glitches with ponder.

Overall, quite happy about ponder performance, will add it in upcoming version of Igel (2.5.0) together with some time management improvements in time controls without increment (reported by @jpqy)
RodentIV is not that strong, versus Minic at least

(http://www.cegt.net/40_4_Ratinglist/40_ ... e/726.html)
787 Minic 1.48 x64 1CPU - 2835 100 + 24 = 36 - 40 42.0 % 2780

which is in line with my home test.

12 rodentIV -63 40 155 41.0% 45.8%

voffka
Posts: 121
Joined: Sat Jun 30, 2018 8:58 pm
Location: Ukraine
Full name: Volodymyr Shcherbyna
Contact:

Re: Introducing Igel chess engine

Post by voffka » Mon Jun 15, 2020 1:00 am

Image

Igel 2.5.0 at https://github.com/vshcherbyna/igel/releases/tag/2.5.0 (binaries for Linux, macOS and Windows).

This release brings various improvements in code quality as well as strength improvements in search, evaluation and tt management. As of this release Igel uses OpenBench as a primary testing system and I would like to specially thank Andrew Grant for supporting Igel development on OpenBench.

What's new:

- Implement OpenBench support
- Implement BMI2 instruction support for faster search
- Implement prefetch instruction support for faster search
- Implement ponder support
- Implement improved sudden death time control management
- Implement use of hugepages in Linux OS
- Implement more efficient tt management and re-write tt replacement scheme to 'always replace'
- Implement proper handling of chopper moves
- Implement improved king safety evaluation
- Implement improved weights management
- Implement symmetric evaluation function
- Set tt score in qsearch
- Set bestmove as a hashmove by default
- Bugfix for knight outpost
- Bugfix for depth skipping in smp mode
- Implement pst based evaluation for connected passers
- Bugfix for probcut in check
- Factor in 'improving' even when in checks
- Adjust bestscore from tt score
- Bugfix shuffling of moves at root in smp mode

voffka
Posts: 121
Joined: Sat Jun 30, 2018 8:58 pm
Location: Ukraine
Full name: Volodymyr Shcherbyna
Contact:

Re: Introducing Igel chess engine

Post by voffka » Sat Aug 01, 2020 4:48 pm

Image

Igel 2.6.0 at https://github.com/vshcherbyna/igel/releases/tag/2.6.0 (binaries for Linux, macOS and Windows).

This release brings various improvements in strength, especially in evaluation function and adds around 55 elo of strength at LTC.

What's new:

- Implement piece threats evaluation
- Simplify connected pass pawn evaluation
- Implement backward pawn evaluation
- Apply tempo after interpolation and speed up null move evaluation
- Implement verification qsearch for probcut
- Remove L1 normalisation from tuner and retune all params
- Implement trapped rook evaluation
- Implement razoring in search
- Implement king danger evaluation
- Implement hanging piece evaluation
- Implement weak pawn evaluation
- Implement restricted piece evaluation
- Implement lazy evaluation with a threshould of 300cp
- Implement multicut search
- Implement threat by a protected pawn evaluation
- Improve safe check evaluations
- Bench 7538060

Regression run against Igel 2.5.0 at 60s+0.6 time control:

Code: Select all

ELO   | 55.64 +- 4.19 (95%)
SPRT  | 60.0+0.6s Threads=1 Hash=64MB
LLR   | 0.00 (-2.94, 2.94) [0.00, 0.00]
Games | N: 12028 W: 3703 L: 1793 D: 6532

Post Reply