Skip to content

Rudim v1.1 - Performance & Hotfixes

Compare
Choose a tag to compare
@znxftw znxftw released this 07 Feb 20:10
· 19 commits to main since this release

Performance improvements and hotfixes to Rudim

  • Rudim was failing at evaluating some promotion positions with UCI. This has been fixed, and perft has been extended to advanced positions to catch any problems with move generation at that level
  • Performance improvements
    • Moved from saving/restoring entire BoardState to restoring only the irreversible portions of BoardState (Copy-Make) and calculate the reversible portions using UnmakeMove()
    • Added PieceMappings for faster lookup of GetPieceOn() used by the Move Ordering functions.
  • Moved tests to run in release mode for realistic feedback

For a comparison, v1.0 took on average (in debug mode) ~11 seconds for perft(5,startpos) whereas v1.1 takes 4-5 seconds.
Most of the major improvements according to the profiler have been tackled - further performance improvements would require multiple smaller changes in implementations, which will be addressed later.