Dev Builds » 20251102-1504

Use this dev build

NCM plays each Stockfish dev build 20,000 times against Stockfish 15. This yields an approximate Elo difference and establishes confidence in the strength of the dev builds.

Summary

Host Duration Avg Base NPS Games WLD Standard Elo Ptnml(0-2) Gamepair Elo
ncm-dbt-01 06:44:42 580924 4002 1666 488 1848 +105.39 ± 4.77 1 64 710 1208 18 +230.27 ± 12.76
ncm-dbt-02 06:46:15 586209 4000 1644 462 1894 +105.82 ± 4.79 1 67 699 1215 18 +231.47 ± 12.87
ncm-dbt-03 06:45:58 584924 3998 1627 425 1946 +107.79 ± 4.65 0 49 719 1211 20 +236.14 ± 12.64
ncm-dbt-04 06:45:20 566507 4000 1694 466 1840 +110.22 ± 4.74 1 50 697 1224 28 +241.1 ± 12.86
ncm-dbt-05 06:46:17 580719 4000 1610 464 1926 +102.41 ± 4.71 1 65 731 1193 10 +224.2 ± 12.56
20000 8241 2305 9454 +106.32 ± 2.12 4 295 3556 6051 94 +232.58 ± 5.69

Test Detail

ID Host Base NPS Games WLD Standard Elo Ptnml(0-2) Gamepair Elo CLI PGN
439015 ncm-dbt-01 579578 2 1 0 1 +189.7 ± 55.98 0 0 0 1 0 +1129.65 ± 376.02
439014 ncm-dbt-03 583698 498 205 62 231 +102.65 ± 13.58 0 9 90 148 2 +223.06 ± 36.07
439013 ncm-dbt-05 582068 500 205 59 236 +104.49 ± 13.22 0 7 92 149 2 +228.08 ± 35.56
439012 ncm-dbt-04 568156 500 211 64 225 +105.25 ± 13.39 0 7 92 148 3 +228.08 ± 35.56
439011 ncm-dbt-02 587282 500 205 50 245 +111.37 ± 14.06 0 10 79 157 4 +243.0 ± 38.64
439010 ncm-dbt-01 581194 500 220 62 218 +113.68 ± 14.05 0 8 82 154 6 +245.2 ± 37.88
439009 ncm-dbt-05 579124 500 191 60 249 +93.2 ± 13.28 0 9 102 138 1 +200.24 ± 33.67
439008 ncm-dbt-03 585295 500 197 48 255 +106.77 ± 12.88 0 6 90 153 1 +236.51 ± 35.94
439007 ncm-dbt-04 566178 500 215 55 230 +115.22 ± 13.2 0 7 78 163 2 +258.75 ± 38.88
439006 ncm-dbt-02 584495 500 203 50 247 +109.83 ± 12.7 0 5 88 156 1 +245.2 ± 36.32
439005 ncm-dbt-01 581485 500 214 60 226 +110.6 ± 12.7 0 4 90 154 2 +245.2 ± 35.79
439004 ncm-dbt-04 567086 500 214 53 233 +116.0 ± 12.47 0 3 85 160 2 +261.07 ± 36.86
439003 ncm-dbt-05 579537 500 197 58 245 +99.2 ± 13.51 0 10 92 147 1 +215.85 ± 35.68
439002 ncm-dbt-03 585928 500 198 54 248 +102.97 ± 13.21 0 6 97 144 3 +221.9 ± 34.46
439001 ncm-dbt-02 585717 500 216 64 220 +109.07 ± 14.05 1 8 82 156 3 +240.82 ± 37.9
439000 ncm-dbt-01 581402 500 205 58 237 +105.25 ± 13.39 0 9 86 154 1 +232.26 ± 36.96
438999 ncm-dbt-04 562768 500 212 64 224 +106.01 ± 12.88 0 5 94 149 2 +232.26 ± 35.0
438998 ncm-dbt-05 581236 500 203 65 232 +98.44 ± 13.67 1 8 94 146 1 +215.85 ± 35.23
438997 ncm-dbt-03 582945 500 200 48 252 +109.07 ± 12.7 0 4 92 152 2 +240.82 ± 35.35
438996 ncm-dbt-02 586350 500 203 71 226 +93.95 ± 13.61 0 10 100 138 2 +200.24 ± 34.09
438995 ncm-dbt-01 580365 500 202 68 230 +95.44 ± 13.63 0 12 92 146 0 +207.95 ± 35.71
438994 ncm-dbt-03 584537 500 213 61 226 +109.07 ± 13.56 0 8 85 154 3 +238.66 ± 37.17
438993 ncm-dbt-04 566572 500 205 60 235 +103.73 ± 14.03 0 9 92 144 5 +219.87 ± 35.65
438992 ncm-dbt-05 582444 500 202 52 246 +107.54 ± 13.06 0 6 90 152 2 +236.51 ± 35.94
438991 ncm-dbt-01 578424 500 212 50 238 +116.77 ± 12.65 0 5 79 165 1 +265.78 ± 38.54
438990 ncm-dbt-02 587113 500 199 61 240 +98.44 ± 13.34 0 8 98 142 2 +211.87 ± 34.38
438989 ncm-dbt-03 586435 500 196 51 253 +103.73 ± 13.22 0 6 96 145 3 +223.94 ± 34.66
438988 ncm-dbt-04 566138 500 219 50 231 +122.24 ± 13.66 0 6 75 163 6 +270.57 ± 39.67
438987 ncm-dbt-05 580655 500 201 52 247 +106.77 ± 13.72 0 10 83 155 2 +234.38 ± 37.67
438986 ncm-dbt-01 582945 500 195 59 246 +96.94 ± 12.83 0 6 103 140 1 +209.91 ± 33.29
438985 ncm-dbt-02 586393 500 201 56 243 +103.73 ± 14.03 0 12 83 153 2 +226.0 ± 37.66
438984 ncm-dbt-01 581569 500 217 60 223 +112.91 ± 13.04 0 6 83 159 2 +251.89 ± 37.57
438983 ncm-dbt-04 568315 500 206 55 239 +108.3 ± 14.37 1 9 82 154 4 +236.51 ± 37.9
438982 ncm-dbt-05 580738 500 208 58 234 +107.54 ± 12.71 0 5 91 153 1 +238.66 ± 35.65
438981 ncm-dbt-03 583279 500 198 53 249 +103.73 ± 12.7 0 4 99 145 2 +226.0 ± 33.89
438980 ncm-dbt-02 587028 500 210 59 231 +108.3 ± 13.06 0 6 89 153 2 +238.66 ± 36.16
438979 ncm-dbt-01 581361 500 200 71 229 +91.71 ± 15.06 1 14 95 135 5 +190.85 ± 35.14
438978 ncm-dbt-03 587282 500 220 48 232 +124.6 ± 13.27 0 6 70 170 4 +282.94 ± 41.13
438977 ncm-dbt-04 566849 500 212 65 223 +105.25 ± 13.05 0 4 99 143 4 +226.0 ± 33.89
438976 ncm-dbt-05 579951 500 203 60 237 +102.22 ± 13.37 0 10 87 153 0 +226.0 ± 36.75
438975 ncm-dbt-02 585295 500 207 51 242 +112.14 ± 13.39 0 8 80 160 2 +249.64 ± 38.38

Commit

Commit ID 69a01b88f35db2a5003d42116f573207ca5c275b
Author Tomasz Sobczyk
Date 2025-11-02 15:04:09 UTC
Use shared memory for network weights This enables different Stockfish processes that use the same weights to use the same memory. The approach establishes equivalence by memory content, and is compatible with NUMA replication. The benefit of sharing is reduced memory usage and a speedup thanks to improved (inter-process) caching of the network in the CPUs cache, and thus reduced bandwidth usage to main memory. Even though this change doesn't benefit a user running a single process, this helps on fishtest or e.g. for Lichess, when multiple games run concurrently, or multiple positions are analyzed in parallel. This concept was probably first introduced in the Monty engine (https://github.com/official-monty/Monty/pull/62), after a discussion in https://github.com/official-stockfish/fishtest/issues/2077 on the issue of memory pressure. Measurements based on Torch (https://github.com/user-attachments/files/21386224/verbatim.pdf) further suggested that large gains were possible. Multiple other engines have adopted this 'verbatim' format as well. The implementation here adds the flexibility needed for SF, for example, retains the ability to bundle compressed networks with the binary, to load nets by uci option, and to distribute the shared nets to the proper NUMA region. This flexibility comes with a fair amount of complexity in the implementation, such as OS specific code, and fallback code. For most users this should be transparent. However, for example, those running docker containers should ensure the `--ipc` flag is set correctly, and `--shm-size` is sufficiently large. The benefits of this patch significantly depend on hardware, with systems with many cores and a large (O(150MB), the net size) L3 cache benefitting typically most. On such systems SF speedups (as measured via nps playing games with large concurrency but just 1 thread) can be 38%, which results in master vs. patch Elo which gains about 25 Elo. ``` # PLAYER : RATING ERROR POINTS PLAYED (%) 1 shared_memoryPR : 24.8 1.9 39432.0 73728 53 2 master : 0.0 ---- 34296.0 73728 47 ``` In a multithreaded setup, where weights are already shared, that benefit is smaller, for example on the same HW as above, but with 8t for each side. ``` # PLAYER : RATING ERROR POINTS PLAYED (%) 1 shared_memoryPR : 5.2 3.5 9351.0 18432 51 2 master : 0.0 ---- 9081.0 18432 49 ``` On fishtest with a typical hardware mix of our contributors, the following was measured: STC, 60k games https://tests.stockfishchess.org/tests/view/69074a49ea4b268f1fac236c Elo: 4.69 ± 1.4 (95%) LOS: 100.0% Total: 60000 W: 16085 L: 15275 D: 28640 Ptnml(0-2): 154, 6440, 16053, 7148, 205 nElo: 9.38 ± 2.8 (95%) PairsRatio: 1.12 To verify correctness with a single process on a NUMA architecture, speedtest was used, confirming near equivalence: ``` master: Average (over 10): 296236186 shared_memory: Average (over 10): 295769332 ``` Currently, using large pages for the shared network weights is not always possible, which can lead to a small slowdown (1-2%), in case a single process is run. closes https://github.com/official-stockfish/Stockfish/pull/6173 No functional change Co-authored-by: disservin <disservin.social@gmail.com> Co-authored-by: Joost VandeVondele <Joost.VandeVondele@gmail.com>
Copyright 2011–2025 Next Chess Move LLC