New engine: Inanis

Questions and comments related to CCRL testing study
Post Reply
Pawel Osikowski
Posts: 33
Joined: Sat Sep 19, 2020 5:20 pm
Sign-up code: 10159

New engine: Inanis

Post by Pawel Osikowski »

I'm really happy to announce, that after almost a year of work the brand new engine is ready - this time written in Rust, Inanis is almost 250 Elo stronger than the last version of Cosette, so exactly how I promised.

Name: Inanis
Version: 1.0.0
Protocol: UCI
Author: Pawel Osikowski
Country: Poland
License: GPL-3.0
Homepage and source code: https://github.com/Tearth/Inanis
Download: https://github.com/Tearth/Inanis/releases/tag/v1.0.0
Estimated strength: 2750 Elo

The release contains executables for various platforms, operating systems and instruction sets - I was able to test most of them, so I hope everything will work perfectly. Feel free to ask questions or report bugs (here or on GitHub) if there will be any, I certainly want to develop this engine even further and make the necessary fixes.
User avatar
Graham Banks
Posts: 26926
Joined: Sun Dec 18, 2005 5:47 pm
Sign-up code: 0
Location: Auckland, NZ

Re: New engine: Inanis

Post by Graham Banks »

Thanks. :thumbup:
Pawel Osikowski
Posts: 33
Joined: Sat Sep 19, 2020 5:20 pm
Sign-up code: 10159

Re: New engine: Inanis

Post by Pawel Osikowski »

Version: 1.0.1
Homepage and source code: https://github.com/Tearth/Inanis
Download: https://github.com/Tearth/Inanis/releases/tag/v1.0.1
Estimated strength: 2750 Elo (no change)

Changelog:
- Added a new UCI option "Crash Files" (disabled by default)
- Fixed move legality check which in rare cases was leading to engine crashes
- Fixed PV lines being too long due to endless repetitions

A small patch with improved engine stability, as it was in very rare cases crashing due to imperfect move legality check. No change in Elo strength, but I highly recommend using this version instead of 1.0.0.
User avatar
Gabor Szots
Posts: 12855
Joined: Sat Dec 09, 2006 6:30 am
Sign-up code: 10159
Location: Szentendre, Hungary

Re: New engine: Inanis

Post by Gabor Szots »

Hi Pawel.

In my ongoing tournament I have replaced 100 with 101 so the list will show the latter version.
Pawel Osikowski
Posts: 33
Joined: Sat Sep 19, 2020 5:20 pm
Sign-up code: 10159

Re: New engine: Inanis

Post by Pawel Osikowski »

Fantastic, thanks.
Pawel Osikowski
Posts: 33
Joined: Sat Sep 19, 2020 5:20 pm
Sign-up code: 10159

Re: New engine: Inanis

Post by Pawel Osikowski »

Thank you for the test, looks like the final result is a bit smaller than my estimation, but that's probably due to the different time control I usually use to test the engine (5 seconds + 100 ms), so overall still pretty good.
User avatar
Gabor Szots
Posts: 12855
Joined: Sat Dec 09, 2006 6:30 am
Sign-up code: 10159
Location: Szentendre, Hungary

Re: New engine: Inanis

Post by Gabor Szots »

Pawel Osikowski wrote: Sat Apr 09, 2022 7:38 pm Thank you for the test, looks like the final result is a bit smaller than my estimation, but that's probably due to the different time control I usually use to test the engine (5 seconds + 100 ms), so overall still pretty good.
As you might have observed the average rating of the opponents was +48 relative to Inanis. That means that if I select weaker opponents for my next test run (I have the policy of testing an engine until the error bars go down to 20) the rating may improve. Experience shows that an engine's rating may be sensitive to the strength of the pool it is tested against.
User avatar
Graham Banks
Posts: 26926
Joined: Sun Dec 18, 2005 5:47 pm
Sign-up code: 0
Location: Auckland, NZ

Re: New engine: Inanis

Post by Graham Banks »

http://tlcv.net/16066

Gauntlet for 40/15
Pawel Osikowski
Posts: 33
Joined: Sat Sep 19, 2020 5:20 pm
Sign-up code: 10159

Re: New engine: Inanis

Post by Pawel Osikowski »

Excellent, I will observe Inanis' performance for sure.
Pawel Osikowski
Posts: 33
Joined: Sat Sep 19, 2020 5:20 pm
Sign-up code: 10159

Re: New engine: Inanis

Post by Pawel Osikowski »

Version: 1.1.0
Homepage and source code: https://github.com/Tearth/Inanis
Download: https://github.com/Tearth/Inanis/releases/tag/v1.1.0
Estimated strength (in CCRL pool): 2750 Elo

Changelog:
- Added support for Syzygy tablebases
- Added support for MultiPV UCI option
- Added support for "searchmoves" in "go" UCI command
- Added hashfull in the UCI search output
- Added "tunerset" command
- Added support for multithreading in "test" command
- Added transposition_table_size parameter to "test" command
- Added instant move when there is only one possible in the position
- Added new benchmarks
- Added tuner dataset generator
- Added information about the compiler and a list of target features at the startup
- Added diagnostic mode in search functions to gather statistics only if necessary
- Added a simple PGN parser
- Removed "tries_to_confirm" parameter from "test" command
- Removed arr_macro crate from dependencies
- Improved mobility evaluation, now the parameters are defined per piece instead of one value for all
- Improved null move reduction formula, now should be more aggressive
- Improved null move pruning, now it shouldn't be tried for hopeless positions
- Improved make-undo scheme performance
- Improved release script, now it's shorter and more flexible
- Improved error messages and made them more detailed
- Improved repetition draw detection
- Increased late move pruning max depth
- Increased amount of memory allocated for pawn hashtable
- Adjusted evaluation parameters
- Made LMR less aggressive in PV nodes
- Made aging in the transposition table faster and more reliable
- Merged reduction pruning with late move pruning
- Decreased memory usage during tuner work
- Deferred evaluation of evasion mask
- Reduced amount of lazy evaluations
- Reduced amount of locks in the UCI interface
- Removed duplicated search calls in the PVS framework
- Fixed crash when "tuner" command had not enough parameters
- Fixed crash when FEN didn't have information about halfmove clock and move number
- Fixed crash when search in ponder mode was trying to be started in already checkmated position
- Fixed tuner and tester not being able to examine all positions when multithreading is enabled
- Fixed draw detection issue caused by transposition table
- Fixed undefined behaviors and reduced the amount of unsafe code
- Fixed incorrect benchmark statistics
- Fixed a few edge cases in the short algebraic notation parser

Please note that the estimated strength for this release (and all in the future) is calibrated for the CCRL rating, so despite having the same value as earlier versions, it's about 50 Elo stronger. And as usual, feel free to report bugs or issues if you find any, here or on GitHub page.
User avatar
Gabor Szots
Posts: 12855
Joined: Sat Dec 09, 2006 6:30 am
Sign-up code: 10159
Location: Szentendre, Hungary

Re: New engine: Inanis

Post by Gabor Szots »

Thanks Pawel. You have put in a great effort and it shows.
bastiball
Posts: 1957
Joined: Thu Aug 05, 2021 2:35 pm
Sign-up code: 10159
Location: Cavite, Philippines
Contact:

Re: New engine: Inanis

Post by bastiball »

If it's okay I'll invite this engine in Mini-TCEC season 2 :D
CCRL Testing Group
Pawel Osikowski
Posts: 33
Joined: Sat Sep 19, 2020 5:20 pm
Sign-up code: 10159

Re: New engine: Inanis

Post by Pawel Osikowski »

Gabor Szots wrote: Sun Jul 31, 2022 12:55 pm Thanks Pawel. You have put in a great effort and it shows.
Thank you!
bastiball wrote: Sun Jul 31, 2022 1:36 pm If it's okay I'll invite this engine in Mini-TCEC season 2 :D
Sure! I would be very happy to participate.
Pawel Osikowski
Posts: 33
Joined: Sat Sep 19, 2020 5:20 pm
Sign-up code: 10159

Re: New engine: Inanis

Post by Pawel Osikowski »

Version: 1.1.1
Homepage and source code: https://github.com/Tearth/Inanis
Download: https://github.com/Tearth/Inanis/releases/tag/v1.1.1
Estimated strength (in CCRL pool): 2750 Elo (no change)

Changelog:
- Added support for FEN property in PGN parser and "tunerset" command
- Replaced crossbeam package with native scoped threads
- Fixed invalid handling of "isready" UCI command during a search
- Fixed engine crash when trying to search invalid position
- Fixed incorrect version of toolchain used in GitHub Actions

I had a report that the previous Inanis versions were incompatible with some GUIs (like Banksia), so this small patch should resolve all issues. If it was already working for you, then it won't improve anything, so no need to retest. No change in Elo strength, but as usual I recommend using this version instead of 1.1.0.
bastiball
Posts: 1957
Joined: Thu Aug 05, 2021 2:35 pm
Sign-up code: 10159
Location: Cavite, Philippines
Contact:

Re: New engine: Inanis

Post by bastiball »

Pawel Osikowski wrote: Sun Aug 14, 2022 12:18 pm Version: 1.1.1
Homepage and source code: https://github.com/Tearth/Inanis
Download: https://github.com/Tearth/Inanis/releases/tag/v1.1.1
Estimated strength (in CCRL pool): 2750 Elo (no change)

Changelog:
- Added support for FEN property in PGN parser and "tunerset" command
- Replaced crossbeam package with native scoped threads
- Fixed invalid handling of "isready" UCI command during a search
- Fixed engine crash when trying to search invalid position
- Fixed incorrect version of toolchain used in GitHub Actions

I had a report that the previous Inanis versions were incompatible with some GUIs (like Banksia), so this small patch should resolve all issues. If it was already working for you, then it won't improve anything, so no need to retest. No change in Elo strength, but as usual I recommend using this version instead of 1.1.0.
Great! :D
CCRL Testing Group
Pawel Osikowski
Posts: 33
Joined: Sat Sep 19, 2020 5:20 pm
Sign-up code: 10159

Re: New engine: Inanis

Post by Pawel Osikowski »

Version: 1.2.0
Homepage and source code: https://github.com/Tearth/Inanis
Download: https://github.com/Tearth/Inanis/releases/tag/v1.2.0
Estimated strength (in CCRL pool): 2800 Elo

Changelog:
- Added integration with Fathom library to better support Syzygy tablebases
- Added "tbhits" to the search output
- Added "avg_game_phase" parameter to "tunerset" command
- Added "syzygy" and "bindgen" as switchable Cargo features
- Added information about captures, en passants, castles, promotions and checks in perft's output
- Added attackers/defenders cache
- Added killer moves as separate move generator phase
- Removed unnecessary check detection in null move pruning
- Removed redundant abort flag check
- Removed underpromotions in qsearch
- Reduced binary size by removing dependencies and replacing them with custom implementation
- Renamed "test" command to "testset"
- Simplified evaluation by reducing the number of score taperings
- Improved build process
- Improved benchmark output
- Improved allocation of all hashtables, now their size will always be a power of 2 for better performance
- Improved king safety evaluation by taking a number of attacked adjacent fields more serious
- Improved overall performance by a lot of minor refactors and adjustments
- Improved game phase evaluation
- Improved killer heuristic
- Improved history table aging
- Improved reduction formula in null move pruning
- Fixed a few "tunerset" command bugs related to the game phase
- Fixed PGN parser when there were no spaces between dots and moves
- Fixed invalid evaluation of doubled passing pawns
- Fixed invalid cut-offs statistics
- Fixed qsearch failing hard instead of failing soft

This version is focused on improving codebase and contains a lot of smaller optimizations instead of introducing some big changes. It led to a significant speed increase, and with better Syzygy support it should be about 50 Elo stronger than the v1.1.1. As usual, feel free to report bugs or issues if you find any, here or on GitHub page.
User avatar
Gabor Szots
Posts: 12855
Joined: Sat Dec 09, 2006 6:30 am
Sign-up code: 10159
Location: Szentendre, Hungary

Re: New engine: Inanis

Post by Gabor Szots »

Good news. I'll try my best to test it as soon as possible.
Pawel Osikowski
Posts: 33
Joined: Sat Sep 19, 2020 5:20 pm
Sign-up code: 10159

Re: New engine: Inanis

Post by Pawel Osikowski »

Thank you!
bastiball
Posts: 1957
Joined: Thu Aug 05, 2021 2:35 pm
Sign-up code: 10159
Location: Cavite, Philippines
Contact:

Re: New engine: Inanis

Post by bastiball »

Congrats, for the release, I just finished my laptop set-up, I think I can test this :D
CCRL Testing Group
Pawel Osikowski
Posts: 33
Joined: Sat Sep 19, 2020 5:20 pm
Sign-up code: 10159

Re: New engine: Inanis

Post by Pawel Osikowski »

Thanks, I'm looking forward!
Post Reply