Dev Builds » 20251223-2042

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:42:49 580994 4000 1739 395 1866 +121.46 ± 4.55 0 34 614 1326 26 +274.84 ± 13.71
ncm-dbt-02 06:44:03 585730 4004 1744 370 1890 +124.27 ± 4.48 0 28 598 1350 26 +283.79 ± 13.88
ncm-dbt-03 06:42:20 584842 4000 1718 391 1891 +119.79 ± 4.53 1 31 631 1314 23 +270.87 ± 13.5
ncm-dbt-04 06:42:15 566664 4000 1695 403 1902 +116.39 ± 4.58 0 40 650 1288 22 +260.49 ± 13.32
ncm-dbt-05 06:44:31 582294 3996 1721 376 1899 +121.68 ± 4.55 0 29 626 1312 31 +274.01 ± 13.55
20000 8617 1935 9448 +120.71 ± 2.03 1 162 3119 6590 128 +272.7 ± 6.07

Test Detail

ID Host Base NPS Games WLD Standard Elo Ptnml(0-2) Gamepair Elo CLI PGN
447054 ncm-dbt-02 586985 4 1 0 3 +88.51 ± 137.63 0 0 1 1 0 +190.5 ± 634.21
447053 ncm-dbt-05 583279 496 217 53 226 +119.36 ± 12.86 0 1 88 153 6 +261.71 ± 35.88
447052 ncm-dbt-03 583656 500 221 51 228 +123.02 ± 12.56 0 4 74 170 2 +282.94 ± 39.86
447051 ncm-dbt-04 561951 500 213 36 251 +128.55 ± 12.24 0 3 69 176 2 +301.33 ± 41.33
447050 ncm-dbt-01 581652 500 210 50 240 +115.22 ± 13.03 0 7 77 165 1 +261.07 ± 39.14
447049 ncm-dbt-02 584117 500 214 39 247 +126.97 ± 12.66 0 2 76 167 5 +288.06 ± 39.11
447048 ncm-dbt-05 577889 500 215 50 235 +119.11 ± 12.43 0 3 81 164 2 +270.57 ± 37.86
447047 ncm-dbt-04 566178 500 213 36 251 +128.55 ± 13.19 0 3 74 166 7 +288.06 ± 39.79
447046 ncm-dbt-03 583992 500 216 51 233 +119.11 ± 12.62 0 4 79 165 2 +270.57 ± 38.47
447045 ncm-dbt-01 583154 500 227 46 227 +131.74 ± 13.12 0 4 67 173 6 +301.33 ± 42.04
447044 ncm-dbt-02 584159 500 217 52 231 +119.11 ± 12.8 0 3 83 160 4 +265.78 ± 37.35
447043 ncm-dbt-05 580904 500 223 46 231 +128.55 ± 12.82 0 4 69 173 4 +295.94 ± 41.39
447042 ncm-dbt-03 583028 500 220 50 230 +123.02 ± 12.93 0 4 76 166 4 +277.93 ± 39.29
447041 ncm-dbt-04 563431 500 219 54 227 +119.11 ± 13.17 0 5 79 162 4 +265.78 ± 38.54
447040 ncm-dbt-01 580945 500 219 45 236 +126.17 ± 12.68 0 3 74 169 4 +288.06 ± 39.79
447039 ncm-dbt-02 587240 500 223 56 221 +120.67 ± 12.02 0 1 83 164 2 +275.45 ± 37.11
447038 ncm-dbt-03 585590 500 220 57 223 +117.55 ± 13.36 1 2 85 157 5 +261.07 ± 36.86
447037 ncm-dbt-05 579207 500 219 42 239 +128.55 ± 12.82 0 3 72 170 5 +293.29 ± 40.39
447036 ncm-dbt-04 567640 500 214 55 231 +114.45 ± 13.21 0 9 73 168 0 +261.07 ± 40.24
447035 ncm-dbt-01 578588 500 215 51 234 +118.33 ± 12.81 0 2 87 156 5 +261.07 ± 36.27
447034 ncm-dbt-02 586139 500 222 38 240 +134.15 ± 12.67 0 4 62 180 4 +315.35 ± 43.81
447033 ncm-dbt-03 585928 500 209 43 248 +119.89 ± 12.61 0 4 78 166 2 +273.0 ± 38.74
447032 ncm-dbt-05 582027 500 213 46 241 +120.67 ± 12.41 0 1 85 160 4 +270.57 ± 36.61
447031 ncm-dbt-04 569111 500 210 51 239 +114.45 ± 12.49 0 2 90 155 3 +254.16 ± 35.58
447030 ncm-dbt-01 581985 500 216 58 226 +113.68 ± 13.04 0 5 85 157 3 +251.89 ± 37.03
447029 ncm-dbt-02 584327 500 206 45 249 +116.0 ± 12.47 0 4 82 163 1 +263.42 ± 37.69
447028 ncm-dbt-03 582861 500 204 34 262 +123.02 ± 12.37 0 3 76 169 2 +282.94 ± 39.21
447027 ncm-dbt-04 566888 500 208 59 233 +106.77 ± 12.88 0 6 90 153 1 +236.51 ± 35.94
447026 ncm-dbt-05 583112 500 207 43 250 +118.33 ± 13.35 0 7 75 165 3 +265.78 ± 39.69
447025 ncm-dbt-01 579744 500 215 46 239 +122.24 ± 12.57 0 3 78 166 3 +277.93 ± 38.66
447024 ncm-dbt-02 588813 500 228 47 225 +131.74 ± 13.3 0 5 65 174 6 +301.33 ± 42.75
447023 ncm-dbt-03 588686 500 218 48 234 +123.02 ± 13.11 0 4 77 164 5 +275.45 ± 39.01
447022 ncm-dbt-04 570829 500 200 63 237 +97.69 ± 13.34 0 7 102 138 3 +207.95 ± 33.55
447021 ncm-dbt-05 585379 500 216 48 236 +121.45 ± 12.4 0 2 81 164 3 +275.45 ± 37.75
447020 ncm-dbt-01 581319 500 222 54 224 +121.45 ± 12.77 0 5 74 169 2 +277.93 ± 39.92
447019 ncm-dbt-02 586266 500 214 41 245 +125.38 ± 12.7 0 5 69 174 2 +290.66 ± 41.43
447018 ncm-dbt-03 585000 500 210 57 233 +109.83 ± 12.88 0 6 86 157 1 +245.2 ± 36.85
447017 ncm-dbt-04 567284 500 218 49 233 +122.24 ± 12.76 0 5 73 170 2 +280.42 ± 40.21
447016 ncm-dbt-05 586562 500 211 48 241 +117.55 ± 13.7 0 8 75 163 4 +261.07 ± 39.69
447015 ncm-dbt-01 580572 500 215 45 240 +123.02 ± 12.74 0 5 72 171 2 +282.94 ± 40.5
447014 ncm-dbt-02 583531 500 219 52 229 +120.67 ± 12.6 0 4 77 167 2 +275.45 ± 39.01

Commit

Commit ID 1a67ccc72ef2e3c06e9c905a793a14416d53643f
Author anematode
Date 2025-12-23 20:42:29 UTC
Share correction history between threads We did quite a few tests because this is a pretty involved change with unknown scaling behavior, but results are decent. [STC 10+0.1 1th, non-regression](https://tests.stockfishchess.org/tests/live_elo/6941ce3b46f342e1ec210180) ``` LLR: 2.93 (-2.94,2.94) <-1.75,0.25> Total: 83200 W: 21615 L: 21452 D: 40133 Ptnml(0-2): 247, 9064, 22844, 9169, 276 ``` [STC 5+0.05 8th](https://tests.stockfishchess.org/tests/live_elo/693dc38346f342e1ec20f555) ``` LLR: 3.48 (-2.94,2.94) <0.00,2.00> Total: 58536 W: 15067 L: 14688 D: 28781 Ptnml(0-2): 87, 6474, 15781, 6825, 101 ``` [LTC 20+0.2 8th](https://tests.stockfishchess.org/tests/live_elo/693f2afb46f342e1ec20f847) ``` LLR: 2.94 (-2.94,2.94) <0.50,2.50> Total: 27716 W: 7211 L: 6925 D: 13580 Ptnml(0-2): 8, 2674, 8207, 2962, 7 ``` [LTC 10+0.1 64th](https://tests.stockfishchess.org/tests/live_elo/694003aa46f342e1ec20fac4): ``` LLR: 2.94 (-2.94,2.94) <0.50,2.50> Total: 16918 W: 4439 L: 4182 D: 8297 Ptnml(0-2): 3, 1493, 5213, 1744, 6 ``` [NUMA test, 5+0.05 256th](https://tests.stockfishchess.org/tests/view/6941ee4e46f342e1ec210203) ``` LLR: 2.95 (-2.94,2.94) <0.00,2.00> Total: 7124 W: 1910 L: 1678 D: 3536 Ptnml(0-2): 0, 560, 2211, 790, 1 ``` [LTC 60+0.6 64th](https://tests.stockfishchess.org/tests/live_elo/6940a85346f342e1ec20fcde): ``` LLR: 2.94 (-2.94,2.94) <0.50,2.50> Total: 15504 W: 4045 L: 3826 D: 7633 Ptnml(0-2): 0, 1002, 5530, 1219, 1 ``` Bonus (courtesy of Viz): The 1 double kill in this last test was master blundering a cool mate in 3: https://lichess.org/jyNZuRl4 Basically the idea here is to share correction history between threads. That way, T1 can use the correction values produced by T2, which already searched positions with that pawn structure etc., so that T1 can search more efficiently. The table size per thread is about the same, so we shouldn't get a large increase in hash collisions; in fact, I'd expect a lower collision rate overall. Although I came up with and implemented the idea independently, [Caissa](https://github.com/Witek902/Caissa) was the first engine to implement corrhist sharing (and corrhist in the first place) – this idea is not completely novel. The table size is rounded to a power of two. In particular, it's `65536 * nextPowerOfTwo(threadCount)`. That way, the indexing operation becomes an AND of the key bits with a mask, rather than something more expensive (e.g., a `mul_hi64`-style approach or a modulo). The updates are racy, like the TT, but because `entry` is hoisted into a register, there's no risk of writing back a value that's out of the designated range `[-D, D]`. Various attempts at rewriting using atomics led to substantial slowdowns, so we begrudgingly ignored the functions in thread sanitizer, but at some point we'd like to make this better. We allocate one shared correction history per NUMA node, because the penalty associated with crossing nodes is substantial – I get a 40% hit with NPS=4 and 256 threads, which is intolerable. With separate tables per NUMA node I get a 6% penalty for nodes per second, which isn't ideal but apparently compensated for. closes https://github.com/official-stockfish/Stockfish/pull/6478 Bench: 2690604 Co-authored-by: Disservin <disservin.social@gmail.com>
Copyright 2011–2026 Next Chess Move LLC