Commit Graph
6397 Commits
Author SHA1 Message Date
Steinar H. Gunderson 1cffdc1ce4 Merge commit '7e72b37e4ce3351399bb0ac08686bd84cdc4fba9' into cluster 2025-12-25 16:03:31 +01:00
Steinar H. Gunderson 0c451731c6 Merge commit '98a7bb4436f04505a17f37befab0207252e97897' into cluster
This is the last commit before there are more conflicts.
2025-12-25 16:00:06 +01:00
Steinar H. Gunderson a20c6d296a Merge commit '362a77a3450335e1940020c080bf3b7b361c594a' into cluster 2025-12-25 15:53:03 +01:00
Steinar H. Gunderson d002e92294 Merge commit 'b209f14b1ee0cda8cbd7fa3a8349e65701d1869f' into cluster
This is the last commit before there are more conflicts.
2025-12-25 15:48:01 +01:00
Steinar H. Gunderson d83e63c163 Merge commit '5d3517c601c64d026824251784dd44f0cbf14873' into cluster 2025-12-25 15:30:32 +01:00
Steinar H. Gunderson d7cf6e22fd Merge commit '5752529cabb3270e055147709ff0847e4d59ec22' into cluster
This is the last commit before there are more conflicts.
2025-12-25 15:27:42 +01:00
Steinar H. Gunderson d1b19aad2f Merge commit '2cbc20e846e46da8bfc8e254a7703a0bfad3b850' into cluster 2025-12-25 15:26:23 +01:00
Steinar H. Gunderson 8f9e750782 Merge commit '3c379e55d9d92a5704632c6255e72892a4db9a2f' into cluster
This is the last commit before there are more conflicts.
2025-12-25 15:22:41 +01:00
Steinar H. Gunderson cefd309d92 Merge commit '25361e514bffb81284d4311601a9f7a4a7ced79b' into cluster 2025-12-25 15:22:02 +01:00
Steinar H. Gunderson 46264c6ed7 Merge commit '74a8fc060465a822f0c047f908d5fb07ebc6ad96' into cluster
This is the last commit before there are more conflicts.
2025-12-25 15:16:24 +01:00
Steinar H. Gunderson 5c9ed18b48 Merge commit 'b01fdb596a196f966549f7132c042ab67962fbbd' into cluster 2025-12-25 15:16:01 +01:00
Steinar H. Gunderson 7df644a00a Merge commit '44cddbd962c738678f407a7414efa5b93f0710d9' into cluster
This is the last commit before there are more conflicts.
2025-12-25 15:10:02 +01:00
Steinar H. Gunderson 876495975e Merge commit 'c8213ba0d047569141ed58f5eb86579d976b5614' into cluster
As part of this work, we needed to rename the namespace Stockfish::Cluster
to Stockfish::Distributed, as Cluster is now a type name.
2025-12-25 00:17:08 +01:00
Steinar H. Gunderson f358a30ea0 Merge commit '7e890fd048e22bfd213d46ec8eb88f7931f0315d' into cluster
This is the last commit before there are more conflicts.
2025-12-24 16:29:33 +01:00
Steinar H. Gunderson 5034cf6593 Merge commit '66ed4312f22a951aaa01bbb87b2d730656b8f2c1' into cluster 2025-12-24 16:28:21 +01:00
Steinar H. Gunderson 52d8388101 Merge commit 'e6c83beed12a6d3d17c69bea4bcf1a397bc60c86' into cluster
This is the last commit before there are more conflicts.
2025-12-24 16:27:16 +01:00
Steinar H. Gunderson 9770899bf7 Merge commit '5688b188cc8560e107815c83a7084220fddebdb9' into cluster 2025-12-24 16:26:53 +01:00
Steinar H. Gunderson 639294636e Merge commit '36eb9bc783d35842571d0d4313349b964892d9ca' into cluster
This is the last commit before there are more conflicts.
2025-12-24 16:26:07 +01:00
Steinar H. Gunderson 75138525c7 Merge commit '00a28ae325688346e63a452b2050bd1491085359' into cluster 2025-12-24 16:25:32 +01:00
Steinar H. Gunderson 784db2cbed Merge commit 'a2a7edf4c8fa145667135bf1bc7f4f67016f7608' into cluster
This is the last commit before there are more conflicts.
2025-12-24 16:19:29 +01:00
Steinar H. Gunderson bc81aa0911 Merge commit 'a169c78b6d3b082068deb49a39aaa1fd75464c7f' into cluster 2025-12-24 16:18:37 +01:00
Steinar H. Gunderson e56697e3f1 Merge commit 'b0287dcb1c436887075962b596cf2068d2ca9ba8' into cluster
This is the last commit before there are more conflicts.
2025-12-24 15:23:14 +01:00
Steinar H. Gunderson 125f4f3df0 Merge commit 'ed79745bb9e7207b604c62758ea45dd5c597ed8d' into cluster 2025-12-24 15:22:12 +01:00
Steinar H. Gunderson ea9a328340 Merge commit 'c14b69790a62aad89fcc471cde482923dfe57f1e' into cluster
This is the last commit before there are more conflicts.
2025-12-24 15:17:55 +01:00
Steinar H. Gunderson fb9a3d3323 Merge commit '2dbb44e28d2e5b3c72ddbbd6f436d41f75031a22' into cluster 2025-12-24 15:17:18 +01:00
Steinar H. Gunderson 649004ed47 Merge commit 'db147fe2586527a854516016699949af53dc5b17' into cluster
This is the last commit before there are more conflicts.
2025-12-24 15:14:23 +01:00
Steinar H. Gunderson b7045f1bf6 Merge commit 'bc45cbc820a53a9fc405c06ca67bd7be3970344e' into cluster 2025-12-24 15:13:28 +01:00
Steinar H. Gunderson 5f5f991780 Merge commit '3502c8ae426506453ca64e87e48d962b327c2356' into cluster 2025-12-24 15:12:37 +01:00
Steinar H. Gunderson ba47c8eeeb Merge commit 'ddd250b9d655117920dd65a973cea2f8b3c57fce' into cluster 2025-12-24 15:03:08 +01:00
Steinar H. Gunderson 6b6279098d Merge commit 'd47aa639bd614b37a59f87e6ab68496580f0cf3e' into cluster
This is the last commit before there are more conflicts.
2025-12-24 15:02:03 +01:00
Steinar H. Gunderson 2a1ed1267e Merge commit 'd3fc1d835e5144cc98d6a7658fb8cfd9370792f1' into cluster 2025-12-24 14:37:41 +01:00
Steinar H. Gunderson 8e509e240a Merge commit '432995ad82119070afa0bf720eb65d800bcbf817' into cluster
This is the last commit before there are more conflicts.
2025-12-24 13:57:03 +01:00
Steinar H. Gunderson 1b80a18fac Merge commit '4912f5b0b5f2656bc5fcdb0af480765ad5aa8932' into cluster 2025-12-24 13:55:47 +01:00
Steinar H. Gunderson ee41dc5c98 Merge commit '14f6eab07d1d1e1a59372974e5534128676e9440' into cluster
This is the last commit before there are more conflicts.
2025-12-24 13:51:24 +01:00
Steinar H. Gunderson f0793a2080 Merge commit '9032c6cbe74ccf7e8963755501e7e6cc473ae471' into cluster
This is a rather involved merge, since the cluster changes interact
fairly badly with the refactoring we're merging:

The new code wants the search to know nothing at all about the UCI protocol,
it just calls a callback with some worker information (including a Position),
which then transforms that information into a InfoFull which is then sent
through another callback, upon which UCIEngine converts it to UCI and writes
it to stdout.

On the other hand, the MPI information wants to exchange PVs between workers
at this point, and it wants to use the UCI string as the primary medium of
exchange. Position is a lot of work to serialize, so we choose a middle road;
we capture the InfoFull by switching out the callback, serializes it, does the
MPI exchange on that, unserializes it and then continues with the print callback
(if there is new information).
2025-12-24 13:50:14 +01:00
Steinar H. Gunderson a3cb287405 Merge commit '299707d2c2cbf1694bb21ed4a375b54ef35d719e' into cluster 2025-12-23 16:21:07 +01:00
Stéphane NicoletandJoost VandeVondele 7e72b37e4c Clean up comments in code
- Capitalize comments
- Reformat multi-lines comments to equalize the widths of the lines
- Try to keep the width of comments around 85 characters
- Remove periods at the end of single-line comments

closes https://github.com/official-stockfish/Stockfish/pull/5469

No functional change
2024-07-11 07:29:33 +02:00
DisservinandJoost VandeVondele 98a7bb4436 CI give correct permissions for the clang-format action
closes https://github.com/official-stockfish/Stockfish/pull/5470

No functional change
2024-07-11 07:21:04 +02:00
yl25946andJoost VandeVondele 362a77a345 Move Loop Consistency in Probcut
In probcut move loop, everything is enclosed within a large if statement. I've
changed it to guard clauses to stay consistent with other move loops.

closes https://github.com/official-stockfish/Stockfish/pull/5463

No functional change
2024-07-09 18:54:12 +02:00
Linmiao XuandJoost VandeVondele b209f14b1e Update default main net to nn-e8bac1c07a5a.nnue
Created by modifying L2 weights from the previous main net (nn-74f1d263ae9a.nnue)
with params found by spsa around 9k / 120k games at 120+1.2.

370 spsa params - L2 weights in nn-74f1d263ae9a.nnue where |val| >= 50
A: 6000, alpha: 0.602, gamma: 0.101
weights: [-127, 127], c_end = 6

To print the spsa params with nnue-pytorch:
```
import features
from serialize import NNUEReader

feature_set = features.get_feature_set_from_name("HalfKAv2_hm")
with open("nn-74f1d263ae9a.nnue", "rb") as f:
    model = NNUEReader(f, feature_set).model

c_end = 6
for i in range(8):
    for j in range(32):
        for k in range(30):
            value = int(model.layer_stacks.l2.weight[32 * i + j, k] * 64)
            if abs(value) >= 50:
                print(f"twoW[{i}][{j}][{k}],{value},-127,127,{c_end},0.0020")
```

Among the 370 params, 229 weights were changed.
  avg change: 0.0961 ± 1.67
  range: [-4, 3]

The number of weights changed, grouped by layer stack index,
shows more weights were modified in the lower piece count buckets:
[54, 52, 29, 23, 22, 18, 14, 17]

Found with the same method described in:
https://github.com/official-stockfish/Stockfish/pull/5459

Passed STC:
https://tests.stockfishchess.org/tests/view/668aec9a58083e5fd88239e7
LLR: 3.00 (-2.94,2.94) <0.00,2.00>
Total: 52384 W: 13569 L: 13226 D: 25589
Ptnml(0-2): 127, 6141, 13335, 6440, 149

Passed LTC:
https://tests.stockfishchess.org/tests/view/668af50658083e5fd8823a0b
LLR: 2.94 (-2.94,2.94) <0.50,2.50>
Total: 46974 W: 12006 L: 11668 D: 23300
Ptnml(0-2): 25, 4992, 13121, 5318, 31

closes https://github.com/official-stockfish/Stockfish/pull/5466

bench 1300471
2024-07-09 18:49:28 +02:00
Shawn XuandJoost VandeVondele 4880ed4ad1 Simplify Probcut Malus
Passed Non-regression STC:
LLR: 2.94 (-2.94,2.94) <-1.75,0.25>
Total: 74880 W: 19261 L: 19083 D: 36536
Ptnml(0-2): 202, 8861, 19120, 9071, 186
https://tests.stockfishchess.org/tests/view/668a0966eca84f4d25864cba

Passed Non-regression LTC:
LLR: 2.94 (-2.94,2.94) <-1.75,0.25>
Total: 263916 W: 66690 L: 66718 D: 130508
Ptnml(0-2): 125, 29348, 73040, 29320, 125
https://tests.stockfishchess.org/tests/view/668a17e3eca84f4d25864e91

closes https://github.com/official-stockfish/Stockfish/pull/5464

bench 1331408
2024-07-09 18:44:39 +02:00
Stéphane NicoletandJoost VandeVondele acd0a933ad Fix compilation on Apple
Always use the posix function posix_memalign() as aligned memory
allocator on Apple computers. This should allow to compile Stockfish
out of the box on all versions of Mac OS X.

Patch tested on the following systems (apart from the CI) :
  • Mac OS 10.9.6 (arch x86-64-sse41-popcnt) with gcc-10
  • Mac OS 10.13.6 (arch x86-64-bmi2) with gcc-10, gcc-14 and clang-11
  • Mac OS 14.1.1 (arch apple-silicon) with clang-15

closes https://github.com/official-stockfish/Stockfish/pull/5462

No functional change
2024-07-09 18:42:21 +02:00
Michael ChalyandJoost VandeVondele eac2d080a3 Further simplify stat bonuses
Based on recent simplification by linrock Since it completely removed any
special bonuses based on values difference and made it flat stat_bonus(depth +
1) I got an idea that we might as well remove all (depth + 1) bonuses and make
them usual depth bonuses.  Also removes weird negative bonus for depth 1 as a
side effect.

Passed STC:
https://tests.stockfishchess.org/tests/view/6689d817eca84f4d25863746
LLR: 2.94 (-2.94,2.94) <-1.75,0.25>
Total: 18080 W: 4789 L: 4552 D: 8739
Ptnml(0-2): 46, 1987, 4727, 2244, 36

Passed LTC:
https://tests.stockfishchess.org/tests/view/6689daa4eca84f4d258639d7
LLR: 2.95 (-2.94,2.94) <-1.75,0.25>
Total: 109062 W: 27548 L: 27417 D: 54097
Ptnml(0-2): 58, 11983, 30293, 12164, 33

Passed direct LTC vs linrock patch:
https://tests.stockfishchess.org/tests/view/668a46f8eca84f4d25866fe9
LLR: 2.95 (-2.94,2.94) <-1.75,0.25>
Total: 100002 W: 25351 L: 25209 D: 49442
Ptnml(0-2): 54, 11119, 27529, 11229, 70

closes https://github.com/official-stockfish/Stockfish/pull/5461

Bench 1175744
2024-07-09 18:41:36 +02:00
Joost VandeVondele 5d3517c601 Fix output for GUI
Fritz 19 can hang with the current way to provide output,
i.e. too much output in a short time for a mate / depth 245 found quickly.

fallout from 25361e514b

closes https://github.com/official-stockfish/Stockfish/pull/5460

No functional change
2024-07-09 18:36:46 +02:00
Linmiao XuandJoost VandeVondele 5752529cab Update default main net to nn-74f1d263ae9a.nnue
Created by setting output weights (256) and biases (8) of the previous main net
nn-ddcfb9224cdb.nnue to values found around 12k / 120k spsa games at 120+1.2

This used modified fishtest dev workers to construct .nnue files from
spsa params, then load them with EvalFile when running tests:
https://github.com/linrock/fishtest/tree/spsa-file-modified-nnue/worker

Inspired by researching loading spsa params from files:
https://github.com/official-stockfish/fishtest/pull/1926

Scripts for modifying nnue files and preparing params:
https://github.com/linrock/nnue-pytorch/tree/no-gpu-modify-nnue

spsa params:
  weights: [-127, 127], c_end = 6
  biases: [-8192, 8192], c_end = 64

Example of reading output weights and biases from the previous main net using
nnue-pytorch and printing spsa params in a format compatible with fishtest:

```
import features
from serialize import NNUEReader

feature_set = features.get_feature_set_from_name("HalfKAv2_hm")
with open("nn-ddcfb9224cdb.nnue", "rb") as f:
    model = NNUEReader(f, feature_set).model

c_end_weights = 6
c_end_biases = 64

for i in range(8):
    for j in range(32):
        value = round(int(model.layer_stacks.output.weight[i, j] * 600 * 16) / 127)
        print(f"oW[{i}][{j}],{value},-127,127,{c_end_weights},0.0020")

for i in range(8):
    value = int(model.layer_stacks.output.bias[i] * 600 * 16)
    print(f"oB[{i}],{value},-8192,8192,{c_end_biases},0.0020")
```

For more info on spsa tuning params in nets:
https://github.com/official-stockfish/Stockfish/pull/5149
https://github.com/official-stockfish/Stockfish/pull/5254

Passed STC:
https://tests.stockfishchess.org/tests/view/66894d64e59d990b103f8a37
LLR: 2.94 (-2.94,2.94) <0.00,2.00>
Total: 32000 W: 8443 L: 8137 D: 15420
Ptnml(0-2): 80, 3627, 8309, 3875, 109

Passed LTC:
https://tests.stockfishchess.org/tests/view/6689668ce59d990b103f8b8b
LLR: 2.94 (-2.94,2.94) <0.50,2.50>
Total: 172176 W: 43822 L: 43225 D: 85129
Ptnml(0-2): 97, 18821, 47633, 19462, 75

closes https://github.com/official-stockfish/Stockfish/pull/5459

bench 1120091
2024-07-09 18:35:23 +02:00
MinetaSandJoost VandeVondele cdb0b96e07 Clean up refutations array in MovePicker
This is a follow-up cleanup to a45c2bc34a.

closes https://github.com/official-stockfish/Stockfish/pull/5458

No functional change
2024-07-09 18:34:00 +02:00
Linmiao XuandJoost VandeVondele 4e9fded5a6 Larger bonus when updating quiet stats
Also removes unused arguments to update_all_stats to
fix compiler warnings about unused parameters.

Passed non-regression STC:
https://tests.stockfishchess.org/tests/view/6689a79a0fdd852d63cf52e9
LLR: 2.94 (-2.94,2.94) <-1.75,0.25>
Total: 26496 W: 6901 L: 6669 D: 12926
Ptnml(0-2): 62, 3094, 6715, 3304, 73

Passed non-regression LTC:
https://tests.stockfishchess.org/tests/view/6689a9960fdd852d63cf532d
LLR: 2.94 (-2.94,2.94) <-1.75,0.25>
Total: 41214 W: 10373 L: 10173 D: 20668
Ptnml(0-2): 11, 4491, 11412, 4673, 20

closes https://github.com/official-stockfish/Stockfish/pull/5456

bench 1169958
2024-07-09 18:31:02 +02:00
Michael ChalyandJoost VandeVondele 75c8cb2c2f Adjust usage of previous statscore in bonus assignments
This patch adjusts usage of previous statscore for bonus assginments - allowing
it for any statscores and clamping it to wider range.

Passed STC:
https://tests.stockfishchess.org/tests/view/66892e76e59d990b103f6a91
LLR: 2.94 (-2.94,2.94) <0.00,2.00>
Total: 431520 W: 111767 L: 110872 D: 208881
Ptnml(0-2): 1180, 51165, 110133, 52144, 1138

Passed LTC:
https://tests.stockfishchess.org/tests/view/66897176e59d990b103f9605
LLR: 2.94 (-2.94,2.94) <0.50,2.50>
Total: 143184 W: 36463 L: 35929 D: 70792
Ptnml(0-2): 55, 15540, 39863, 16084, 50

closes https://github.com/official-stockfish/Stockfish/pull/5455

bench 1330556
2024-07-09 18:29:09 +02:00
Linmiao XuandJoost VandeVondele bb9b65408f Simplify improving deduction in futility margin
Passed non-regression STC:
https://tests.stockfishchess.org/tests/view/668981d4df142e108ffc9bb4
LLR: 2.94 (-2.94,2.94) <-1.75,0.25>
Total: 312672 W: 80280 L: 80363 D: 152029
Ptnml(0-2): 729, 37198, 80529, 37187, 693

Passed non-regression LTC:
https://tests.stockfishchess.org/tests/view/668988c6df142e108ffca042
LLR: 2.95 (-2.94,2.94) <-1.75,0.25>
Total: 126042 W: 31971 L: 31857 D: 62214
Ptnml(0-2): 50, 13988, 34832, 14100, 51

closes https://github.com/official-stockfish/Stockfish/pull/5454

bench 1100483
2024-07-09 18:28:06 +02:00
Shawn XuandJoost VandeVondele 2d3ef434b4 Tweak LMR at Root
Passed STC:
LLR: 2.93 (-2.94,2.94) <0.00,2.00>
Total: 328192 W: 84751 L: 84014 D: 159427
Ptnml(0-2): 758, 38802, 84253, 39511, 772
https://tests.stockfishchess.org/tests/view/6689203959cb3228a4759a49

Passed LTC:
LLR: 2.95 (-2.94,2.94) <0.50,2.50>
Total: 56748 W: 14494 L: 14136 D: 28118
Ptnml(0-2): 19, 6089, 15803, 6441, 22
https://tests.stockfishchess.org/tests/view/66892d76e59d990b103f6626

closes https://github.com/official-stockfish/Stockfish/pull/5452

Bench 1253593
2024-07-09 18:26:35 +02:00