Chess engines: Heimdall 1.3.1
Heimdall - UCI chess engine written in Nim.
Author: Mattia Giambirtone
More info
Heimdall is available on Lichess under its old name (Nimfish), feel free to challenge it! I try to keep the engine running on there always up to date with the changes on the master branch
More info
Heimdall is available on Lichess under its old name (Nimfish), feel free to challenge it! I try to keep the engine running on there always up to date with the changes on the master branch
v.1.3.1:
Greetings! Today I'm releasing a bugfix version of Heimdall that fixes the pondering issues introduced in the previous release. Thanks to RBB (Discord) and @FischerRandomChess in the TCEC twitch chat for reporting the issue to me! :)
What changed
Honestly, not a lot strenght-wise, but still:
UCI option names and values are now case insensitive in accordance with the spec
Pondering is now fixed and behaves as expected
"Fail mid" is now implemented in reverse futility pruning
4-ply continuation history
A slightly improved neural network
A completely new SMP system that uses a custom thread pool and no longer wastes time spawning threads at each go command
The UCI command loop now also uses a persistent worker thread instead of creating one each time
Triple extensions (after singular search result)
Child node LMR extensions
TT initialization is now multithreaded: Heimdall will use as many workers as configured by Threads
TT prefetching in quiescence search
Support for the mimalloc allocator has been dropped
Use "fail-medium" in stand-pat cutoffs in quiescence search
Improvements and fixes to repetition detection
Many small fixes (OOB errors, safety, etc.)
Refactored many helpers to be branchless
Fix bugs related to EnableWeirdTCs
Fix a bug that caused crashes when parsing FENs without full-move numbers
PV nodes are reduced if the TT probe result suggests a cutoff
Development/beta builds will now feature the commit hash in the version string even on Windows
Strength
This release isn't that much stronger than the previous one (it is a bugfix, after all), but there have been some gainers still. I won't be publishing numbers with balanced books, as this kind of testing already takes a lot of time and I only want to bother with it for strength-significant releases, so these tests were run with the usual UHO_Lichess_4852_v1.epd book:
STC:
Elo | 15.76 +- 8.81 (95%)
Conf | 8.0+0.08s Threads=1 Hash=16MB
Games | N: 2008 W: 537 L: 446 D: 1025
Penta | [20, 207, 465, 286, 26]
https://chess.n9x.co/test/1130/
LTC:
Elo | 6.25 +- 7.76 (95%)
Conf | 40.0+0.40s Threads=1 Hash=64MB
Games | N: 2000 W: 447 L: 411 D: 1142
Penta | [4, 218, 527, 240, 11]
https://chess.n9x.co/test/1131/
Here also follows a test showing the scaling for the new SMP system (2v1 went from +55 to +68!):
Elo | 68.32 +- 11.03 (95%)
SPRT | 8.0+0.08s Threads=2 Hash=16MB
LLR | 2.92 (-2.25, 2.89) [0.00, 3.00]
Games | N: 1128 W: 363 L: 144 D: 621
Penta | [2, 54, 256, 227, 25]
Heimdall 1.3.0 vs other engines:
Horsie 1.0.6 JA | 1.5/12 | -9 | 12 Games |
Viridithas 16.0.0 | 1/8 | -6 | 8 Games |
Sting Black Hole 9 | 6/6 | +6 | 6 Games |
Deep HIARCS 15.4u | 4/6 | +2 | 6 Games |
Ethereal 14.25 | 2/6 | -2 | 6 Games |
Chess-System-Tal-2 | 2/6 | -2 | 6 Games |
Caissa 1.21 | 2/6 | -2 | 6 Games |
Alexandria 7.0.14 JA | 2/6 | -2 | 6 Games |
Revenge 4.0 | 2/6 | -2 | 6 Games |
Motor 0.8.0 JA | 2/6 | -2 | 6 Games |
Lizard 11.2.0 | 1.5/6 | -3 | 6 Games |
PlentyChess 4.0.1 | 1.5/6 | -3 | 6 Games |
Clover 8.1 JA | 1.5/6 | -3 | 6 Games |
HypnoS ++ 1.01 | 1.5/6 | -3 | 6 Games |
Artemis 7TR | 1.5/6 | -3 | 6 Games |
Dragon 3.3 | 1.5/6 | -3 | 6 Games |
Velvet 8.1.1 JA | 1/6 | -4 | 6 Games |
Obsidian 15.01 SE | 1/6 | -4 | 6 Games |
Starzix 6.0 | 1/6 | -4 | 6 Games |
Igel 3.6.0 JA | 1/6 | -4 | 6 Games |
Stockfish dev-20250202 | 0.5/6 | -5 | 6 Games |
Github: https://github.com/nocturn9x/heimdall
Comments
Post a Comment