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.0.4:
Hello beautiful people! On this fine day I'm releasing Heimdall 0.4, the last version of the engine to feature an hand-crafted evaluation (you can thank a certain, ahem, non-digital pony for that): the next release, 1.0, will be using NNUE. Exciting times! Such neural network, much data science, etc. etc.
What's changed
TT entry prefetching
Fail-medium is now used in RFP instead of fail-soft
2-ply conthist
Safe checks to enemy king
The weights have been reworked to be packed tighter (packed eval is now used)
Some decent speedups
The next ply's killers are cleared at every node to improve the relevance of the moves
Minor fixes & refactoring
Experimental features
Starting from this version, Heimdall can play Chess960! This has been thoroughly tested and should be bug-free, but please let me know if you find any issues!
MultiPV search is now implemented: ever wanted to know what the second best move in a position is? No? Well, now you can know anyway! This hasn't been tested nearly as well as Chess960 support, so definitely let me know if it breaks in some way (I am fairly certain there are some weird interactions with go searchmoves, but honestly who cares?)
Progtest
Like in previous releases, here is a 1000-game match ran with the Pohl opening book, with both sides played by both engines. The gains are more modest because, frankly, after seeing what Heimdall can achieve with even a very basic NN (not even UE!) implementation, any work on HCE feels pointless, so I decided to stop (I had planned a couple more releases, but Elo is Elo, sorry folks!)
Elo | 52.55 +- 16.89 (95%)
Conf | 8.0+0.08s Threads=1 Hash=16MB
Games | N: 1006 W: 425 L: 274 D: 307
Penta | [28, 77, 193, 126, 79]
https://chess.n9x.co/test/126/
Notes
The releases have been simplified even further: Since I've reduced the allocations to a minimum, the impact previously made by switching to a more efficient allocator is now minimal, meaning that the mimalloc builds will no longer be available (but support for it won't be dropped... for now). Also, as always, any Heimdall version expects to be run on a reasonably modern CPU (popcnt support and all that)

Comments
Post a Comment