Author: Ivan Maklyakov Rating Chess Engines Diary CEDR=3640
UCI-compatible chess engine using Alpha-beta search and NNUE-like neural network.
The engine implements:
Basic control options (search to depth, time per move, time per game, time per N moves).
Support for Syzygy endgame tables.
Multithreading.
Builds for different processor extensions (SSE, AVX2, AVX512) and operating systems (Windows, Linux).
Engine architecture (everything is like most engines of this level):
Position representation and move generation - magic beatboards.
Sorting moves: moves from the transposition table, good captures by SEE, killer moves, quiet moves by history, bad captures by SEE.
Search - PVS, Aspiration search, Quiescence Search. And all possible abbreviations and cuts in the search (Null move, Static null move, abbreviations for quiet moves, Futility pruning, SEE prunung, LMR for quiet moves).
Transposition table for sorting moves, cuttings and for evaluation caching.
Multithreading - Lazy SMP.
Evaluation - a neural network similar to NNUE of the first versions with HalfKP. Network architecture: (2x(12288x1024))x6. Input layer: KingAreaPieceColorPieceSquare 166264. Trained using the frameworks Keras (early versions) and PyTorch (latest versions) on data generated in games of the engine against itself (with added positions from games against other engines) with ultra-short control (8-9 half-moves). Implementation of inference in the engine using the accumulator principle and vector instructions (SSE, AVX).
HCE (not used now) - material, PSQT, king's pawn shield, attacks on the king, pawn structure, piece mobility. The weights were selected using the Texel engine method.
Uralochka 3.41a JA - results:
Opponent | Score | +- | Games |
Berserk 13 | 56/139 | -27 | 139 Games |
Alexandria 7.0.0 | 49/112 | -14 | 112 Games |
Ethereal 14.25 | 44.5/109 | -20 | 109 Games |
Chess-System-Tal-2 | 53/106 | +0 | 106 Games |
Obsidian 13.0 | 35.5/88 | -17 | 88 Games |
Titan 1.1.0 | 42/86 | -2 | 86 Games |
RubiChess 20240112 | 37/85 | -11 | 85 Games |
PlentyChess 3.0.0 | 27.5/66 | -11 | 66 Games |
Caissa 1.20 | 27/64 | -10 | 64 Games |
Seer 2.8.0 | 32.5/61 | +4 | 61 Games |
Caissa 1.18 | 24.5/59 | -10 | 59 Games |
Rebel 16.3 | 28.5/53 | +4 | 53 Games |
Dragon 3.3 | 16/47 | -15 | 47 Games |
Viridithas 13.0.0 | 24/46 | +2 | 46 Games |
Stockfish 16.1 | 18/46 | -10 | 46 Games |
Obsidian 12.29 | 19/45 | -7 | 45 Games |
Lizard 10.5 | 18.5/40 | -3 | 40 Games |
Peacekeeper 3.00 | 20.5/38 | +3 | 38 Games |
Starzix 5.0 | 18/38 | -2 | 38 Games |
Clover 6.2 | 18/38 | -2 | 38 Games |
PlentyChess 1.0.0 | 14.5/37 | -8 | 37 Games |
Clover 7.0 JA | 17/36 | -2 | 36 Games |
Stormphrax | 21/34 | +8 | 34 Games |
Motor 0.7.0 | 16.5/34 | -1 | 34 Games |
Titan 1.0.0 | 17.5/33 | +2 | 33 Games |
Peacekeeper 3.01 | 18/32 | +4 | 32 Games |
PlentyChess 2.0.0 | 13/32 | -6 | 32 Games |
Yuliana 5.0 | 11.5/32 | -9 | 32 Games |
Caissa 1.19 | 13/30 | -4 | 30 Games |
Yuli GM Pro 16 | 7.5/26 | -11 | 26 Games |
Critter 1.6a | 23/24 | +22 | 24 Games |
Velvet v8.0.0 | 13/24 | +2 | 24 Games |
RubiChess 20240817 | 10/24 | -4 | 24 Games |
JigSaw 5.9 | 8/24 | -8 | 24 Games |
Akimbo 1.0.0 | 12.5/22 | +3 | 22 Games |
Obsidian 12.0 | 7.5/21 | -6 | 21 Games |
Fire 9.3 | 11.5/20 | +3 | 20 Games |
Comments
Post a Comment