Camel is a chess engine written from scratch in Rust. It aims to achieve a high level of play, while also being easy to understand and modify. It is primarily meant to be used within a GUI compatible with the UCI protocol, but may also be operated in a CLI.
Author: Bruno Mendes!
Rating CEDR=2191
v.1.4.0:
This release makes the engine multithreaded, using the LazySMP approach, by spawning helper threads with different move ordering. It also refactors the hash table to have smaller entries, directly stored as atomics with 16 bytes, allowing fast, native concurrency. Futility Pruning was also introduced as a new technique, significantly reducing time to depth in some positions.
This makes Camel about 100 Elo stronger in fast time controls, even without threading enabled. The gains with multiple threads will be less deterministic due to the nature of the approach used.
Changelog
Support the Threads UCI option
Search with multiple threads using LazySMP
Prune moves with Extended Futility Pruning when depth <= 2
Refactor the data layout of hash table entries
Refactor check detection/evasion
Estimated Strength
Lichess: 2264 (Bullet), 2205 (Blitz), 2282 (Rapid)
Against v1.3.1: ✅ Elo difference: 89.20 +/- 20.97
Comments
Post a Comment