Page 1 of 1

New engine: Inanis

Posted: Sat Apr 02, 2022 10:23 am
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.

Re: New engine: Inanis

Posted: Sat Apr 02, 2022 10:25 am
by Graham Banks
Thanks. :thumbup:

Re: New engine: Inanis

Posted: Tue Apr 05, 2022 5:20 pm
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.

Re: New engine: Inanis

Posted: Thu Apr 07, 2022 3:57 pm
by Gabor Szots
Hi Pawel.

In my ongoing tournament I have replaced 100 with 101 so the list will show the latter version.

Re: New engine: Inanis

Posted: Thu Apr 07, 2022 4:34 pm
by Pawel Osikowski
Fantastic, thanks.

Re: New engine: Inanis

Posted: Sat Apr 09, 2022 7:38 pm
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.

Re: New engine: Inanis

Posted: Sat Apr 09, 2022 7:57 pm
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.

Re: New engine: Inanis

Posted: Sun Apr 10, 2022 1:35 am
by Graham Banks
http://tlcv.net/16066

Gauntlet for 40/15

Re: New engine: Inanis

Posted: Sun Apr 10, 2022 10:37 am
by Pawel Osikowski
Excellent, I will observe Inanis' performance for sure.

Re: New engine: Inanis

Posted: Sun Jul 31, 2022 12:34 pm
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.

Re: New engine: Inanis

Posted: Sun Jul 31, 2022 12:55 pm
by Gabor Szots
Thanks Pawel. You have put in a great effort and it shows.

Re: New engine: Inanis

Posted: Sun Jul 31, 2022 1:36 pm
by bastiball
If it's okay I'll invite this engine in Mini-TCEC season 2 :D

Re: New engine: Inanis

Posted: Sun Jul 31, 2022 2:09 pm
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.

Re: New engine: Inanis

Posted: Sun Aug 14, 2022 12:18 pm
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.

Re: New engine: Inanis

Posted: Sun Aug 14, 2022 2:37 pm
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

Re: New engine: Inanis

Posted: Sun Jan 15, 2023 11:55 am
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.

Re: New engine: Inanis

Posted: Sun Jan 15, 2023 12:34 pm
by Gabor Szots
Good news. I'll try my best to test it as soon as possible.

Re: New engine: Inanis

Posted: Sun Jan 15, 2023 12:47 pm
by Pawel Osikowski
Thank you!

Re: New engine: Inanis

Posted: Sun Jan 15, 2023 1:05 pm
by bastiball
Congrats, for the release, I just finished my laptop set-up, I think I can test this :D

Re: New engine: Inanis

Posted: Sun Jan 15, 2023 4:36 pm
by Pawel Osikowski
Thanks, I'm looking forward!

Re: New engine: Inanis

Posted: Fri Jun 14, 2024 4:05 pm
by Pawel Osikowski
Version: 1.3.0
Homepage and source code: https://github.com/Tearth/Inanis
Download: https://github.com/Tearth/Inanis/releases/tag/v1.3.0
Estimated strength (in CCRL pool): 2900 Elo

Changelog:
- Added search parameters as UCI options (only if the dev feature is present)
- Added gradient descent tuner in place of local search
- Added internal iterative reduction
- Added bishop pair evaluation
- Removed "avg_game_phase" in "tunerset" command
- Removed "magic", "testset", "tuner" and "tunerset" commands from the release builds
- Improved king safety evaluation
- Improved quality of tunerset output
- Improved search parameters
- Improved pawn structure evaluation
- Improved mobility evaluation by excluding squares attacked by enemy pawns
- Fixed invalid position score when both kings are checked
- Fixed incorrect SEE results for sliding pieces

Re: New engine: Inanis

Posted: Fri Jun 14, 2024 4:22 pm
by Gabor Szots
:thumbup: Testing imminent.

Re: New engine: Inanis

Posted: Fri Jun 14, 2024 5:15 pm
by Pawel Osikowski
Thank you!