Skip to content

Renegade 1.1.0

Latest
Compare
Choose a tag to compare
@pkrisz99 pkrisz99 released this 26 Jun 19:00
· 86 commits to main since this release

Renegade 1.1.0 (June 26, 2024)

It's been a while, but it's time for another release!

Renegade now features a bigger and much better neural network. The final iteration was trained on over 2.7 billion positions obtained from self-play of various development versions. FRC support was added, and the training dataset now includes a small portion of DFRC games as well.

A few search improvements had been made, but the more notably, a big part of the code was rewritten now that I'm more experienced with engine development. This has little effect on playing strength, but it is good for my sanity, and for everyone who dares to look at the source code, though still plenty of work left to be done in this regard.

As always, huge thanks to everyone who ran tests, tournaments, and to those who helped me and gave me feedback, I appreciate you all!

Changelog

  • Neural net improvements
    • Regenerated the whole dataset, now amounting to over 2.78 billion positions
    • Increased arch size, now (768->1024)x2->1
    • Using QA=255 quantization again with improved order of operations
    • Training with tapered WDL proportion
  • Search improvements
    • Added double extensions
    • Added multicut for non-PV nodes
    • Adjusting reductions in LMR based on cutoff count
    • Changed RFP margin calculations when improving
    • When not improving, reduced move counts before LMP kicks in
    • Reduced default aspiration window size
    • Not performing futility pruning if the history score is high enough
  • Added FRC (and DFRC) support
  • Simplifications
    • No longer reducing less when giving check
    • Removed fallback move ordering method when history score is 0
    • Removed additional en passant threat calculations when previous move was a pawn double push
  • Support for search parameter tuning
  • Performance improvements
    • Using static move lists in move generation
    • Partial insertion sort for faster move ordering
    • Not recalculating the whole hash after a null move
    • More efficient calculation of threats
    • Prefetching for null-move pruning
    • Added a proper (but not great) way of checking move legality
  • Refactored code
    • Saner separation of files
    • Rewritten position handling
  • Updated WDL models

Progression testing: (10s+0.1, Pohl.pgn)

Score of Renegade 1.1.0 vs Renegade 1.0.0: 520 - 87 - 393  [0.717] 1000
...      Renegade 1.1.0 playing White: 417 - 3 - 81  [0.913] 501
...      Renegade 1.1.0 playing Black: 103 - 84 - 312  [0.519] 499
...      White vs Black: 501 - 106 - 393  [0.698] 1000
Elo difference: 161.1 +/- 17.2, LOS: 100.0 %, DrawRatio: 39.3 %

You know the drill, expect less for balanced books and against other engines.

The provided binaries are targeting x86-64-bmi2 (v3 microarchitecture level).