| Windows x64 for Haswell CPUs Windows x64 for modern computers Windows x64 Windows 32 Linux x64 for Haswell CPUs Linux x64 for modern computers Linux x64 | Author: Marco Costalba
Date: Sun Mar 31 11:47:36 2019 +0200 Timestamp: 1554025656 Assorted trivial cleanups 3/2019 (#2030) No functional change. see source |
| Windows x64 for Haswell CPUs Windows x64 for modern computers Windows x64 Windows 32 Linux x64 for Haswell CPUs Linux x64 for modern computers Linux x64 | Author: protonspring
Date: Sun Mar 31 11:28:48 2019 +0200 Timestamp: 1554024528 Use simple array for Pawns Connected bonus #2061 Simplification which removes the pawns connected array. Instead of storing the values in an array, the values are calculated real-time. This is about 1.6% faster on my machines. Performance: master ave nps: 159,248,672 patch ave nps: 161,905,592 STC LLR: 2.95 (-2.94,2.94) [-3.00,1.00] Total: 20363 W: 4579 L: 4455 D: 11329 Elo +2.12 http://tests.stockfishchess.org/tests/view/5c9925ba0ebc5925cfff79a6 Non functional change. see source |
| Windows x64 for Haswell CPUs Windows x64 for modern computers Windows x64 Windows 32 Linux x64 for Haswell CPUs Linux x64 for modern computers Linux x64 | Author: Moez Jellouli
Date: Sun Mar 31 10:51:08 2019 +0200 Timestamp: 1554022268 Shuffle detection #2064 Shuffle detection procedure : Shuffling positions are detected if the last 36 moves are reversible (rule50_count() > 36), the position have been already in the TT, there is a still a pawn on the board (to avoid special endings like KBN vs K). The position is then judged as a draw. An extension is realized if we already made 14 successive reversible moves in PV to accelerate the detection of the eventual draw. To go further : we can still improve the idea. The length of the tests need a lot of ressources. the limit of 36 is logic but must be checked again for special zugzwang positions, this limit can be decreased in special positions, the limit of 14 moves for extension has not been tuned. STC LLR: -2.94 (-2.94,2.94) [0.50,4.50] Total: 32595 W: 7273 L: 7275 D: 18047 Elo -0.02 http://tests.stockfishchess.org/tests/view/5c90aa330ebc5925cfff1768 LTC LLR: 2.95 (-2.94,2.94) [0.00,3.50] Total: 51249 W: 8807 L: 8486 D: 33956 Elo +2.18 http://tests.stockfishchess.org/tests/view/5c90b2450ebc5925cfff1800 VLTC LLR: 2.96 (-2.94,2.94) [0.00,3.50] Total: 137974 W: 20503 L: 19983 D: 97488 Elo +1.31 http://tests.stockfishchess.org/tests/view/5c9243a90ebc5925cfff2a93 Bench: 3548313 see source |
| Windows x64 for Haswell CPUs Windows x64 for modern computers Windows x64 Windows 32 Linux x64 for Haswell CPUs Linux x64 for modern computers Linux x64 | Author: protonspring
Date: Sun Mar 31 10:48:27 2019 +0200 Timestamp: 1554022107 Replace std::mins/max with clamp function (#2062) Adding a clamp function makes some of these range limitations a bit prettier and removes some #include's. STC LLR: 2.95 (-2.94,2.94) [-3.00,1.00] Total: 28117 W: 6300 L: 6191 D: 15626 Elo +1.35 http://tests.stockfishchess.org/tests/view/5c9aa1df0ebc5925cfff8fcc Non functional change. see source |
| Windows x64 for Haswell CPUs Windows x64 for modern computers Windows x64 Windows 32 Linux x64 for Haswell CPUs Linux x64 for modern computers Linux x64 | Author: Joost VandeVondele
Date: Sun Mar 31 10:44:55 2019 +0200 Timestamp: 1554021895 Remove duplication. (#2068) always use the implementation of gives_check in position, no need to hand-inline part of the implementation in search. LLR: 2.95 (-2.94,2.94) [-3.00,1.00] Total: 57895 W: 12632 L: 12582 D: 32681 Elo +0.30 http://tests.stockfishchess.org/tests/view/5c9eaa4b0ebc5925cfffc9e3 No functional change. see source |
| Windows x64 for Haswell CPUs Windows x64 for modern computers Windows x64 Windows 32 Linux x64 for Haswell CPUs Linux x64 for modern computers Linux x64 | Author: protonspring
Date: Sun Mar 31 10:43:20 2019 +0200 Timestamp: 1554021800 Accessor for SquareBB #2067 This is a non-functional code style change. If we add an accessor function for SquareBB we can consolidate all of the asserts. This is also a bit cleaner because all SquareBB accesses go through this method making future changes easier to manage. STC LLR: 2.96 (-2.94,2.94) [-3.00,1.00] Total: 63406 W: 14084 L: 14045 D: 35277 Elo +0.21 http://tests.stockfishchess.org/tests/view/5c9ea6100ebc5925cfffc9af No functional change. see source |
| Windows x64 for Haswell CPUs Windows x64 for modern computers Windows x64 Windows 32 Linux x64 for Haswell CPUs Linux x64 for modern computers Linux x64 | Author: protonspring
Date: Sun Mar 24 17:41:25 2019 +0100 Timestamp: 1553445685 Simplify pawn asymmetry (remove use of semiopen files). (#2054) This is a functional simplification. To me, the exclusive OR of semiopenFiles here is quite convoluted. Looks like it can be removed. STC LLR: 2.96 (-2.94,2.94) [-3.00,1.00] Total: 43885 W: 9731 L: 9653 D: 24501 Elo +0.62 http://tests.stockfishchess.org/tests/view/5c9041680ebc5925cfff10ea LTC LLR: 2.96 (-2.94,2.94) [-3.00,1.00] Total: 68437 W: 11577 L: 11533 D: 45327 Elo +0.22 http://tests.stockfishchess.org/tests/view/5c9101740ebc5925cfff1cbf bench 3575627 see source |
| Windows x64 for Haswell CPUs Windows x64 for modern computers Windows x64 Windows 32 Linux x64 for Haswell CPUs Linux x64 for modern computers Linux x64 | Author: Joost VandeVondele
Date: Sun Mar 24 17:40:29 2019 +0100 Timestamp: 1553445629 Remove unneeded condition. (#2057) This is covered by the line just before. If we would like to protect against the piece value of e.g. a N == B, this could be done by an assert, no need to do this at runtime. No functional change. see source |
| Windows x64 for Haswell CPUs Windows x64 for modern computers Windows x64 Windows 32 Linux x64 for Haswell CPUs Linux x64 for modern computers Linux x64 | Author: protonspring
Date: Sun Mar 24 17:37:38 2019 +0100 Timestamp: 1553445458 Simplify Passed Pawns (#2058) This is a non-functional simplification/speedup. The truth-table for popcount(support) >= popcount(lever) - 1 is: ------------------lever ------------------0-------1---------2 support--0------X-------X---------0 -----------1------X-------X---------X -----------2------X-------X---------X Thus, it is functionally equivalent to just do: support || !more_than_one(lever) which removes the expensive popcounts and the -1. Result of 20 runs: base (...h_master.exe) = 1451680 +/- 8202 test (./stockfish ) = 1454781 +/- 8604 diff = +3101 +/- 931 STC LLR: 2.94 (-2.94,2.94) [-3.00,1.00] Total: 35424 W: 7768 L: 7674 D: 19982 Elo +0.92 Http://tests.stockfishchess.org/tests/view/5c970f170ebc5925cfff5e28 No functional change. see source |
| Windows x64 for Haswell CPUs Windows x64 for modern computers Windows x64 Windows 32 Linux x64 for Haswell CPUs Linux x64 for modern computers Linux x64 | Author: xoto10
Date: Wed Mar 20 14:57:34 2019 +0100 Timestamp: 1553090254 Remove !extension check #2045 While looking at pruning using see_ge() (which is very valuable) it became apparent that the !extension test is not adding any value - simplify it away. STC: LLR: 2.96 (-2.94,2.94) [-3.00,1.00] Total: 56843 W: 12621 L: 12569 D: 31653 Elo +0.32 http://tests.stockfishchess.org/tests/view/5c8588cb0ebc5925cffe77f4 LTC: LLR: 2.96 (-2.94,2.94) [-3.00,1.00] Total: 78622 W: 13223 L: 13195 D: 52204 Elo +0.12 http://tests.stockfishchess.org/tests/view/5c8611cc0ebc5925cffe7f86 Further work could be to optimize the remaining see_ge() test. The idea of less pruning at higher depths is valuable, but perhaps the test (-PawnValueEg * depth) can be improved. Bench: 3188688 see source |
| Windows x64 for Haswell CPUs Windows x64 for modern computers Windows x64 Windows 32 Linux x64 for Haswell CPUs Linux x64 for modern computers Linux x64 | Author: CoffeeOne
Date: Wed Mar 20 14:50:41 2019 +0100 Timestamp: 1553089841 Skip skipping thread scheme (#1972) Several simplification tests (all with the bounds [-3,1]) were run: 5+0.05 8 threads, failed very quickly: http://tests.stockfishchess.org/tests/view/5c439a020ebc5902bb5d3970 20+0.2 8 threads, also failed, but needed a lot more games: http://tests.stockfishchess.org/tests/view/5c44b1b70ebc5902bb5d4e34 60+0.6 8 threads passed: http://tests.stockfishchess.org/tests/view/5c48bfe40ebc5902bca15325 60+0.6 4 threads passed: http://tests.stockfishchess.org/tests/view/5c4b71a00ebc593af5d49904 No functional change. see source |
| Windows x64 for Haswell CPUs Windows x64 for modern computers Windows x64 Windows 32 Linux x64 for Haswell CPUs Linux x64 for modern computers Linux x64 | Author: Marco Costalba
Date: Tue Mar 12 08:35:10 2019 +0100 Timestamp: 1552376110 Increase thread stack for OS X (#2035) On OS X threads other than the main thread are created with a reduced stack size of 512KB by default, this is dangerously low for deep searches, so adjust it to TH_STACK_SIZE. The implementation calls pthread_create() with proper stack size parameter. Verified for no regression at STC enabling the patch on all platforms where pthread is supported. LLR: 2.95 (-2.94,2.94) [-3.00,1.00] Total: 50873 W: 9768 L: 9700 D: 31405 Elo +0.46 No functional change. see source |
| Windows x64 for Haswell CPUs Windows x64 for modern computers Windows x64 Windows 32 Linux x64 for Haswell CPUs Linux x64 for modern computers Linux x64 | Author: protonspring
Date: Sun Mar 10 10:53:39 2019 +0100 Timestamp: 1552211619 Remove popcount16() (#2038) This is a non-functional simplification / code-style change. This popcount16 method does nothing but initialize the PopCnt16 arrays. This can be done in a single bitset line, which is less lines and more clear. Performance for this code is moot. No functional change. see source |
| Windows x64 for Haswell CPUs Windows x64 for modern computers Windows x64 Windows 32 Linux x64 for Haswell CPUs Linux x64 for modern computers Linux x64 | Author: xoto10
Date: Sun Mar 10 10:47:42 2019 +0100 Timestamp: 1552211262 Simplify failedLow away #1986 FailedLow doesn't seem to add any value so remove it. STC: LLR: 2.96 (-2.94,2.94) [-3.00,1.00] Total: 43915 W: 9682 L: 9604 D: 24629 Elo +0.62 http://tests.stockfishchess.org/tests/view/5c5339770ebc592fc7baef74 LTC: LLR: 2.96 (-2.94,2.94) [-3.00,1.00] Total: 58515 W: 9670 L: 9609 D: 39236 Elo +0.36 http://tests.stockfishchess.org/tests/view/5c53cc840ebc592fc7baf6c1 Ideas for further work: Tune the values in the revised fallingEval calculation Consider adding a term using delta, e.g. c * (delta - 20) as an indicator of eval instability Bench: 3318033 see source |
| Windows x64 for Haswell CPUs Windows x64 for modern computers Windows x64 Windows 32 Linux x64 for Haswell CPUs Linux x64 for modern computers Linux x64 | Author: Marco Costalba
Date: Sat Mar 9 13:28:11 2019 +0100 Timestamp: 1552134491 Revert "Allowing singular extension in mate positions" It was causing an assert: value > -VALUE_INFINITE under some conditions. See https://github.com/official-stockfish/Stockfish/issues/2036 Bench: 3318033 see source |
| Windows x64 for Haswell CPUs Windows x64 for modern computers Windows x64 Windows 32 Linux x64 for Haswell CPUs Linux x64 for modern computers Linux x64 | Author: protonspring
Date: Tue Mar 5 20:48:29 2019 +0100 Timestamp: 1551815309 Remove FutilityMoveCounts array. (#2024) This is a functional simplification that removes the FutilityMoveCounts array with a simple equation using only ints. LLR: 2.96 (-2.94,2.94) [-3.00,1.00] Total: 14175 W: 3123 L: 2987 D: 8065 Elo +3.33 LLR: 2.95 (-2.94,2.94) [-3.00,1.00] Total: 9900 W: 1735 L: 1597 D: 6568 Elo +4.84 Bench: 3380343 see source |
| Windows x64 for Haswell CPUs Windows x64 for modern computers Windows x64 Windows 32 Linux x64 for Haswell CPUs Linux x64 for modern computers Linux x64 | Author: protonspring
Date: Tue Mar 5 19:02:04 2019 +0100 Timestamp: 1551808924 Shrink Reductions[] array to one dimension This is a non-functional patch which shrinks the reductions array. This saves about 8Kb of memory. The only slow part of master's reductions array is the calculation of the log values, so using a separate array for those values and calculating the rest real-time appears to be just as fast as master. STC LLR: 2.96 (-2.94,2.94) [-3.00,1.00] Total: 63245 W: 13906 L: 13866 D: 35473 Elo +0.22 http://tests.stockfishchess.org/tests/view/5c7b571f0ebc5925cffdc104 No funcional change. see source |
| Windows x64 for Haswell CPUs Windows x64 for modern computers Windows x64 Windows 32 Linux x64 for Haswell CPUs Linux x64 for modern computers Linux x64 | Author: SFisGOD
Date: Tue Mar 5 14:54:25 2019 +0100 Timestamp: 1551794065 Pawn value tweak STC: LLR: 2.96 (-2.94,2.94) [0.00,4.00] Total: 47166 W: 10664 L: 10311 D: 26191 Elo +2.60 http://tests.stockfishchess.org/tests/view/5c7dfc370ebc5925cffdf830 LTC: LLR: 2.95 (-2.94,2.94) [0.00,4.00] Total: 35439 W: 6034 L: 5767 D: 23638 Elo +2.62 http://tests.stockfishchess.org/tests/view/5c7e41020ebc5925cffdfe9b Bench: 3470519 see source |
| Windows x64 for Haswell CPUs Windows x64 for modern computers Windows x64 Windows 32 Linux x64 for Haswell CPUs Linux x64 for modern computers Linux x64 | Author: Marco Costalba
Date: Tue Mar 5 11:13:02 2019 +0100 Timestamp: 1551780782 Assorted trivial cleanups 2/2019 No functional change. see source |
| Windows x64 for Haswell CPUs Windows x64 for modern computers Windows x64 Windows 32 Linux x64 for Haswell CPUs Linux x64 for modern computers Linux x64 | Author: Vizvezdenec
Date: Tue Mar 5 11:10:10 2019 +0100 Timestamp: 1551780610 Add continuation history 5 Original patch passed STC: http://tests.stockfishchess.org/tests/view/5c7439ff0ebc5925cffd3e64 LLR: 2.95 (-2.94,2.94) [0.50,4.50] Total: 26348 W: 5926 L: 5632 D: 14790 Elo +3.88 and LTC: http://tests.stockfishchess.org/tests/view/5c745a8b0ebc5925cffd41a8 LLR: 2.95 (-2.94,2.94) [0.00,3.50] Total: 198411 W: 33238 L: 32510 D: 132663 Elo +1.27 But had undefined behavior. After fixing (thx to @vondele ) passed LTC: http://tests.stockfishchess.org/tests/view/5c763c7c0ebc5925cffd5de2 LLR: 2.95 (-2.94,2.94) [0.00,3.50] Total: 112253 W: 18711 L: 18225 D: 75317 Elo +1.50 bench 3049229 see source |
| Windows x64 for Haswell CPUs Windows x64 for modern computers Windows x64 Windows 32 Linux x64 for Haswell CPUs Linux x64 for modern computers Linux x64 | Author: Joost VandeVondele
Date: Wed Feb 27 13:36:48 2019 +0100 Timestamp: 1551271008 Remove skipQuiets with mate fix. (#2021) This removes the skipQuiets variable, as was done in an earlier round by @protonspring, but fixes an oversight which led to wrong mate announcements. Quiets can only be pruned when there is no mate score, so set moveCountPruning at the right spot. tested as a fix at STC: LLR: 2.95 (-2.94,2.94) [-3.00,1.00] Total: 66321 W: 14690 L: 14657 D: 36974 Elo +0.17 http://tests.stockfishchess.org/tests/view/5c74f3170ebc5925cffd4b3c and as the full patch at LTC: LLR: 2.96 (-2.94,2.94) [-3.00,1.00] Total: 25903 W: 4341 L: 4228 D: 17334 Elo +1.52 http://tests.stockfishchess.org/tests/view/5c7540030ebc5925cffd506f Bench: 3292342 see source |
| Windows x64 for Haswell CPUs Windows x64 for modern computers Windows x64 Windows 32 Linux x64 for Haswell CPUs Linux x64 for modern computers Linux x64 | Author: Marco Costalba
Date: Tue Feb 26 13:23:09 2019 +0100 Timestamp: 1551183789 Revert "Remove skipQuiets variable in search()" This reverts commit 76d2f5b94a0df20d84ccf922bd1c0fcf1c779090. Due to a bug, see https://github.com/official-stockfish/Stockfish/issues/2019 Bench: 3516616 see source |
| Windows x64 for Haswell CPUs Windows x64 for modern computers Windows x64 Windows 32 Linux x64 for Haswell CPUs Linux x64 for modern computers Linux x64 | Author: Kurtbusch
Date: Thu Feb 21 19:53:03 2019 +0100 Timestamp: 1550775183 Add KNNvKP Endgame Heuristic This is a somewhat different patch. It fixes blindspots for two knights vs pawn endgame. With local testing starting from random KNNvKP positions where the pawn has not advanced beyond the 4th rank (thanks @protonspring !) at 15+0.15 (4 cores), this went +105=868-27 against master. All except two losses were won in reverse. The heuristic is simple but effective - the strategy in these endgames is to push the opposing king to the corner, then move the knight that's blocking the pawn in for the checkmate while the pawn is free to move and prevents stalemate. This patch gives SF the little boost it needs to search the relevant king-cornering mating lines. See the discussion in pull request 1939 for some more good results for this test in independant tests: https://github.com/official-stockfish/Stockfish/pull/1939 Bench: 3310239 see source |
| Windows x64 for Haswell CPUs Windows x64 for modern computers Windows x64 Windows 32 Linux x64 for Haswell CPUs Linux x64 for modern computers Linux x64 | Author: MJZ1977
Date: Thu Feb 21 19:36:48 2019 +0100 Timestamp: 1550774208 ProbCutCount limit dependancy to cutNode Use the ProbCutCount limit `2 + 2 * cutNode` instead of constant 3. STC LLR: -2.95 (-2.94,2.94) [0.50,4.50] Total: 61812 W: 13599 L: 13459 D: 34754 Elo +0.79 http://tests.stockfishchess.org/tests/view/5c6d19240ebc5925cffca07a LTC LLR: 2.96 (-2.94,2.94) [0.00,3.50] Total: 27549 W: 4614 L: 4363 D: 18572 Elo +3.17 http://tests.stockfishchess.org/tests/view/5c6d45c10ebc5925cffca7a6 Closes https://github.com/official-stockfish/Stockfish/pull/2015 Bench: 3368889 see source |
| Windows x64 for Haswell CPUs Windows x64 for modern computers Windows x64 Windows 32 Linux x64 for Haswell CPUs Linux x64 for modern computers Linux x64 | Author: protonspring
Date: Thu Feb 21 19:24:02 2019 +0100 Timestamp: 1550773442 Remove PvNode dimension from Reductions array This is a functional simplification: if we simply subtract one to Reductions[] when PvNode is set, we can remove this dimension of the multidimensional array. I think this saves about 8K of memory. STC LLR: 2.95 (-2.94,2.94) [-3.00,1.00] Total: 10118 W: 2282 L: 2138 D: 5698 Elo +4.95 http://tests.stockfishchess.org/tests/view/5c6332b60ebc5925cffbdfed LTC LLR: 2.96 (-2.94,2.94) [-3.00,1.00] Total: 70765 W: 11617 L: 11575 D: 47573 Elo +0.21 http://tests.stockfishchess.org/tests/view/5c63379e0ebc5925cffbe0de Closes https://github.com/official-stockfish/Stockfish/pull/2010 Bench 3261078 see source |