Skip to content

Reckless v0.6.0

Compare
Choose a tag to compare
@codedeliveryservice codedeliveryservice released this 21 Mar 23:32
· 95 commits to main since this release
f3467ae

Release Notes

Alongside numerous search improvements and adjustments, Reckless now supports the multi-threaded search, implemented using the Lazy SMP approach by sharing the lockless transposition table between search threads (#20, #27).

The activation function has been switched to SCReLU (bee8f74), and other three networks (#14, #26, and #33) have been trained and used during the development process.

Changelog

Time management

  • Time adjustment based on distribution of root nodes (#1)
  • Cyclic TC improvements (#31)
  • Fischer TC improvements (#32)

Late move reductions

  • Reduce checks less (#5)
  • Fractional late move reductions (#29)

History heuristics

  • Follow-up move history (#11)
  • Counter move history (#12)
  • Linear history formula (#13)
  • Separate bonus and malus (#21)
  • Index by side to move in main history (#23)

Performance optimizations

  • Transposition table prefetching (#4)
  • Handwritten SIMD for AVX2 instructions (#16)
  • Faster repetition detection (#28)

Various search improvements

  • Introduce razoring (#3)
  • Fail-soft null move pruning (#6)
  • Probe transposition table before stand pat (#7)
  • Adaptive NMP based on static evaluation (#8)
  • Use transposition table score to adjust eval (#10)
  • SPSA tuning session (#17)
  • Move check extension inside move loop (#19)
  • Update aspiration search delta function (#15)
  • Reset killer moves for child nodes (#22)
  • Avoid using static evaluation when in check (#24)
  • Increase research depth when LMR search results are promising (#30)
  • Reset killer moves before null move pruning (#34)

Full Changelog: v0.5.0...v0.6.0

Acknowledgments

Special thanks to @AndyGrant for kindly sharing his CPU time and for developing OpenBench, which is actively used in the development process.

Self-Play Benchmark Against v0.5.0

STC 8.0+0.08s

Elo   | 155.12 +- 11.83 (95%)
Conf  | 8.0+0.08s Threads=1 Hash=32MB
Games | N: 2000 W: 994 L: 156 D: 850
Penta | [8, 53, 272, 427, 240]

LTC 40.0+0.4s

Elo   | 157.43 +- 15.49 (95%)
Conf  | 40.0+0.40s Threads=1 Hash=128MB
Games | N: 1006 W: 474 L: 47 D: 485
Penta | [0, 20, 145, 229, 109]