New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bonus for rook/queen attacking pawns on same rank #23
Conversation
|
Thanks Gary, could you please post test conditions? I will retest at longer tc for verification in next days. Marco On Sun, Sep 16, 2012 at 4:04 PM, Gary Linscott notifications@github.comwrote:
|
|
40/4+0.05 for cutechess. The full command line is: |
|
I have started the test, in few days I'll post results. In the mean time I have cooked this cheap version that should be a bit if ( (Piece == ROOK || Piece == QUEEN) } |
|
Thanks! The speed improvement looks nice. I'll give that a run tonight at 4". |
|
I'll let the modified version keep running for a while, so far it's still within error bars: |
|
Still within error bars, but seems not as good as first version. I'm running 64 bit though, so impact of popcount probably not as high as it would be on 32 bit. Wins: 3327 Losses: 3100 Draws: 12641 |
|
Thanks Gary, My partial result with 15"+0.05 per game is Wins: 667 Losses: 561 Draws: I'd like to commit in one of the two patches currently under test by me and Normally a fix release is a "no functional change" to avoid people to |
|
Cool, still very much within error bars, but looking solid! This is with the popcount version? It seems slightly stronger. |
|
Yes it is with the popcount version. I am a little bit worried about |
|
On Thu, Sep 20, 2012 at 7:23 AM, Marco Costalba mcostalba@gmail.com wrote:
Putting a dbg_hit_on(): RankBB[rank_of(s)]; Shows on a bench run: Total 1600773 Hits 758737 hit rate (%) 47 So most of the times the code is triggered by relative_rank(Us, s) == if (relative_rank(Us, s) > RANK_5) { Instead of your original, this should about half the calls to |
|
So, I just took another look at the test I had run with your optimization, I'm running a new test with your optimized version, with the correct queen I had run a rank > 5 test with popcount a while back, and it didn't do as On Thu, Sep 20, 2012 at 1:52 AM, Marco Costalba notifications@github.comwrote:
|
|
In progress run with your optimization (this time without messing things up :). Looks pretty good, so I'd say we go with your version. I'll let this keep running to get a better comparison though. ELO: 10.18 +- 99%: 13.64 95%: 10.36 |
|
On Thu, Sep 20, 2012 at 6:33 PM, Gary Linscott notifications@github.comwrote:
Thanks ! yes please, let it go. I will also switch to test cheaper |
|
Still looking very solid. I think it's safe to go with your version, assuming the longer test pans out for popcount version. ELO: 8.49 +- 99%: 9.44 95%: 7.17 |
|
I've updated the rook7th branch with the version I'm testing currently, just to make sure we are on the same page :). |
|
Actually we are not on the same page ! IN my version codition is: (Piece == ROOK || Piece == QUEEN) && relative_rank(Us, s) > RANK_5 instead of (Piece == ROOK || Piece == QUEEN) && relative_rank(Us, s) >= RANK_5 So you are testing including RANK_5 To avoid misunderstandings I have pushed a new branch: https://github.com/mcostalba/Stockfish/commits/major_attacks_pawns Where you can see in the latest 3 commits the original version with |
|
Ah, yes, so, having the condition be >= RANK_5 is important I think. Here are the final results from the rook7th branch, with your optimization. ELO: 8.22 +- 99%: 5.79 95%: 4.40 |
|
In the major_attacks_pawns branch, I see "if (relative_rank(Us, s) == RANK_5)", which could explain the regression. |
|
On Fri, Sep 21, 2012 at 2:08 PM, Gary Linscott notifications@github.comwrote:
|
|
Ah, sorry, I missed that. So, for the cheap version commit, you had the On Fri, Sep 21, 2012 at 8:36 AM, Marco Costalba notifications@github.comwrote:
|
|
Ok, your suspicious was right, after 1K games results are inconclusive https://github.com/mcostalba/Stockfish/tree/major_attacks_pawns It is the correct one? The 'bench' signature of this candidate is: 5714962 |
|
Argh, my bench is 4937286. I checked for the difference, and I was running const Score RookBonusPerPawn = make_score(3, 38); And the originals from the popcount version: const Score RookBonusPerPawn = make_score(3, 48); I am now re-running the test with the 48,40 values for non-popcount, Gary On Fri, Sep 21, 2012 at 9:01 AM, Marco Costalba notifications@github.comwrote:
|
|
Well, results are certainly not conclusive, but not looking great for the 48,40 test right now. ELO: -13.44 +- 99%: 36.79 95%: 27.93 |
|
Still pretty bad with 48,40. Looks like those weights are pretty elo sensitive! ELO: -14.30 +- 99%: 25.21 95%: 19.15 |
|
I'm trying to run some tests in my side with cutechess-cli ; what tool do 2012/9/21 Gary Linscott notifications@github.com
|
|
It's a really simple python script. https://gist.github.com/3762136. |
|
Thanks ! :-) 2012/9/21 Gary Linscott notifications@github.com
|
|
Ok, I will check how is going my running test later this evening. I am making up my mind that the most wise choice is to release with the Then after release we can tune the parameters with a CLOP+cutechess Because a CLOP sessions takes some days and I'd really would like to Comments? |
|
If you have a CLOP howto, I would be happy to launch the tests :-) So far, here are the esults of your branch : 2012/9/21 Marco Costalba notifications@github.com
|
|
@mcostalba, Yes, I think I agree with you :). We can tune afterwards, but popcount tested solidly at both time controls. Tuning for speed/32 bit seems like an excellent job for CLOP. @jromang, CLOP is a bit of work to set up, and requires that the parameters to be tuned are accessible as uci options, so requires minor source changes usually. But it would be great having someone else tuning things! What platform are you running on? |
|
OK, I'd suggest you can stop it (not good). With cutechess it is already included a glue-script *clop-cutechess-cli.py *to https://github.com/cutechess/cutechess/tree/master/tools It is very easy to use. I can send you an example later this evening when I |
|
I'm on linux (64bit), no problems for the uci options changes...but I don't 2012/9/21 Gary Linscott notifications@github.com
|
|
On Fri, Sep 21, 2012 at 7:54 PM, Jean-Francois Romang <
Yes, you have to expose the parameters as UCI parameters, but this is very It is more difficult to explain than to do: later this evening I will setup |
|
I made the UCI changes : |
|
On Fri, Sep 21, 2012 at 9:19 PM, Jean-Francois Romang <
No it is not. I have pushed branch "clop_tuning": https://github.com/mcostalba/Stockfish/tree/clop_tuning Where I have done all the setup to tune endgames values for both rook and |
|
Thanks marco, this is crystal clear :-) 2012/9/22 Marco Costalba notifications@github.com
|
|
Have you double checked everything works? Namely the options are actually Before a long session test I add some file logging in SF to be sure You can use Log class that comes handy in this cases. |
|
I have pushed a patch to clop_tuning to better clarify what I mean: |
|
It looks like RookBonusPerPawn/QueenBonusPerPawn are much more ELO sensitive, as CLOP is focusing in on that narrow area. Might be worth trying just optimizing those. Also, the values it has right now could be good, CLOP's elo estimates are sometimes off by a bit (usually too optimistic, but not always). |
|
I will let my test run until I have some 'Max' values, but the second test 2012/9/22 Gary Linscott notifications@github.com
|



Based off of the idea from @RyanTaker, this did very well in game testing.
Wins: 3390 Losses: 2972 Draws: 11323
LOS: 99.999992%
ELO: 8.213465 +- 99%: 6.746506 95%: 5.124415
Win%: 51.181792 +- 99%: 0.969791 95%: 0.736740