Skip to content

Improved search and stability

Compare
Choose a tag to compare
@konsolas konsolas released this 24 Jun 16:35
· 46 commits to master since this release
d810b27

General

  • Updated CMakeLists.txt
  • Additional validation on promotions when decompressing and checking for legality
  • e.p. moves are now treated as captures
  • Configured alignment for structures which are not shared between threads
  • XOR trick used to improve the performance of the transposition table with many threads
  • hashfull now determined with a sample of the first 4000 entries
  • MAX_PLY increased to 255
  • UCI code now rejects setoption commands while a search is running
  • Removed "Move from Hash" due to regression against weaker engines
  • Transposition table is now locked when aging to prevent crashes between games
  • Topple's move generator now generates promotions separately to other pawns moves and captures
  • Reduced the memory overhead of move generation
  • Fixed compilation error for ToppleTune
  • Added unit tests for move compression and for the new hash entry structure.
  • Fixed a bunch of compilation warnings

Search

  • Promotions are now generated with captures to be sorted first
  • Removed separate generation stages for killer moves (now treated as quiets)
  • Losing captures are now sorted after quiet moves
  • Captures sorted by MVV instead of SEE.
  • Move generator can now skip quiet moves without generating them
  • History heuristic now scales the previous score to prevent high values being reached
  • Lower reduction used in LMR if the evaluation is improving
  • Added static null move pruning
  • History leaf pruning now only allowed at depth 1
  • Added late move pruning
  • Futility pruning and LMR are now enabled for killer moves

Evaluation

  • No change

Based on self play testing, 0.7.1 seems to be around 50 elo stronger than 0.7.0 on a single thread and around 100 elo stronger on 4 threads, though actual increases are likely to be much less.

I'd also like to thank @vshcherbyna for his help with debugging a particular infuriating crash.