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
Heimdall 1.5.0 what's new?
More layers!
Ahoy! As it was foretold by the prophecy, I come to you today with a new major release of Heimdall, featuring a multi-layer NNUE for much-improved evaluation quality. Exciting!
What? You're asking me why I am releasing 1.5 so close to the release of 1.4.3? What are you talking about? There is no Heimdall 1.4.3, and any references or mentions to it are pure fiction. Seriously. Stop talking about it. (Seriously. You don't want to upset the Elo gods, do you?)
Anyway, here follows a changelog
What changed
Added a (shamelessly vibecoded) terminal UI with analysis, play/setup/replay flows, board rendering, eval/move arrows, user arrows, mate finding, annotations, PGN importing/exporting, and more; see here for details
Made UCI move parsing reject illegal moves more reliably
Improved command parsing so valid position and go commands embedded in otherwise malformed input can still be handled per the UCI spec
Switched to the first multilayer network in Heimdall's history, gramr
Added a new vnni target for improved inference speed on AVX512 processors that support it (no AVX2-VNNI, sorry Intel people)
Added Transparent Huge Pages support for aligned memory where available (detected at build time, not runtime)
Implemented a simplified ProbCut
Implemented fractional LMR and made the LMR base table tunable
Added continuation correction history and 2-ply continuation correction history
Tuned all search parameters
Fixed evaluation clamping and mate-score handling issues
Fixed the long-standing incorrect definition of improving
Tightened singular-extension and futility-pruning margins
Ensured NMP does not return false mates
Reduced false sharing and contention by changing how search parameters and worker state are copied/aligned
Used relaxed ordering for atomic operations where appropriate
Moved more objects to managed references and aligned more search-manager fields
Compressed moves into 16 bits
Heimdall is now NUMA-aware! On Linux machines with more than one processor (if configured with more than one thread), Heimdall will attempt to bind the transposition table and search threads in a way that maximizes performance and prevents needless back-and-forth between the different memory controllers. Should be significant at TCEC/CCC conditions
Reduced the time it takes for many-thread searches to start. Relevant at very high thread counts when low on time
En Passant moves are now considered as captures across search and movegen rather than being special-cased
IDK, probably forgot a bunch of stuff, but who ever reads changelogs anyway?
Strength
The keyword for this release is definitely scaling. That fat ass network surely seems to at least be worth the weight! The 8moves tests are benefitting 1.4.2 as well so the scaling is less pronounced, but I'm confident it's still there
UHO_Lichess_4852_v1.epd
STC:
Elo | 82.77 +- 9.57 (95%)
Conf | 8.0+0.08s Threads=1 Hash=16MB
Games | N: 2010 W: 800 L: 330 D: 880
Penta | [13, 106, 365, 440, 81]
https://chess.n9x.co/test/7152/
LTC:
Elo | 97.81 +- 8.43 (95%)
Conf | 40.0+0.40s Threads=1 Hash=64MB
Games | N: 2016 W: 832 L: 279 D: 905
Penta | [2, 76, 352, 523, 55]
https://chess.n9x.co/test/7154/
8moves_v3.epd
STC:
Elo | 80.66 +- 9.06 (95%)
Conf | 8.0+0.08s Threads=1 Hash=16MB
Games | N: 2030 W: 644 L: 181 D: 1205
Penta | [9, 90, 425, 411, 80]
https://chess.n9x.co/test/7156/
LTC:
Elo | 71.80 +- 7.34 (95%)
Conf | 40.0+0.40s Threads=1 Hash=64MB
Games | N: 2012 W: 491 L: 81 D: 1440
Penta | [2, 47, 535, 383, 39]
| 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 |

Comments
Post a Comment