-
Notifications
You must be signed in to change notification settings - Fork 2.2k
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
Apply refuted main killer penalty also on early TT cut-offs. #1878
Conversation
Makes penalty logic more consistent with the logic at normal search. Failed STC: http://tests.stockfishchess.org/tests/view/5c121e730ebc5902ba11aad8 LLR: -2.95 (-2.94,2.94) [0.00,5.00] Total: 72193 W: 15848 L: 15625 D: 40720 Elo +1.07 Passed LTC: http://tests.stockfishchess.org/tests/view/5c17b1b10ebc5902ba123c24 LLR: 2.95 (-2.94,2.94) [0.00,5.00] Total: 35073 W: 5886 L: 5625 D: 23562 Elo +2.59 bench: 3393939
Makes penalty logic more consistent with the logic at normal search. Failed STC: http://tests.stockfishchess.org/tests/view/5c121e730ebc5902ba11aad8 LLR: -2.95 (-2.94,2.94) [0.00,5.00] Total: 72193 W: 15848 L: 15625 D: 40720 Elo +1.07 Passed LTC: http://tests.stockfishchess.org/tests/view/5c17b1b10ebc5902ba123c24 LLR: 2.95 (-2.94,2.94) [0.00,5.00] Total: 35073 W: 5886 L: 5625 D: 23562 Elo +2.59 bench: 3393939
update_continuation_histories(ss-1, pos.piece_on(prevSq), prevSq, -stat_bonus(depth + ONE_PLY)); | ||
// Extra penalty for a quiet TT or main killer move in previous ply when it gets refuted | ||
if ( (ss-1)->moveCount == 1 | ||
|| ((ss-1)->currentMove == (ss-1)->killers[0] && (ss-1)->killers[0])) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
out of curiosity, is the && (ss-1)->killers[0])
actually needed (and if so what does it do) ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See #1838, it is needed to avoid segfaults.
Merged via 0f2df4e, congrats:-) |
the && (ss-1)->killers[0] are there seemingly to protect accessing ss-5. This is unneeded and not so intuitive (as the killer is checked for equality with currentMove, and that one is non-zero once we're high enough in the stack, this protects access to ss-5). We can just extend the stack from ss-4 to ss-5, so we can call update_continuation_histories(ss-1, ..) always in search. This goes a bit further than official-stockfish#1881 and addresses a comment in official-stockfish#1878. passed STC: http://tests.stockfishchess.org/tests/view/5c1aa8d50ebc5902ba127ad0 LLR: 3.12 (-2.94,2.94) [-3.00,1.00] Total: 53515 W: 11734 L: 11666 D: 30115 passed LTC: http://tests.stockfishchess.org/tests/view/5c1b272c0ebc5902ba12858d LLR: 2.95 (-2.94,2.94) [-3.00,1.00] Total: 140176 W: 23123 L: 23192 D: 93861 Bench: 3451321
Apply refuted main killer penalty also on early TT cut-offs. This makes penalty logic more consistent with the logic at normal search. Failed STC: http://tests.stockfishchess.org/tests/view/5c121e730ebc5902ba11aad8 LLR: -2.95 (-2.94,2.94) [0.00,5.00] Total: 72193 W: 15848 L: 15625 D: 40720 Elo +1.07 Passed LTC: http://tests.stockfishchess.org/tests/view/5c17b1b10ebc5902ba123c24 LLR: 2.95 (-2.94,2.94) [0.00,5.00] Total: 35073 W: 5886 L: 5625 D: 23562 Elo +2.59 Closes official-stockfish#1878 bench: 3393939
The `&& (ss-1)->killers[0] ` conditions are there seemingly to protect accessing ss-5. This is unneeded and not so intuitive (as the killer is checked for equality with currentMove, and that one is non-zero once we're high enough in the stack, this protects access to ss-5). We can just extend the stack from ss-4 to ss-5, so we can call update_continuation_histories(ss-1, ..) always in search. This goes a bit further than #1881 and addresses a comment in #1878. passed STC: http://tests.stockfishchess.org/tests/view/5c1aa8d50ebc5902ba127ad0 LLR: 3.12 (-2.94,2.94) [-3.00,1.00] Total: 53515 W: 11734 L: 11666 D: 30115 passed LTC: http://tests.stockfishchess.org/tests/view/5c1b272c0ebc5902ba12858d LLR: 2.95 (-2.94,2.94) [-3.00,1.00] Total: 140176 W: 23123 L: 23192 D: 93861 Bench: 3451321
Apply refuted main killer penalty also on early TT cut-offs. This makes penalty logic more consistent with the logic at normal search. Failed STC: http://tests.stockfishchess.org/tests/view/5c121e730ebc5902ba11aad8 LLR: -2.95 (-2.94,2.94) [0.00,5.00] Total: 72193 W: 15848 L: 15625 D: 40720 Elo +1.07 Passed LTC: http://tests.stockfishchess.org/tests/view/5c17b1b10ebc5902ba123c24 LLR: 2.95 (-2.94,2.94) [0.00,5.00] Total: 35073 W: 5886 L: 5625 D: 23562 Elo +2.59 Closes official-stockfish#1878 bench: 3393939
The `&& (ss-1)->killers[0] ` conditions are there seemingly to protect accessing ss-5. This is unneeded and not so intuitive (as the killer is checked for equality with currentMove, and that one is non-zero once we're high enough in the stack, this protects access to ss-5). We can just extend the stack from ss-4 to ss-5, so we can call update_continuation_histories(ss-1, ..) always in search. This goes a bit further than official-stockfish#1881 and addresses a comment in official-stockfish#1878. passed STC: http://tests.stockfishchess.org/tests/view/5c1aa8d50ebc5902ba127ad0 LLR: 3.12 (-2.94,2.94) [-3.00,1.00] Total: 53515 W: 11734 L: 11666 D: 30115 passed LTC: http://tests.stockfishchess.org/tests/view/5c1b272c0ebc5902ba12858d LLR: 2.95 (-2.94,2.94) [-3.00,1.00] Total: 140176 W: 23123 L: 23192 D: 93861 Bench: 3451321
Apply refuted main killer penalty also on early TT cut-offs. This makes penalty logic more consistent with the logic at normal search. Failed STC: http://tests.stockfishchess.org/tests/view/5c121e730ebc5902ba11aad8 LLR: -2.95 (-2.94,2.94) [0.00,5.00] Total: 72193 W: 15848 L: 15625 D: 40720 Elo +1.07 Passed LTC: http://tests.stockfishchess.org/tests/view/5c17b1b10ebc5902ba123c24 LLR: 2.95 (-2.94,2.94) [0.00,5.00] Total: 35073 W: 5886 L: 5625 D: 23562 Elo +2.59 Closes #1878 bench: 3393939
The `&& (ss-1)->killers[0] ` conditions are there seemingly to protect accessing ss-5. This is unneeded and not so intuitive (as the killer is checked for equality with currentMove, and that one is non-zero once we're high enough in the stack, this protects access to ss-5). We can just extend the stack from ss-4 to ss-5, so we can call update_continuation_histories(ss-1, ..) always in search. This goes a bit further than #1881 and addresses a comment in #1878. passed STC: http://tests.stockfishchess.org/tests/view/5c1aa8d50ebc5902ba127ad0 LLR: 3.12 (-2.94,2.94) [-3.00,1.00] Total: 53515 W: 11734 L: 11666 D: 30115 passed LTC: http://tests.stockfishchess.org/tests/view/5c1b272c0ebc5902ba12858d LLR: 2.95 (-2.94,2.94) [-3.00,1.00] Total: 140176 W: 23123 L: 23192 D: 93861 Bench: 3451321
Makes penalty logic more consistent between early TT cut-offs and normal search.
Failed STC:
http://tests.stockfishchess.org/tests/view/5c121e730ebc5902ba11aad8
LLR: -2.95 (-2.94,2.94) [0.00,5.00]
Total: 72193 W: 15848 L: 15625 D: 40720 Elo +1.07
Passed LTC:
http://tests.stockfishchess.org/tests/view/5c17b1b10ebc5902ba123c24
LLR: 2.95 (-2.94,2.94) [0.00,5.00]
Total: 35073 W: 5886 L: 5625 D: 23562 Elo +2.59
bench: 3393939