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.