Skip to content
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

Introduce double extensions for PV nodes. #5093

Closed

Conversation

Vizvezdenec
Copy link
Contributor

Our double/triple extensions were allowed only for non-pv nodes.
This patch allows them to be done for PV nodes, with some stricter conditions.
Passed STC:
https://tests.stockfishchess.org/tests/view/65d657ec1d8e83c78bfddab8
LLR: 2.95 (-2.94,2.94) <0.00,2.00>
Total: 339424 W: 88097 L: 87318 D: 164009
Ptnml(0-2): 1573, 39935, 85729, 41090, 1385
Passed LTC:
https://tests.stockfishchess.org/tests/view/65dd63824b19edc854ebc433
LLR: 2.94 (-2.94,2.94) <0.50,2.50>
Total: 459564 W: 115812 L: 114614 D: 229138
Ptnml(0-2): 248, 51441, 125173, 52705, 215
bench 1942991

Copy link

github-actions bot commented Mar 7, 2024

clang-format 17 needs to be run on this PR.
If you do not have clang-format installed, the maintainer will run it when merging.
For the exact version please see https://packages.ubuntu.com/mantic/clang-format-17.

(execution 8185453392 / attempt 1)

@Disservin Disservin added to be merged Will be merged shortly 🚀 gainer Gains elo functional-change labels Mar 7, 2024
@Disservin Disservin closed this in 6136d09 Mar 7, 2024
bftjoe added a commit to bftjoe/Stockfish that referenced this pull request Mar 8, 2024
commit 632f1c21cd271e7c4c242fdafa328a55ec63b9cb
Author: Robert Nurnberg @ elitebook <[email protected]>
Date:   Thu Mar 7 22:01:40 2024 +0100

    Fix wrong constant usage in go mate

    Fixes an oversight in official-stockfish/Stockfish#5094

    In theory, master could stop search when run with `go mate 247` and return a TB loss (not a mate score). Also fixes the spelling of opponenWorsening.

    closes official-stockfish/Stockfish#5096

    No functional change

commit 0f01a516d2ddd475bbe3bccab176dbbccb879053
Author: Muzhen Gaming <[email protected]>
Date:   Mon Mar 4 18:48:02 2024 +0800

    VLTC time management tune

    Result of 35k games of SPSA tuning at 180+1.8. Tuning attempt can be
    found here:
    https://tests.stockfishchess.org/tests/view/65e40599f2ef6c733362b03b

    Passed VLTC 180+1.8:
    https://tests.stockfishchess.org/tests/view/65e5a6f5416ecd92c162b5d4
    LLR: 2.94 (-2.94,2.94) <0.00,2.00>
    Total: 31950 W: 8225 L: 7949 D: 15776
    Ptnml(0-2): 3, 3195, 9309, 3459, 9

    Passed VLTC 240+2.4:
    https://tests.stockfishchess.org/tests/view/65e714de0ec64f0526c3d1f1
    LLR: 2.94 (-2.94,2.94) <0.50,2.50>
    Total: 65108 W: 16558 L: 16202 D: 32348
    Ptnml(0-2): 7, 6366, 19449, 6728, 4

    closes official-stockfish/Stockfish#5095

    Bench: 1714391

commit 748791f80dbc29793e473e3e9eda83ffa0afcfaa
Author: Shahin M. Shahin <[email protected]>
Date:   Wed Mar 6 20:56:55 2024 +0300

    Fix `go mate x` in multithreading

    Fixes two issues with master for go mate x:

    - when running go mate x in losing positions, master always goes to the
      maximal depth, arguably against what the UCI protocol demands

    - when running go mate x in winning positions with multiple
      threads, master may return non-mate scores from the search (this issue
      is present in stockfish since at least sf16) The issues are fixed by
      (a) also checking if score is mate -x and by (b) only letting
      mainthread stop the search for go mate x commands, and by not looking
      for a best thread but using mainthread as per the default. Related:
        niklasf/python-chess#1070

    More diagnostics can be found here peregrineshahin#6 (comment)

    closes official-stockfish/Stockfish#5094

    No functional change

    Co-Authored-By: Robert Nürnberg <[email protected]>

commit 6136d094c5f46456964889754ae2d6098834b14f
Author: Michael Chaly <[email protected]>
Date:   Thu Mar 7 11:57:18 2024 +0300

    Introduce double extensions for PV nodes

    Our double/triple extensions were allowed only for non-pv nodes. This
    patch allows them to be done for PV nodes, with some stricter
    conditions.

    Passed STC:
    https://tests.stockfishchess.org/tests/view/65d657ec1d8e83c78bfddab8
    LLR: 2.95 (-2.94,2.94) <0.00,2.00>
    Total: 339424 W: 88097 L: 87318 D: 164009
    Ptnml(0-2): 1573, 39935, 85729, 41090, 1385

    Passed LTC:
    https://tests.stockfishchess.org/tests/view/65dd63824b19edc854ebc433
    LLR: 2.94 (-2.94,2.94) <0.50,2.50>
    Total: 459564 W: 115812 L: 114614 D: 229138
    Ptnml(0-2): 248, 51441, 125173, 52705, 215

    closes official-stockfish/Stockfish#5093

    Bench: 1714391

commit 1db969e6200afe4f023469a56aa5edf755d92bbb
Author: rn5f107s2 <[email protected]>
Date:   Thu Feb 15 23:01:02 2024 +0100

    Reduce futility_margin if opponents last move was bad

    This reduces the futiltiy_margin if our opponents last move was bad by
    around ~1/3 when not improving and ~1/2.7 when improving, the idea being
    to retroactively futility prune moves that were played, but turned out
    to be bad.  A bad move is being defined as their staticEval before their
    move being lower as our staticEval now is. If the depth is 2 and we are
    improving the opponent worsening flag is not set, in order to not risk
    having a too low futility_margin, due to the fact that when these
    conditions are met the futility_margin already drops quite low.

    Passed STC:
    https://tests.stockfishchess.org/tests/live_elo/65e3977bf2ef6c733362aae3
    LLR: 2.94 (-2.94,2.94) <0.00,2.00>
    Total: 122432 W: 31884 L: 31436 D: 59112
    Ptnml(0-2): 467, 14404, 31035, 14834, 476

    Passed LTC:
    https://tests.stockfishchess.org/tests/live_elo/65e47f40f2ef6c733362b6d2
    LLR: 2.94 (-2.94,2.94) <0.50,2.50>
    Total: 421692 W: 106572 L: 105452 D: 209668
    Ptnml(0-2): 216, 47217, 114865, 48327, 221

    closes official-stockfish/Stockfish#5092

    Bench: 1565939

commit bd579ab5d1a931a09a62f2ed33b5149ada7bc65f
Author: Linmiao Xu <[email protected]>
Date:   Fri Mar 1 10:34:03 2024 -0800

    Update default main net to nn-1ceb1ade0001.nnue

    Created by retraining the previous main net `nn-b1a57edbea57.nnue` with:
    - some of the same options as before:
      - ranger21, more WDL skipping, 15% more loss when Q is too high
    - removal of the huge 514G pre-interleaved binpack
    - removal of SF-generated dfrc data (dfrc99-16tb7p-filt-v2.min.binpack)
    - interleaving many binpacks at training time
    - training with some bestmove capture positions where SEE < 0
    - increased usage of torch.compile to speed up training by up to 40%

    ```yaml
    experiment-name: 2560--S10-dfrc0-to-dec2023-skip-more-wdl-15p-more-loss-high-q-see-ge0-sk28
    nnue-pytorch-branch: linrock/nnue-pytorch/r21-more-wdl-skip-15p-more-loss-high-q-skip-see-ge0-torch-compile-more
    start-from-engine-test-net: True

    early-fen-skipping: 28
    training-dataset:
      # similar, not the exact same as:
      # official-stockfish/Stockfish#4635
      - /data/S5-5af/leela96.v2.min.binpack
      - /data/S5-5af/test60-2021-11-12-novdec-12tb7p.v6-dd.min.binpack
      - /data/S5-5af/test77-2021-12-dec-16tb7p.v6-dd.min.binpack
      - /data/S5-5af/test78-2022-01-to-05-jantomay-16tb7p.v6-dd.min.binpack
      - /data/S5-5af/test78-2022-06-to-09-juntosep-16tb7p.v6-dd.min.binpack
      - /data/S5-5af/test79-2022-04-apr-16tb7p.v6-dd.min.binpack
      - /data/S5-5af/test79-2022-05-may-16tb7p.v6-dd.min.binpack

      - /data/S5-5af/test80-2022-06-jun-16tb7p.v6-dd.min.unmin.binpack
      - /data/S5-5af/test80-2022-07-jul-16tb7p.v6-dd.min.binpack
      - /data/S5-5af/test80-2022-08-aug-16tb7p.v6-dd.min.binpack
      - /data/S5-5af/test80-2022-09-sep-16tb7p.v6-dd.min.unmin.binpack
      - /data/S5-5af/test80-2022-10-oct-16tb7p.v6-dd.min.binpack
      - /data/S5-5af/test80-2022-11-nov-16tb7p.v6-dd.min.binpack

      - /data/S5-5af/test80-2023-01-jan-16tb7p.v6-sk20.min.binpack
      - /data/S5-5af/test80-2023-02-feb-16tb7p.v6-dd.min.binpack
      - /data/S5-5af/test80-2023-03-mar-2tb7p.min.unmin.binpack
      - /data/S5-5af/test80-2023-04-apr-2tb7p.binpack
      - /data/S5-5af/test80-2023-05-may-2tb7p.min.dd.binpack

      # official-stockfish/Stockfish#4782
      - /data/S6-1ee1aba5ed/test80-2023-06-jun-2tb7p.binpack
      - /data/S6-1ee1aba5ed/test80-2023-07-jul-2tb7p.min.binpack

      # official-stockfish/Stockfish#4972
      - /data/S8-baff1edbea57/test80-2023-08-aug-2tb7p.v6.min.binpack
      - /data/S8-baff1edbea57/test80-2023-09-sep-2tb7p.binpack
      - /data/S8-baff1edbea57/test80-2023-10-oct-2tb7p.binpack

      # official-stockfish/Stockfish#5056
      - /data/S9-b1a57edbea57/test80-2023-11-nov-2tb7p.binpack
      - /data/S9-b1a57edbea57/test80-2023-12-dec-2tb7p.binpack

    num-epochs: 800
    lr: 4.375e-4
    gamma: 0.995
    start-lambda: 1.0
    end-lambda: 0.7
    ```

    This particular net was reached at epoch 759. Use of more torch.compile decorators
    in nnue-pytorch model.py than in the previous main net training run sped up training
    by up to 40% on Tesla gpus when using recent pytorch compiled with cuda 12:
    https://github.com/linrock/nnue-tools/blob/7fb9831/Dockerfile

    Skipping positions with bestmove captures where static exchange evaluation is >= 0
    is based on the implementation from Sopel's NNUE training & experimentation log:
    https://docs.google.com/document/d/1gTlrr02qSNKiXNZ_SuO4-RjK4MXBiFlLE6jvNqqMkAY
    Experiment 293 - only skip captures with see>=0

    Positions with bestmove captures where score == 0 are always skipped for
    compatibility with minimized binpacks, since the original minimizer sets
    scores to 0 for slight improvements in compression.

    The trainer branch used was:
    https://github.com/linrock/nnue-pytorch/tree/r21-more-wdl-skip-15p-more-loss-high-q-skip-see-ge0-torch-compile-more

    Binpacks were renamed to be sorted chronologically by default when sorted by name.
    The binpack data are otherwise the same as binpacks with similar names in the prior
    naming convention.

    Training data can be found at:
    https://robotmoon.com/nnue-training-data/

    Passed STC:
    https://tests.stockfishchess.org/tests/view/65e3ddd1f2ef6c733362ae5c
    LLR: 2.92 (-2.94,2.94) <0.00,2.00>
    Total: 149792 W: 39153 L: 38661 D: 71978
    Ptnml(0-2): 675, 17586, 37905, 18032, 698

    Passed LTC:
    https://tests.stockfishchess.org/tests/view/65e4d91c416ecd92c162a69b
    LLR: 2.94 (-2.94,2.94) <0.50,2.50>
    Total: 64416 W: 16517 L: 16135 D: 31764
    Ptnml(0-2): 38, 7218, 17313, 7602, 37

    closes official-stockfish/Stockfish#5090

    Bench: 1373183

commit a96b0d46093c67707e4e75e7aa5aa057b7c131a2
Author: FauziAkram <[email protected]>
Date:   Mon Mar 4 16:13:36 2024 +0300

    Update elo estimates

    Tests used to change the elo worth of some functions:

    https://tests.stockfishchess.org/tests/view/65c3f69dc865510db0283eef
    https://tests.stockfishchess.org/tests/view/65c3f935c865510db0283f2a
    https://tests.stockfishchess.org/tests/view/65d1489f1d8e83c78bfd7dbf
    https://tests.stockfishchess.org/tests/view/65ce9d361d8e83c78bfd4951
    https://tests.stockfishchess.org/tests/view/65cfcd901d8e83c78bfd6184

    closes official-stockfish/Stockfish#5089

    No functional change

commit a615efb19f5dfb4b205ed3a9dd8525e54e8777cc
Author: FauziAkram <[email protected]>
Date:   Mon Feb 26 18:08:22 2024 +0300

    Simplify Time Management

    Instead of having a formula for using extra time with larger increments.
    Simply set it to 1 when the increment is lower than 0.5s and to 1.1 when
    the increment is higher.

    The values can later on be further improved.

    Passed STC:
    https://tests.stockfishchess.org/tests/view/65d25d3c1d8e83c78bfd9293
    LLR: 2.93 (-2.94,2.94) <-1.75,0.25>
    Total: 27488 W: 7077 L: 6848 D: 13563
    Ptnml(0-2): 96, 3041, 7267, 3218, 122

    Passed LTC:
    https://tests.stockfishchess.org/tests/view/65d2a72c1d8e83c78bfd97fa
    LLR: 2.94 (-2.94,2.94) <-1.75,0.25>
    Total: 137568 W: 34612 L: 34512 D: 68444
    Ptnml(0-2): 60, 14672, 39221, 14770, 61

    Passed VLTC:
    https://tests.stockfishchess.org/tests/view/65d7d7d39b2da0226a5a205b
    LLR: 2.94 (-2.94,2.94) <-1.75,0.25>
    Total: 139650 W: 35229 L: 35134 D: 69287
    Ptnml(0-2): 33, 14227, 41218, 14306, 41

    Passed also the TCEC TC style suggested by vondele:
    https://tests.stockfishchess.org/tests/view/65e4ca73416ecd92c162a57d
    LLR: 2.94 (-2.94,2.94) <-1.75,0.25>
    Total: 134150 W: 34278 L: 34163 D: 65709
    Ptnml(0-2): 561, 15727, 34444, 15722, 621

    closes official-stockfish/Stockfish#5076

    Bench: 1553115
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
functional-change 🚀 gainer Gains elo to be merged Will be merged shortly
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants