Chess engine: Lambergar 0.6.0 (Windows and Linux)
Lambergar - UCI chess engine Rating CEDR=2758
Lambergar is a chess engine developed in the Zig programming language.
The name "Lambergar" is a nod to the Slovenian folk romance, Pegam and Lambergar, which recounts the epic struggle between Jan Vitovec and Krištof Lambergar (Lamberg). This narrative of fortitude and rivalry provided a fitting namesake for this chess engine.
Lambergar is licensed under the MIT License. Check out LICENSE.txt for the full text. Feel free to use this program, but please credit this repository in your project if you use it.
v.0.6.0:
Builds
Currently there are three builds:
x86-64-v3: AVX2 support, best for using with NN evaluation and should be a preferred choice for best performance.
x86-64-v2: popcount support, suitable for modern computers.
x86-64-v1: vintage version is for really old computers.
Release Notes
This is quite a major release, if the testing of this release goes well, next release will be version v1.0.0. This release brings several important changes:
Introduction of NN for evaluation. It uses halfKP NNUE architecture, although half of the size typically used. While the architecture of NN is of NNUE type, the engine code for evaluation is actually missing the UE part. This is planned for next release.
Engine code can now be compiled with latest version of zig, which is version 0.13.0. The major problem in the past was that the engine code was written in such a manner that newer releases of zig when compiled introduce many calls of memcpy which significantly reduced the speed of the engine (see discussion on Ziggit). By using profiler I was able to identify the problematic parts of code and refactor it.
Engine code can now be compiled into Debug mode. While this seems obvious and trivial requirement and good coding practice, zig compiler is pretty robust and produces in most cases normally working executables, so this was not my main priority at the start of the programming the engine. However, later it become obvious that I need to fix the bugs to be able to keep the code in "good shape".
Several bug fixes, the major one being related how the time for a single move is calculated in time format with "moves to go". This has now been fixed and all time controls should work correctly. The rest of the bugs were mainly related to integer overflows, etc.
Estimated engine strength is around 3040-3060 ELO.
Lambergar 0.5.2 results:
Lynx 1.4.0 | 4/4 | +4 | 4 Games |
Ciorap-Bot 0.3 | 4/4 | +4 | 4 Games |
Fatalii 0.6.1 | 4/4 | +4 | 4 Games |
Shallow 5 | 3.5/4 | +3 | 4 Games |
Inanis 1.2.1 | 3.5/4 | +3 | 4 Games |
Lux 4.2 | 3/4 | +2 | 4 Games |
Devel 4.0.2.3 | 3/4 | +2 | 4 Games |
Vengeance 3.0.0 | 3/4 | +2 | 4 Games |
Supernova 2.4 | 2.5/4 | +1 | 4 Games |
Journeyman 2.1 | 2.5/4 | +1 | 4 Games |
Patricia 2.0.1 | 2.5/4 | +1 | 4 Games |
OliThink 5.10.5 | 2/4 | +0 | 4 Games |
Wize 1.0 | 1/4 | -2 | 4 Games |
Jet 1.2 | 1/4 | -2 | 4 Games |
Arasan 24.2.1 | 0/4 | -4 | 4 Games |
Saturn 1.3 | 0/4 | -4 | 4 Games |
Midnight 9 | 0/4 | -4 | 4 Games |
Obsidian 12.0 | 0/4 | -4 | 4 Games |
K2 0.99 | 2/2 | +2 | 2 Games |
Rengar 1.3.0 | 2/2 | +2 | 2 Games |
Clovis III | 2/2 | +2 | 2 Games |
github:https://github.com/jabolcni/Lambergar/releases/
Comments
Post a Comment