I made a logarithmic curve for depth rather than linear, similar to "smooth scaling stockfish" in 2009:
forum/viewtopic.php?p=312971#p312971
This added a few Elo in my tests.
I added a method to reduce pruning a bit when mobility is very low and increase it a bit when mobility is very high.
This added a few Elo in my tests.
I increased the default depth for the benchmark to 15 so that the profile would get better data.
I tweaked the makefile so I could do profiles on my system.
Here is a link to the modified version (it is built for avx2 because I have an older threadripper):
Here are some test results:
Code: Select all
  Program                          Elo    +   -   Games   Score   Av.Op.  Draws
  1 ObsidianNLHAMP                 : 3355   15  14   330    54.4 %   3324   84.5 %
  2 ObsidianPH                     : 3332   11  11   437    51.0 %   3324   88.8 %
  3 ObsidianDev                    : 3324    9   9   767    47.5 %   3342   87.0 %
    Program                          Elo    +   -   Games   Score   Av.Op.  Draws
  1 ObsidianDevNLmob               : 3341    9   8   616    51.8 %   3329   90.6 %
  2 Obsidian140NLmob               : 3331    8   9   616    49.6 %   3334   90.4 %
  3 Obsidian140-avx2               : 3327    9   9   616    48.6 %   3336   89.4 %
ObsidianPH is a test that turned out negative (a modification of ObsidianNLHAMP that did not work out)
ObsidianDev is the previous dev version
ObsidianDevNLmob is the current dev source with Non-Linear pruning and mobility pruning
Obsidian140NLmob is the released Obsidian 1.40 with Non-Linear pruning and mobility pruning
Obsidian140-avx2 is the unmodified Obsidian 1.40.
The modifications improved solutions to my difficult tactical suite by 10%.
Maybe the changes can give thought for better improvements. If you have msys2 and gcc, you should be able to build using the provided makefile on windows using the UCRT64 version of the compiler.