Skip to content

v1.4.0

Compare
Choose a tag to compare
@bdmendes bdmendes released this 01 Apr 13:44
· 97 commits to master since this release
14680e3

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: 2270 (Bullet), 2200 (Blitz), 2290 (Rapid)
  • CCRL: 2133 (Blitz)
  • Against v1.3.1: ✅ Elo difference: 89.20 +/- 20.97