New engine: Inanis
-
- Posts: 36
- Joined: Sat Sep 19, 2020 5:20 pm
- Sign-up code: 10159
New engine: Inanis
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.
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.
- Graham Banks
- Posts: 27544
- Joined: Sun Dec 18, 2005 5:47 pm
- Sign-up code: 0
- Location: Auckland, NZ
Re: New engine: Inanis
Thanks.
-
- Posts: 36
- Joined: Sat Sep 19, 2020 5:20 pm
- Sign-up code: 10159
Re: New engine: Inanis
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.
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.
- Gabor Szots
- Posts: 13193
- Joined: Sat Dec 09, 2006 6:30 am
- Sign-up code: 10159
- Location: Szentendre, Hungary
Re: New engine: Inanis
Hi Pawel.
In my ongoing tournament I have replaced 100 with 101 so the list will show the latter version.
In my ongoing tournament I have replaced 100 with 101 so the list will show the latter version.
-
- Posts: 36
- Joined: Sat Sep 19, 2020 5:20 pm
- Sign-up code: 10159
Re: New engine: Inanis
Fantastic, thanks.
-
- Posts: 36
- Joined: Sat Sep 19, 2020 5:20 pm
- Sign-up code: 10159
Re: New engine: Inanis
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.
- Gabor Szots
- Posts: 13193
- Joined: Sat Dec 09, 2006 6:30 am
- Sign-up code: 10159
- Location: Szentendre, Hungary
Re: New engine: Inanis
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.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.
- Graham Banks
- Posts: 27544
- Joined: Sun Dec 18, 2005 5:47 pm
- Sign-up code: 0
- Location: Auckland, NZ
-
- Posts: 36
- Joined: Sat Sep 19, 2020 5:20 pm
- Sign-up code: 10159
Re: New engine: Inanis
Excellent, I will observe Inanis' performance for sure.
-
- Posts: 36
- Joined: Sat Sep 19, 2020 5:20 pm
- Sign-up code: 10159
Re: New engine: Inanis
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.
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.
- Gabor Szots
- Posts: 13193
- Joined: Sat Dec 09, 2006 6:30 am
- Sign-up code: 10159
- Location: Szentendre, Hungary
Re: New engine: Inanis
Thanks Pawel. You have put in a great effort and it shows.
-
- Posts: 2192
- Joined: Thu Aug 05, 2021 2:35 pm
- Sign-up code: 10159
- Location: Cavite, Philippines
- Contact:
Re: New engine: Inanis
If it's okay I'll invite this engine in Mini-TCEC season 2
CCRL Testing Group
-
- Posts: 36
- Joined: Sat Sep 19, 2020 5:20 pm
- Sign-up code: 10159
Re: New engine: Inanis
Thank you!Gabor Szots wrote: ↑Sun Jul 31, 2022 12:55 pm Thanks Pawel. You have put in a great effort and it shows.
Sure! I would be very happy to participate.
-
- Posts: 36
- Joined: Sat Sep 19, 2020 5:20 pm
- Sign-up code: 10159
Re: New engine: Inanis
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.
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.
-
- Posts: 2192
- Joined: Thu Aug 05, 2021 2:35 pm
- Sign-up code: 10159
- Location: Cavite, Philippines
- Contact:
Re: New engine: Inanis
Great!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.
CCRL Testing Group
-
- Posts: 36
- Joined: Sat Sep 19, 2020 5:20 pm
- Sign-up code: 10159
Re: New engine: Inanis
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.
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.
- Gabor Szots
- Posts: 13193
- Joined: Sat Dec 09, 2006 6:30 am
- Sign-up code: 10159
- Location: Szentendre, Hungary
Re: New engine: Inanis
Good news. I'll try my best to test it as soon as possible.
-
- Posts: 36
- Joined: Sat Sep 19, 2020 5:20 pm
- Sign-up code: 10159
Re: New engine: Inanis
Thank you!
-
- Posts: 2192
- Joined: Thu Aug 05, 2021 2:35 pm
- Sign-up code: 10159
- Location: Cavite, Philippines
- Contact:
Re: New engine: Inanis
Congrats, for the release, I just finished my laptop set-up, I think I can test this
CCRL Testing Group
-
- Posts: 36
- Joined: Sat Sep 19, 2020 5:20 pm
- Sign-up code: 10159
Re: New engine: Inanis
Thanks, I'm looking forward!
-
- Posts: 36
- Joined: Sat Sep 19, 2020 5:20 pm
- Sign-up code: 10159
Re: New engine: Inanis
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
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
- Gabor Szots
- Posts: 13193
- Joined: Sat Dec 09, 2006 6:30 am
- Sign-up code: 10159
- Location: Szentendre, Hungary
Re: New engine: Inanis
Testing imminent.
-
- Posts: 36
- Joined: Sat Sep 19, 2020 5:20 pm
- Sign-up code: 10159
Re: New engine: Inanis
Thank you!
-
- Posts: 36
- Joined: Sat Sep 19, 2020 5:20 pm
- Sign-up code: 10159
Re: New engine: Inanis
Version: 1.4.0
Homepage and source code: https://github.com/Tearth/Inanis
Download: https://github.com/Tearth/Inanis/releases/tag/v1.4.0
Estimated strength (in CCRL pool): 2950 Elo
Changelog:
- Added relative PST
- Added check extensions
- Added countermove heuristic
- Added simplified benchmark when "dev" feature is not enabled
- Added history table penalties and reduced aging divisor
- Added non-standard "fen" command to UCI
- Added crash when the best move is invalid (only in dev version)
- Added pawn attacks cache
- Added support for LZCNT instruction
- Improved evaluation parameters by using a new dataset for tuning
- Improved search parameters
- Improved header, now it also includes LLVM version, target, profile and enabled features
- Renamed "tunerset" command to "dataset"
- Merged "bindgen" and "syzygy" features
- Fixed rare bug with invalid moves when a search was aborted
- Fixed crash when ply is larger than the killer table size
- Fixed performance overhead of setting a new position
Homepage and source code: https://github.com/Tearth/Inanis
Download: https://github.com/Tearth/Inanis/releases/tag/v1.4.0
Estimated strength (in CCRL pool): 2950 Elo
Changelog:
- Added relative PST
- Added check extensions
- Added countermove heuristic
- Added simplified benchmark when "dev" feature is not enabled
- Added history table penalties and reduced aging divisor
- Added non-standard "fen" command to UCI
- Added crash when the best move is invalid (only in dev version)
- Added pawn attacks cache
- Added support for LZCNT instruction
- Improved evaluation parameters by using a new dataset for tuning
- Improved search parameters
- Improved header, now it also includes LLVM version, target, profile and enabled features
- Renamed "tunerset" command to "dataset"
- Merged "bindgen" and "syzygy" features
- Fixed rare bug with invalid moves when a search was aborted
- Fixed crash when ply is larger than the killer table size
- Fixed performance overhead of setting a new position