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 |
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:18:02 2019 +0100 Timestamp: 1550773082 Remove skipQuiets variable in search() This is a functional simplification. The moveCountPruning variable and the skipQuiets variable are similar enough in function that they can be combined. This removes the skipQuiets variable in search. STC LLR: 2.96 (-2.94,2.94) [-3.00,1.00] Total: 23278 W: 5210 L: 5091 D: 12977 Elo +1.78 http://tests.stockfishchess.org/tests/view/5c65dc490ebc5925cffc12e9 LTC LLR: 2.95 (-2.94,2.94) [-3.00,1.00] Total: 77107 W: 12792 L: 12761 D: 51554 Elo +0.14 http://tests.stockfishchess.org/tests/view/5c65e4360ebc5925cffc1490 Closes https://github.com/official-stockfish/Stockfish/pull/2011 bench 3640330 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: Fri Feb 8 10:31:28 2019 +0100 Timestamp: 1549618288 Change outposts to single value #1946 This is a functional simplification of the Outposts array moving it to a single value. This is a duplicate PR because I couldn't figure out how to fix the original one. The idea is from @31m059 with formatting recommendations by @snicolet. See #1940 for additional information. STC LLR: 2.95 (-2.94,2.94) [-3.00,1.00] Total: 23933 W: 5279 L: 5162 D: 13492 Elo +1.70 http://tests.stockfishchess.org/tests/view/5c3575800ebc596a450c5ecb LTC LLR: 2.96 (-2.94,2.94) [-3.00,1.00] Total: 41718 W: 6919 L: 6831 D: 27968 Elo +0.73 http://tests.stockfishchess.org/tests/view/5c358c440ebc596a450c6117 bench 3783543 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: Fri Feb 8 10:20:43 2019 +0100 Timestamp: 1549617643 Assorted trivial cleanups 1/2019 To address #1862 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: Fri Feb 8 10:19:00 2019 +0100 Timestamp: 1549617540 Log message of: Less king danger... The commit: Less king danger if we have a knight near by to defend it went in withouth proper commit message, here below we add it: STC: LLR: 2.95 (-2.94,2.94) [0.50,4.50] Total: 113106 W: 25087 L: 24367 D: 63652 Elo +2.21 http://tests.stockfishchess.org/tests/view/5c5517540ebc592fc7bb0eb4 LTC: LLR: 2.95 (-2.94,2.94) [0.00,3.50] Total: 96669 W: 16318 L: 15872 D: 64479 Elo +1.60 http://tests.stockfishchess.org/tests/view/5c55352b0ebc592fc7bb11c8 bench: 3653942 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: Fri Feb 8 09:54:38 2019 +0100 Timestamp: 1549616078 Remove Some Bitboard Arrays (#1963) This is non-functional. These 5 arrays are simple enough to calculate real-time and maintaining an array for them does not help. Decreases the memory footprint. This seems a tiny bit slower on my machine, but passed STC well enough. Could someone verify speed? STC LLR: 2.95 (-2.94,2.94) [-3.00,1.00] Total: 44745 W: 9780 L: 9704 D: 25261 Elo +0.59 http://tests.stockfishchess.org/tests/view/5c47aa2d0ebc5902bca13fc4 The slowdown is minimal even in 32 bit case (thanks to @mstembera for testing): Compiled using make build ARCH=x86-32 CXX=i686-w64-mingw32-c++ and benched This patch only: ``` Results for 40 tests for each version: Base Test Diff Mean 1455204 1450033 5171 StDev 49452 34533 59621 p-value: 0.465 speedup: -0.004 ``` 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: mstembera
Date: Sun Feb 3 14:16:34 2019 +0100 Timestamp: 1549199794 Less king danger if we have a knight near by to defend it. (#1987) bench: 3653942 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: Miguel Lahoz
Date: Fri Feb 1 16:27:21 2019 +0100 Timestamp: 1549034841 Extend discovered checks regardless of SEE A simple idea, but it makes sense: in current master the search is extended for checks that are considered somewhat safe, and for for this we use the static exchange evaluation which only considers the `to_sq` of a move. This is not reliable for discovered checks, where another piece is giving the check and is arguably a more dangerous type of check. Thus, if the check is a discovered check, the result of SEE is not relevant and can be ignored. STC: LLR: 2.96 (-2.94,2.94) [0.50,4.50] Total: 29370 W: 6583 L: 6274 D: 16513 Elo +3.66 http://tests.stockfishchess.org/tests/view/5c5062950ebc593af5d4d9b5 LTC: LLR: 2.95 (-2.94,2.94) [0.00,3.50] Total: 227341 W: 37972 L: 37165 D: 152204 Elo +1.23 http://tests.stockfishchess.org/tests/view/5c5094fb0ebc593af5d4dc2c Bench: 3611854 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: Stéphane Nicolet
Date: Fri Feb 1 15:34:46 2019 +0100 Timestamp: 1549031686 Tweak tropism weight in king danger There was a simplification attempt last week for the tropism term in king danger, which passed STC but failed LTC. This was an indirect sign that maybe the tropism factor was sightly untuned in current master, so we tried to change it from 1/4 to 5/16. STC: LLR: 2.95 (-2.94,2.94) [0.00,4.00] Total: 28098 W: 6264 L: 5990 D: 15844 Elo +3.39 http://tests.stockfishchess.org/tests/view/5c518db60ebc593af5d4e306 LTC: LLR: 2.95 (-2.94,2.94) [0.00,3.50] Total: 103709 W: 17387 L: 16923 D: 69399 Elo +1.55 http://tests.stockfishchess.org/tests/view/5c52a5510ebc592fc7baea8b Bench: 4016000 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: Fri Feb 1 12:43:33 2019 +0100 Timestamp: 1549021413 More precise checks evaluation in king danger Remove overlapping safe checks from kingdanger: - rook and queen checks from the same square: rook check is preferred - bishop and queen checks form the same square: queen check is preferred Increase bishop and rook check values as a compensation. STC LLR: 2.95 (-2.94,2.94) [0.50,4.50] Total: 27480 W: 6111 L: 5813 D: 15556 Elo +3.77 http://tests.stockfishchess.org/tests/view/5c521d050ebc593af5d4e66a LTC LLR: 2.95 (-2.94,2.94) [0.00,3.50] Total: 78500 W: 13145 L: 12752 D: 52603 Elo +1.74 http://tests.stockfishchess.org/tests/view/5c52b9460ebc592fc7baecc5 Closes https://github.com/official-stockfish/Stockfish/pull/1983 ------------------------------------------ I have quite a few ideas of how to improve this patch. - actually rethinking it now it will maybe be useful to discount queen/bishop checks if there is only one square that they can give check from and it's "occupied" by more valuable check. Right now count of this squares does not really matter. - maybe some small extra bonus can be given for overlapping checks. - some ideas about using popcount() on safechecks can be retried. - tune this safecheck values since they were more or less randomly handcrafted in this patch. Bench: 3216489 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 Jan 31 15:21:24 2019 +0100 Timestamp: 1548944484 Simplify Stat Score bonus This is a functional simplification of this statScore bonus. There seems to be little risk of regression with this one. STC LLR: 2.95 (-2.94,2.94) [-3.00,1.00] Total: 26829 W: 5892 L: 5781 D: 15156 Elo +1.44 http://tests.stockfishchess.org/tests/view/5c5086bb0ebc593af5d4db75 LTC LLR: 2.96 (-2.94,2.94) [-3.00,1.00] Total: 28232 W: 4684 L: 4575 D: 18973 Elo +1.34 http://tests.stockfishchess.org/tests/view/5c50d7690ebc593af5d4dec9 Closes https://github.com/official-stockfish/Stockfish/pull/1979 Bench: 4001014 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: DU-jdto
Date: Tue Jan 29 17:40:00 2019 +0100 Timestamp: 1548780000 Don't update pvHit after IID This patch removes line 875 of search.cpp, which was updating pvHit after IID. Bench testing at depth 22 shows that line 875 of search.cpp never changes the value of pvHit at NonPV nodes, while at PV nodes it often changes the value from true to false (and never the reverse). This is because the definition of pvHit at line 642 is : ``` pvHit = (ttHit && tte->pv_hit()) || (PvNode && depth > 4 * ONE_PLY); ``` while the assignment after IID omits the ` (PvNode && depth > 4 * ONE_PLY) ` condition. As such, unlike the other two post-IID tte reads, this line of code does not make SF's state more consistent, but rather introduces an inconsistency in the definition of pvHit. Indeed, changing line 875 read ``` pvHit = (ttHit && tte->pv_hit()) || (PvNode && depth > 4 * ONE_PLY); ``` to match line 642 is functionally equivalent to removing the line entirely, as this patch does. STC LLR: 2.96 (-2.94,2.94) [-3.00,1.00] Total: 62756 W: 13787 L: 13746 D: 35223 Elo +0.23 http://tests.stockfishchess.org/tests/view/5c446c850ebc5902bb5d4b75 LTC LLR: 3.19 (-2.94,2.94) [-3.00,1.00] Total: 61900 W: 10179 L: 10111 D: 41610 Elo +0.38 http://tests.stockfishchess.org/tests/view/5c45bf610ebc5902bb5d5d62 Bench: 3796134 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: Miguel Lahoz
Date: Tue Jan 29 17:32:41 2019 +0100 Timestamp: 1548779561 Change pinning logic in Static Exchange Evaluation (SEE) This changes 2 parts with regards to static exchange evaluation. Currently, we do not allow pinned pieces to recapture if *all* opponent pinners are still in their starting squares. This changes that to having a less strict requirement, checking if *any* pinners are still in their starting square. This makes our SEE give more respect to the pinning side with regards to exchanges, which makes sense because it helps our search explore more tactical options. Furthermore, we change the logic for saving pinners into our state variable when computing slider_blockers. We will include double pinners, where two sliders may be looking at the same blocker, a similar concept to our mobility calculation for sliders in our evaluation section. Interestingly, I think SEE is the only place where the pinners bitboard is actually used, so as far as I know there are no other side effects to this change. An example and some insights: White Bf2, Kg1 Black Qe3, Bc5 The move Qg3 will be given the correct value of 0. (Previously < 0) The move Qd4 will be incorrectly given a value of 0. (Previously < 0) It seems the tradeoff in search is worth it. Qd4 will likely be pruned soon by something like probcut anyway, while Qg3 could help us spot tactics at an earlier depth. STC: LLR: 2.96 (-2.94,2.94) [0.50,4.50] Total: 62162 W: 13879 L: 13408 D: 34875 Elo +2.63 http://tests.stockfishchess.org/tests/view/5c4ba1a70ebc593af5d49c55 LTC: (Thanks to @alayant) LLR: 3.40 (-2.94,2.94) [0.00,3.50] Total: 140285 W: 23416 L: 22825 D: 94044 Elo +1.46 http://tests.stockfishchess.org/tests/view/5c4bcfba0ebc593af5d49ea8 Bench: 3937213 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: Maciej Żenczykowski
Date: Tue Jan 29 17:26:24 2019 +0100 Timestamp: 1548779184 Use int8_t instead of int for SquareDistance[] This patch saves (4-1) * 64 * 64 = 12KiB of cache. STC LLR: 2.95 (-2.94,2.94) [0.00,4.00] Total: 176120 W: 38944 L: 38087 D: 99089 Elo +1.69 http://tests.stockfishchess.org/tests/view/5c4c9f840ebc593af5d4a7ce LTC As a pure speed up, I've been informed it should not require LTC. 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: Tue Jan 22 09:54:10 2019 +0100 Timestamp: 1548147250 Simplify TrappedRook Simplified TrappedRook to a single penalty removing the dependency on mobility. STC LLR: 2.95 (-2.94,2.94) [-3.00,1.00] Total: 106718 W: 23530 L: 23577 D: 59611 Elo -0.15 http://tests.stockfishchess.org/tests/view/5c43f6bd0ebc5902bb5d4131 LTC LLR: 2.95 (-2.94,2.94) [-3.00,1.00] Total: 54053 W: 8890 L: 8822 D: 36341 Elo +0.44 http://tests.stockfishchess.org/tests/view/5c44932a0ebc5902bb5d4d59 bench 3665090 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 Jan 20 19:14:24 2019 +0100 Timestamp: 1548008064 Simplify pondering time management (#1899) stopOnPonderhit is used to stop search quickly on a ponderhit. It is set by mainThread as part of its time management. However, master employs it as a signal between mainThread and the UCI thread. This is not necessary, it is sufficient for the UCI thread to signal that pondering finished, and mainThread should do its usual time-keeping job, and in this case stop immediately. This patch implements this, removing stopOnPonderHit as an atomic variable from the ThreadPool, and moving it as a normal variable to mainThread, reducing its scope. In MainThread::check_time() the search is stopped immediately if ponder switches to false, and the variable stopOnPonderHit is set. Furthermore, ponder has been moved to mainThread, as the variable is only used to exchange signals between the UCI thread and mainThread. The version has been tested locally (as fishtest doesn't support ponder): Score of ponderSimp vs master: 2616 - 2528 - 8630 [0.503] 13774 Elo difference: 2.22 +/- 3.54 which indicates no regression. 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: marotear
Date: Sun Jan 20 12:24:03 2019 +0100 Timestamp: 1547983443 Simplify pvHit (#1953) Removing unnecessary excludedMove condition (there is not excluded move for PvNodes) and re-ordering computation. 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: protonspring
Date: Sun Jan 20 12:21:16 2019 +0100 Timestamp: 1547983276 Clean-up some shifting in space calculation (#1955) 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: Jonathan D
Date: Sun Jan 20 12:20:21 2019 +0100 Timestamp: 1547983221 Tweak initiative and Pawn PSQT (#1957) Small changes in initiative(). For Pawn PSQT, endgame values for d6-e6 and d7-e7 are now symmetric. The MG value of d2 is now smaller than e2 (d2=13, e2=21 now compared to d2=19, e2=16 before). The MG values of h5-h6-h7 also increased so this might encourage stockfish for more h-pawn pushes. STC LLR: -2.96 (-2.94,2.94) [0.00,4.00] Total: 81141 W: 17933 L: 17777 D: 45431 Elo +0.67 http://tests.stockfishchess.org/tests/view/5c4017350ebc5902bb5cf237 LTC LLR: 2.96 (-2.94,2.94) [0.00,4.00] Total: 83078 W: 13883 L: 13466 D: 55729 Elo +1.74 http://tests.stockfishchess.org/tests/view/5c40763f0ebc5902bb5cff09 Bench: 3266398 see source |