HekaStockfish 0.9

Discussion of anything and everything relating to chess playing software and machines.

Moderators: bob, hgm, Harvey Williamson

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
majkelnowaq
Posts: 25
Joined: Fri Aug 10, 2018 2:07 pm
Full name: D.S.

Re: HekaStockfish 0.9

Post by majkelnowaq » Mon Mar 16, 2020 2:41 pm

Hi,

Is this Engine meant for Windows only or maybe just 64 bit?

I can’t get it to compile on my Raspberry Pi, whereas I’ve had no trouble with any other Stockfish variants.


Thanks,
Hello, Im not really programmer, Im just a man who likes observe code and mix some things, add his own ideas. Therefore I don't know much about compiling. It's rather only 64 bit (Windows), one version without popcont for older computers. that's all.

But, here on this forum there are many good programmers who be able, I guess, compile it to 32bit version or to android and other systems. Source files are released, so maybe you ll find someone who ll help, unfortunately I can't do it.

Btw today (in next 12 hours) I ll release another version, updated to newest Stockfish, currently Im testing some solutions.

Damir
Posts: 2338
Joined: Mon Feb 11, 2008 2:53 pm
Location: Denmark
Full name: Damir Desevac

Re: HekaStockfish 0.9

Post by Damir » Mon Mar 16, 2020 3:17 pm

Hi Majkel

I am sure you can try and ask some of the people here with big hardware to help you test your engine, so you can further improve it..
Noobptw has been very helpful in helping Andrew on testing Ethereal. He has more than 4000 cores at his disposal. You can try and ask for his
assistance to help test ideas in your engine. :) :) :D

majkelnowaq
Posts: 25
Joined: Fri Aug 10, 2018 2:07 pm
Full name: D.S.

Re: HekaStockfish 0.9

Post by majkelnowaq » Mon Mar 16, 2020 8:41 pm

I thought about similar ideas Damir, thought about openbench too, but I would lose two things then - my satisfaction from discovering evaluation tweaks by my own and motivation to buy better hardware :) . And seriously I won't demand from anyone to be my beta-tester for free.

And here we have Hekastockfish 0.95 (I believe if version 1.00 ll be release someday - it ll be version with changed evaluation in default).

In Hekastockfish 0.95 there is no more evaluation additional options, this version is focused on presearch function. Updated to 14/03/2020 Stockfish dev version.
Presearch options are expanded. With checkboxes user can chose (with checking chosen box) which kind of pruning should be disabled for presearch phase and can chose value of multipv for presearch too. Default options are options used in Hekastockfish 0.90 and from my experience are good enough to find hidden tactics (of course if is longer game/strong hardware - it's better to increase presearch value from 2 to higher). Anyway now user has more possibilities, for example can use only chosen multipv value without disabling any pruning. Perhaps options I picked are good for analysis purposes but different options would be better for stronger play. Check it by yourself.

Please note if you use high values for presearch, switching moment to normal searching isn't precise. If one use 200 presearch, engine can switch to normal searching for example above 250 000 000 nodes. The reason is how engine reports its progress, it's done not by nodes but mainly by depths. So to be correct we have to say that engine switch to normal searching when it ll achieve number of nodes (set in presearch in KK) and gain another depth.


https://drive.google.com/open?id=1NzAIf ... EzpYQ8u7ET
http://www.mediafire.com/file/hcnn018rz ... 5.zip/file
https://www112.zippyshare.com/v/MJjY2UrU/file.html

majkelnowaq
Posts: 25
Joined: Fri Aug 10, 2018 2:07 pm
Full name: D.S.

Re: HekaStockfish 0.9

Post by majkelnowaq » Tue Mar 17, 2020 7:50 am

https://chessengines.blogspot.com/2020/ ... fritz.html

Despite the description of author I think it's version 0.95 (it has label 140320), it's nice that Heka won some little tournament. From my own testing I think it's at least equal to newest Stockfish, but with proper settings (I mean presearch) has advantage in finding tactic moves.

Edit: Hmm, I said it's version 0.95 due to label, but now Im not so sure. I noticed that tournament has 2020.03.15 date and 0.95 was released 16.03, possible that author changed version during tournament (post was published 16.03)...

Damir
Posts: 2338
Joined: Mon Feb 11, 2008 2:53 pm
Location: Denmark
Full name: Damir Desevac

Re: HekaStockfish 0.9

Post by Damir » Tue Mar 17, 2020 9:29 am


User avatar
MikeB
Posts: 3933
Joined: Thu Mar 09, 2006 5:34 am
Location: Pen Argyl, Pennsylvania

Re: HekaStockfish 0.9

Post by MikeB » Wed Mar 18, 2020 2:53 am

majkelnowaq wrote:
Mon Mar 16, 2020 8:41 pm
I thought about similar ideas Damir, thought about openbench too, but I would lose two things then - my satisfaction from discovering evaluation tweaks by my own and motivation to buy better hardware :) . And seriously I won't demand from anyone to be my beta-tester for free.

And here we have Hekastockfish 0.95 (I believe if version 1.00 ll be release someday - it ll be version with changed evaluation in default).

In Hekastockfish 0.95 there is no more evaluation additional options, this version is focused on presearch function. Updated to 14/03/2020 Stockfish dev version.
Presearch options are expanded. With checkboxes user can chose (with checking chosen box) which kind of pruning should be disabled for presearch phase and can chose value of multipv for presearch too. Default options are options used in Hekastockfish 0.90 and from my experience are good enough to find hidden tactics (of course if is longer game/strong hardware - it's better to increase presearch value from 2 to higher). Anyway now user has more possibilities, for example can use only chosen multipv value without disabling any pruning. Perhaps options I picked are good for analysis purposes but different options would be better for stronger play. Check it by yourself.

Please note if you use high values for presearch, switching moment to normal searching isn't precise. If one use 200 presearch, engine can switch to normal searching for example above 250 000 000 nodes. The reason is how engine reports its progress, it's done not by nodes but mainly by depths. So to be correct we have to say that engine switch to normal searching when it ll achieve number of nodes (set in presearch in KK) and gain another depth.


https://drive.google.com/open?id=1NzAIf ... EzpYQ8u7ET
http://www.mediafire.com/file/hcnn018rz ... 5.zip/file
https://www112.zippyshare.com/v/MJjY2UrU/file.html
Just a quick note to thank you for sharing. Indeed, the "presearch" function is what caught my eye and it definitely has some merit.
I have reworked presearch to suit my preferences and test methods and just tonight , I had my first passing test at 1 min plus 1/2 second increment - way faster than what you probably test at. So far looked at just one code snippit and modified it until I got a positive result. From my previous testing, I am fairly confirmed that my 1 min plus 0.5 increment positive test result will scale quite well at 5 min =+3 sec increment testing scheduled for overnight. Although based on "presearch", for the Honey engine group , I have renamed the option to "Profound" which is defined as "...having intellectual depth and insight" as that is my opinion as to what your "presearch" code brings to the table.

Took 3 days of testing - identical engines except for the new profound (aka 'presearch') function in the St Patty's Day version (031720):
Score of Stockfish-031720 vs Stockfish-031420: 158 - 141 - 701 [0.508]
Elo difference: 5.9 +/- 11.8, LOS: 83.7 %, DrawRatio: 70.1 %

1000 of 1000 games finished.
Not yet public on Github, but it will be soon if longer testing goes well.

Thank you once again.
I will be looking at your code quite a while.

User avatar
Ovyron
Posts: 3958
Joined: Tue Jul 03, 2007 2:30 am

Re: HekaStockfish 0.9

Post by Ovyron » Wed Mar 18, 2020 3:39 am

That's impressive. Does that mean it could be added to Stockfish master and make it the default behavior? :shock:

majkelnowaq
Posts: 25
Joined: Fri Aug 10, 2018 2:07 pm
Full name: D.S.

Re: HekaStockfish 0.9

Post by majkelnowaq » Wed Mar 18, 2020 3:41 am

That's great news Mike! I would be glad if someone like you, real programmer, could change my ideas to more useful solutions. We all want stronger Stockfish and with open source there is no competition, just team work.

If you would be interested I should have two versions with different logic for presearch. First of them uses one of cores (2nd core exactly) to do presearch in background, it works and find tactic moves fine but usually loses to Stockfish (I suppose there is a need to change some code in threads voting). Second one doesn't need to set presearch in option because it has code to match value of presearch to available time (testing only in 'base time with increment' and tests were quite good). So if u want, I can share links to above mentioned sources.

User avatar
MikeB
Posts: 3933
Joined: Thu Mar 09, 2006 5:34 am
Location: Pen Argyl, Pennsylvania

Re: HekaStockfish 0.9

Post by MikeB » Wed Mar 18, 2020 5:41 am

Ovyron wrote:
Wed Mar 18, 2020 3:39 am
That's impressive. Does that mean it could be added to Stockfish master and make it the default behavior? :shock:
Within the Honey family of engines ( 10 in total) , a functional equivalent for SF is included(same bench signature), where this code would be off by default, but could be turned by on the user via the UCI option command of through the GUI. Another option, which is turned on by default, since it does not impact the bench signature, is Large Pages, so by default this SF equivalent version will always be faster than standard SF for those that enable large pages in windows ( on my machine - about 5%+ or so) , The presearch function would never be added by official SF since it could never get passed the initial STC hurdle of 10 sec game +.1 sec - but others could add it to their private fork , or just use my functionally equivalent SF with all the other bells and whistles. My long game testing is 5 min 3 sec - which in reality, is not very long. It appears to me, that hekastockfish was tuned for much longer games and multiple cores- and although currently based on 10/19 SF, may actually be stronger than current SF at very long TC with high thread counts. It's really hard to test because who has the resources to test. My initial presearch modification is much more tame/milder than Hekastockfish, since I really wanted to see if it was possible to tune it so it could be an Elo gainer at 5 min 3 sec games. At games with bullet time controls, it is weaker than SF - no question - but at much longer times controls with high thread counts who really knows ? As we all know , because of pruning , SF has many blind sports, even with much longer tc - but statistically at 1 or 2 min bullet games, there is no stronger engine. So it appears that the code is an attempt to enable SF to see those blind spots at much longer tc, that current SF will never see, and at the same time not lose playing strength at those longer tc. It does this by widening the search early and then tapering back to be more like SF once so many nodes are examined.

Ongoing 5 min /3 sec testing :
Score of Stockfish-031720 vs Stockfish-031420: 40 - 41 - 230 [0.498]
Elo difference: -1.1 +/- 19.7, LOS: 45.6 %, DrawRatio: 74.0 %

Although not looking promising, this is actually better than the 1 min /0.5 sec set was at this point - so I still expect his to score a little better than the STC run.

Here's Black_Diamond with the Profound (presearch) code and using just 10 threads, finds the key move to the Plaskett's puzzle in < than 3 minutes:
Black Diamond 031820 by T. Romstad, M. Costalba, J. Kiiski, G. Linscott
info string Hash LargePages 256 Mb
uci
id name Black Diamond 031820
id author T. Romstad, M. Costalba, J. Kiiski, G. Linscott
option name Debug Log File type string default
option name Use_Book_1 type check default false
option name Book_File_1 type string default
option name Best_Move_1 type check default false
option name Book_Depth_1 type spin default 127 min 1 max 127
option name Use_Book_2 type check default false
option name Book_File_2 type string default
option name Best_Move_2 type check default false
option name Book_Depth_2 type spin default 127 min 1 max 127
option name Use_Book_3 type check default false
option name Book_File_3 type string default
option name Best_Move_3 type check default true
option name Book_Depth_3 type spin default 127 min 1 max 127
option name Use_Book_4 type check default false
option name Book_File_4 type string default
option name Best_Move_4 type check default true
option name Book_Depth_4 type spin default 127 min 1 max 127
option name Contempt_Value type spin default 24 min -100 max 100
option name Contempt type check default true
option name Dynamic_Contempt type check default true
option name Analysis_Contempt type combo default Off var White var Black var Both var Off
option name Skill Level type spin default 40 min 0 max 40
option name Move Overhead type spin default 30 min 0 max 5000
option name Minimum Thinking Time type spin default 20 min 0 max 5000
option name Threads type spin default 1 min 1 max 512
option name Hash type spin default 256 min 1 max 131072
option name Ponder type check default false
option name Adaptive_Play type check default false
option name Variety type check default false
option name 7 Man Probing type check default false
option name FastPlay type check default false
option name Minimal_Output type check default false
option name Large Pages type check default true
option name Defensive type check default false
option name Profound type spin default 5 min 0 max 15
formula (2^x ( '5' from above or 32 times 300 == 9600) - will probably make the max setting 20, which will take it over 300M, which is close to what can set it to in hekastockfish - sort of extreme - but on big hardware with lots of core - not a big deal when you machine see over 100M /nps
option name Clear_Hash type button
option name Clean_Search type check default false
option name MultiPV type spin default 1 min 1 max 256
option name Bench_KNPS type spin default 1500 min 500 max 6000
option name Output type combo default Centipawn var ScorPct-GUI var ScorPct var Centipawn
option name Tactical type spin default 0 min 0 max 8
option name Slow Mover type spin default 100 min 10 max 1000
option name NPS_Level type spin default 0 min 0 max 60
option name UCI_LimitStrength type check default false
option name Sleep type check default false
option name UCI_Elo type spin default 1750 min 1000 max 2900
option name FIDE_Ratings type check default true
option name Engine_Level type combo default None var World_Champion var Super_GM var GM var Deep_Thought var SIM var Cray_Blitz var IM var Master var Expert var Class_A var Class_B var Class_C var Class_D var Boris var Novice var None
option name Nodestime type spin default 0 min 0 max 10000
option name UCI_Chess960 type check default false
option name UCI_AnalyseMode type check default false
option name SyzygyPath type string default <empty>
option name SyzygyProbeDepth type spin default 1 min 1 max 100
option name Syzygy50MoveRule type check default true
option name SyzygyProbeLimit type spin default 7 min 0 max 7
uciok
Note the shortcut keys used below:
s hash 4096
info string Hash LargePages 4096 Mb
Confirmation: hash set to 4096
s t 10
Confirmation: Threads set to 10
p f 8/3P3k/n2K3p/2p3n1/1b4N1/2p1p1P1/8/3B4 w - - 0 1
s z c:\syzygy
info string Found 510 tablebases
Confirmation: SyzygyPath set to c:\syzygy
g i
[debug sync_out to see profound value - see above]
profound: 9600


info depth 34 seldepth 60 multipv 1 score cp -206 nodes 1806186507 nps 14004594 hashfull 998 tbhits 29208046 time 128971 pv d7d8q g5f7 d6e7 f7d8 e7d8 b4a5 d8d7 a5c7 g4e3 c7g3 d7c6 h7g6 e3c2 g3f2 c6d5 h6h5 d5c4 g6g5 c4c3 h5h4 d1f3 g5f4 f3b7 a6c7 c2a3 c7e8 c3d3 e8f6 a3c4 f6g4 c4d2 f2d4 d2f3 h4h3 f3d2 d4g1 d3e2 g4e3 e2d3 h3h2 d3c3 g1f2 c3d3
info depth 35 currmove d7d8q currmovenumber 1
info depth 35 currmove g4e3 currmovenumber 2
info depth 35 currmove d6c6 currmovenumber 3
info depth 35 currmove g4f6 currmovenumber 4
info depth 35 currmove d6e5 currmovenumber 5
info depth 35 currmove d6d5 currmovenumber 6
info depth 35 currmove g4f2 currmovenumber 7
info depth 35 currmove g4e5 currmovenumber 8
info depth 35 currmove d6e7 currmovenumber 9
info depth 35 currmove d1a4 currmovenumber 10
info depth 35 currmove d1e2 currmovenumber 11
info depth 35 currmove d1c2 currmovenumber 12
info depth 35 currmove d1f3 currmovenumber 13
info depth 35 currmove g4h2 currmovenumber 14
info depth 35 currmove d1b3 currmovenumber 15
info depth 35 currmove d7d8r currmovenumber 16
info depth 35 currmove d7d8b currmovenumber 17
info depth 35 currmove d7d8n currmovenumber 18
info depth 35 currmove g4h6 currmovenumber 19
info depth 35 seldepth 52 multipv 1 score cp -215 upperbound nodes 2213879939 nps 13999759 hashfull 999 tbhits 35929002 time 158137 pv d7d8q g5f7
info depth 35 currmove d7d8q currmovenumber 1
info depth 35 currmove g4e3 currmovenumber 2
info depth 35 currmove d6c6 currmovenumber 3
info depth 35 currmove g4f6 currmovenumber 4
info depth 35 seldepth 52 multipv 1 score cp -206 lowerbound nodes 2439559096 nps 14024403 hashfull 1000 tbhits 39740584 time 173951 pv g4f6
info depth 35 currmove g4f6 currmovenumber 1
info depth 35 seldepth 52 multipv 1 score cp -193 lowerbound nodes 2440354148 nps 14024459 hashfull 1000 tbhits 39747176 time 174007 pv g4f6
info depth 35 currmove g4f6 currmovenumber 1
info depth 35 seldepth 52 multipv 1 score cp -175 lowerbound nodes 2441794515 nps 14024677 hashfull 1000 tbhits 39763037 time 174107 pv g4f6
info depth 35 currmove g4f6 currmovenumber 1
info depth 35 seldepth 52 multipv 1 score cp -151 lowerbound nodes 2448595481 nps 14025314 hashfull 1000 tbhits 39845076 time 174584 pv g4f6
info depth 35 currmove g4f6 currmovenumber 1
info depth 35 seldepth 52 multipv 1 score cp -119 lowerbound nodes 2458138092 nps 14025745 hashfull 1000 tbhits 39972717 time 175259 pv g4f6
info depth 35 currmove g4f6 currmovenumber 1
info depth 35 seldepth 52 multipv 1 score cp -78 lowerbound nodes 2471778433 nps 14025229 hashfull 1000 tbhits 40205758 time 176238 pv g4f6
info depth 35 currmove g4f6 currmovenumber 1
info depth 35 seldepth 52 multipv 1 score cp -26 lowerbound nodes 2493836666 nps 14024421 hashfull 1000 tbhits 40535057 time 177821 pv g4f6
info depth 35 currmove g4f6 currmovenumber 1
info depth 35 seldepth 52 multipv 1 score cp 41 lowerbound nodes 2543240988 nps 14021772 hashfull 1000 tbhits 41286687 time 181378 pv g4f6
info depth 35 currmove g4f6 currmovenumber 1
info depth 35 seldepth 52 multipv 1 score cp 127 lowerbound nodes 2584368875 nps 14025435 hashfull 1000 tbhits 41847598 time 184263 pv g4f6
info depth 35 currmove g4f6 currmovenumber 1
info depth 35 seldepth 52 multipv 1 score cp 235 lowerbound nodes 2741290894 nps 14021733 hashfull 1000 tbhits 45004434 time 195503 pv g4f6
info depth 35 currmove g4f6 currmovenumber 1
info depth 35 currmove g4e3 currmovenumber 2
info depth 35 currmove d7d8q currmovenumber 3
info depth 35 currmove d6c6 currmovenumber 4
info depth 35 currmove d6e5 currmovenumber 5
info depth 35 currmove d6d5 currmovenumber 6
info depth 35 currmove d6e7 currmovenumber 7
info depth 35 currmove d1a4 currmovenumber 8
info depth 35 currmove g4e5 currmovenumber 9
info depth 35 currmove d1b3 currmovenumber 10
info depth 35 currmove g4f2 currmovenumber 11
info depth 35 currmove d1f3 currmovenumber 12
info depth 35 currmove g4h2 currmovenumber 13
info depth 35 currmove d1e2 currmovenumber 14
info depth 35 currmove d1c2 currmovenumber 15
info depth 35 currmove d7d8r currmovenumber 16
info depth 35 currmove d7d8b currmovenumber 17
info depth 35 currmove d7d8n currmovenumber 18
info depth 35 currmove g4h6 currmovenumber 19
info depth 35 seldepth 113 multipv 1 score cp 358 nodes 3395857499 nps 14057097 hashfull 1000 tbhits 61485481 time 241576 pv g4f6 h7g7 f6h5 g7g6 d1c2 g6h5 d7d8q h5g4 c2d1 g4g3 d8e8 c5c4 d6c6 b4c5 e8e5 g3g2 e5d5 g2g1 d5c4 c3c2 d1c2 g5f3 c6b7 g1f2 c2d1 f3g1 b7a6 c5d6 d1g4 d6e5 c4e4 e5b8 e4d4 f2g3 d4e3 g3g4 e3e6 g4f4 e6h6 f4f3 h6c6 f3e3 c6b6 e3d3 b6g1 b8e5 g1g6 d3c3 a6b5
info depth 36 currmove g4f6 currmovenumber 1
?
info depth 36 seldepth 113 multipv 1 score cp 358 nodes 3699066296 nps 14042785 hashfull 1000 tbhits 70812591 time 263414 pv g4f6 h7g7 f6h5 g7g6 d1c2 g6h5 d7d8q h5g4 c2d1 g4g3 d8e8 c5c4 d6c6 b4c5 e8e5 g3g2 e5d5 g2g1 d5c4 c3c2 d1c2 g5f3 c6b7 g1f2 c2d1 f3g1 b7a6 c5d6 d1g4 d6e5 c4e4 e5b8 e4d4 f2g3 d4e3 g3g4 e3e6 g4f4 e6h6 f4f3 h6c6 f3e3 c6b6 e3d3 b6g1 b8e5 g1g6 d3c3 a6b5
bestmove g4f6 ponder h7g7

User avatar
Ovyron
Posts: 3958
Joined: Tue Jul 03, 2007 2:30 am

Re: HekaStockfish 0.9

Post by Ovyron » Wed Mar 18, 2020 6:53 pm

@majkelnowaq: Yes, please share those versions, it's great to see new ideas's implementations.

@MikeB: Looks good. I'll be awaiting for the next release of Profound Honey :)

Post Reply