Since you’re here...

We hope you will consider supporting us today. We need your support to continue to exist, because good entries are more and more work time. Every reader contribution, however big or small, is so valuable. Support "Chess Engines Diary" even a small amount– and it only takes a minute. Thank you.
============================== My email: jotes@go2.pl



Chess engines: Heimdall 1.3


HeimdallUCI 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

v.1.3:
What changed
SEE has been completely stolen from Stormphrax ahem, I mean rewritten, to use a faster, more efficient iterative algorithm
Heimdall now caches accumulator refreshes (aka "finny tables")
A healthy dose of LTC SPSA tuning
LMR is increased if the current move is quiet while the hash move is a capture
The network architecture has changed: the L1 is now 1536 neurons long instead of 1280
Heimdall's networks now use merged king planes, allowing for a nice 8% FT size reduction at no cost
Futility pruning now uses base LMR depth for its limit condition
History LMR divisors have been separated (and tuned) for noisy vs quiet moves
A lot of cleanup in subcommand parsing/handling
Various cosmetic fixes and addition to the pretty logs
Heimdall can now generate standard chess data (the new network was trained with a mix of standard and dfrc data)
Added a new, experimental data filtering tool
Node TM was actually fixed this time (for realsies tho)
The TT now only stores partial zobrist keys
NMP now features verification search
MAX_DEPTH is now respected exactly in search (it was off by one)
Quiescence search now stores a lower bound score to the TT before stand-pat cutoffs
NMP now uses TT information in its condition
Various minor fixes to many parts of the codebase
Improving is now used in RFP
NMP reduction is now increased based on static eval and beta

Strength
Wow, that was a lot huh? Elo is getting harder and harder to get, but we still have some nice gains here.

Since it was requested to me by the author of the ipmanchess list, I will now be providing both STC and LTC progtests played with a balanced book (8moves_v3.epd) alongside the usual ones with the UHO_Lichess one. The estimated Elo will still always be
based on the UHO results, as I feel those are more representative of engine strength (you are free to disagree :))

STC:

Elo   | 86.08 +- 9.36 (95%)
Conf  | 8.0+0.08s Threads=1 Hash=16MB
Games | N: 2014 W: 774 L: 285 D: 955
Penta | [3, 114, 366, 439, 85]

LTC:

Elo   | 72.61 +- 8.36 (95%)
Conf  | 40.0+0.40s Threads=1 Hash=64MB
Games | N: 2000 W: 704 L: 292 D: 1004
Penta | [2, 105, 413, 439, 41]

8moves_v3.epd
STC:

Elo   | 68.67 +- 8.49 (95%)
Conf  | 8.0+0.08s Threads=1 Hash=16MB
Games | N: 2004 W: 547 L: 156 D: 1301
Penta | [4, 91, 480, 364, 63]

LTC:

Elo   | 57.14 +- 7.39 (95%)
Conf  | 40.0+0.40s Threads=1 Hash=64MB
Games | N: 2000 W: 431 L: 105 D: 1464
Penta | [1, 70, 569, 322, 38]

Using the CCRL Blitz rating of Heimdall 1.2.2 (3476) and using the LTC result for consistency, this puts Heimdall's estimated Elo at ~3548!

Notes
In the interest of delivering the best performance to as many machines as possible and increasing transparency, the way binaries are named has changed. The -core2 builds are now the lowest common denominator, with -haswell (previously -modern) being a more modern alternative (only works on supported CPUs, just try it) and -zen2 being the most performant option that is still somewhat generic. There's also -avx512 binaries that should work on recent CPUs (AMD Zen 4/Intel Kaby Lake or later) and can net a substantial speedup depending on the underlying hardware implementation. To get the best possible performing binary, please build it on your machine with the make native command



Heimdall 1.2.2 vs other engines:
Tucano 12.0014/14+1414 Games
Obsidian 14.20 SE4/12-412 Games
Arasan 25.04/12-412 Games
Patricia 4.04/10-210 Games
Sting Black Hole 85.5/8+38 Games
Monty 202412094.5/8+18 Games
Halogen 12.12.3 JA4/8+08 Games
Yuliana 6.01.5/6-36 Games
Yuli GM STRONG X0.5/6-56 Games
SF-PRO2 11.12.20240.5/6-56 Games
RukChess 4.0.13/4+24 Games
Rems M-0912241.5/4-14 Games
Akimbo 1.1.0 JA0.5/4-34 Games
Jackal 1.1.02/2+22 Games
Mcu-max 1.0.52/2+22 Games
Drosophila 1.6 JA2/2+22 Games
Mayhem 8.52/2+22 Games
Nectar 0.2.12/2+22 Games
Phalp 22032400 JA2/2+22 Games
Astra 4.0.12/2+22 Games
Chess cpp 4.102/2+22 Games



Github: https://github.com/nocturn9x/heimdall

Comments