Dev Builds » 20260609-1735

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:41:59 583265 4000 1811 263 1926 +141.85 ± 4.29 0 18 453 1492 37 +342.45 ± 16.0
ncm-dbt-02 06:42:09 586051 4000 1756 319 1925 +130.64 ± 4.46 0 28 537 1405 30 +303.73 ± 14.69
ncm-dbt-03 06:42:37 584630 4000 1813 313 1874 +136.97 ± 4.38 0 17 506 1437 40 +322.67 ± 15.11
ncm-dbt-04 06:43:26 567200 4002 1797 328 1877 +133.77 ± 4.56 0 23 536 1392 50 +307.64 ± 14.68
ncm-dbt-05 06:43:56 582310 3998 1794 310 1894 +135.43 ± 4.32 0 15 518 1433 33 +319.62 ± 14.92
20000 8971 1533 9496 +135.72 ± 1.97 0 101 2550 7159 190 +318.84 ± 6.73

Test Detail

ID Host Base NPS Games WLD Standard Elo Ptnml(0-2) Gamepair Elo CLI PGN
473245 ncm-dbt-04 566533 2 1 0 1 +189.7 ± 55.98 0 0 0 1 0 +1129.65 ± 376.02
473244 ncm-dbt-05 581735 498 229 33 236 +144.54 ± 10.95 0 0 55 192 2 +362.41 ± 46.32
473243 ncm-dbt-03 585421 500 227 40 233 +136.56 ± 11.55 0 0 66 181 3 +327.17 ± 41.95
473242 ncm-dbt-02 586054 500 221 40 239 +131.74 ± 11.94 0 1 70 176 3 +309.64 ± 40.79
473241 ncm-dbt-01 582235 500 226 27 247 +146.36 ± 11.74 0 2 51 193 4 +363.2 ± 48.51
473240 ncm-dbt-04 567561 500 223 43 234 +130.94 ± 12.95 0 2 73 168 7 +295.94 ± 39.99
473239 ncm-dbt-05 583489 500 223 35 242 +137.37 ± 11.94 0 1 64 181 4 +327.18 ± 42.83
473238 ncm-dbt-03 582903 500 227 45 228 +132.54 ± 13.83 0 7 61 175 7 +301.33 ± 44.13
473237 ncm-dbt-02 587113 500 218 35 247 +133.34 ± 11.88 0 1 68 178 3 +315.35 ± 41.44
473236 ncm-dbt-01 581735 500 224 39 237 +134.95 ± 13.03 0 6 57 183 4 +318.25 ± 45.73
473235 ncm-dbt-04 561214 500 223 37 240 +135.76 ± 12.62 0 5 57 185 3 +324.17 ± 45.77
473234 ncm-dbt-02 586858 500 222 34 244 +137.37 ± 12.36 0 3 60 183 4 +327.18 ± 44.54
473233 ncm-dbt-05 582485 500 216 32 252 +134.14 ± 12.47 0 0 73 170 7 +306.84 ± 39.69
473232 ncm-dbt-01 583363 500 228 38 234 +138.99 ± 13.67 0 5 59 177 9 +318.25 ± 44.96
473231 ncm-dbt-03 585843 500 224 35 241 +138.18 ± 12.53 0 3 60 182 5 +327.18 ± 44.54
473230 ncm-dbt-04 564370 500 233 44 223 +138.18 ± 12.33 0 2 62 181 5 +327.18 ± 43.69
473229 ncm-dbt-02 583614 500 220 46 234 +126.17 ± 12.68 0 2 77 166 5 +285.49 ± 38.83
473228 ncm-dbt-03 585421 500 231 51 218 +130.94 ± 12.76 0 1 75 167 7 +295.94 ± 39.27
473227 ncm-dbt-01 583405 500 224 26 250 +145.54 ± 12.01 0 2 53 190 5 +356.21 ± 47.52
473226 ncm-dbt-05 581361 500 225 40 235 +134.95 ± 11.61 0 0 68 179 3 +321.18 ± 41.27
473225 ncm-dbt-04 570228 500 224 44 232 +130.94 ± 13.69 0 4 71 166 9 +290.66 ± 40.76
473224 ncm-dbt-02 587240 500 209 46 245 +117.55 ± 13.0 0 5 80 162 3 +263.42 ± 38.27
473223 ncm-dbt-03 582110 500 226 31 243 +143.07 ± 11.69 0 0 60 185 5 +346.11 ± 44.19
473222 ncm-dbt-01 584243 500 231 40 229 +139.81 ± 12.05 0 1 62 182 5 +333.32 ± 43.57
473221 ncm-dbt-05 582193 500 224 40 236 +134.15 ± 12.47 0 5 58 185 2 +321.19 ± 45.36
473220 ncm-dbt-04 568673 500 219 42 239 +128.55 ± 12.63 0 2 74 169 5 +293.29 ± 39.69
473219 ncm-dbt-02 586181 500 219 36 245 +133.34 ± 12.69 0 5 60 182 3 +315.35 ± 44.57
473218 ncm-dbt-03 584579 500 220 34 246 +135.76 ± 12.42 0 4 59 184 3 +324.17 ± 44.97
473217 ncm-dbt-01 583321 500 233 29 238 +150.51 ± 11.03 0 0 50 196 4 +381.69 ± 48.77
473216 ncm-dbt-05 580987 500 225 49 226 +127.76 ± 13.02 0 5 68 173 4 +293.29 ± 41.75
473215 ncm-dbt-04 567878 500 223 42 235 +131.74 ± 12.93 0 3 69 172 6 +301.33 ± 41.33
473214 ncm-dbt-02 585379 500 222 45 233 +128.55 ± 13.19 0 6 65 175 4 +295.94 ± 42.75
473213 ncm-dbt-03 583782 500 231 42 227 +138.18 ± 11.7 0 1 62 184 3 +333.32 ± 43.57
473212 ncm-dbt-01 585211 500 221 23 256 +145.54 ± 11.33 0 1 53 193 3 +363.2 ± 47.43
473211 ncm-dbt-05 584664 500 230 42 228 +137.37 ± 11.94 0 1 64 181 4 +327.18 ± 42.83
473210 ncm-dbt-04 569869 500 223 43 234 +130.94 ± 13.69 0 5 68 169 8 +293.29 ± 41.75
473209 ncm-dbt-02 585970 500 225 37 238 +137.37 ± 12.96 0 5 57 183 5 +324.17 ± 45.77
473208 ncm-dbt-03 586985 500 227 35 238 +140.62 ± 12.44 0 1 63 179 7 +330.23 ± 43.2
473207 ncm-dbt-01 582611 500 224 41 235 +133.34 ± 11.88 0 1 68 178 3 +315.35 ± 41.44
473206 ncm-dbt-04 568474 500 228 33 239 +143.07 ± 12.12 0 0 62 181 7 +339.63 ± 43.41
473205 ncm-dbt-05 581569 500 222 39 239 +133.34 ± 13.08 0 3 68 172 7 +304.07 ± 41.65

Commit

Commit ID 8e711c29fe7d5d9b317de46ec5f0cd848e56fbaf
Author anematode
Date 2026-06-09 17:35:05 UTC
Add wasm32 and wasm32-relaxed-simd targets, and light optimizations Lichess maintains some patches on top of SF dev to get it working with Emscripten. This PR moves some of these patches into SF and adds WASM to CI. It also adds a few changes in places where the x86 intrinsics don't cleanly map onto WebAssembly SIMD instructions; otherwise, we use Emscripten's x86 compatibility layer and take SSE4.1 code paths. Summary of the compatibility changes: - Define `wasm32` and `wasm32-relaxed-simd` targets. - We don't support wasm without SIMD; it'd be a waste of time. - Add option to disable TBs - This is required because `tbprobe.cpp` pulls in `mmap`. This option can be used on any target, of course, but it's only enabled by default for wasm. - Add compilation job + test to CI And the changes for performance: - Disable atomics for shared history on wasm - Atomics are always `seq_cst` there, which can be quite slow (even on the x86, stores are locked `xchg [mem], reg`) - Add SSE code path to `get_changed_pieces`, modeled after the AVX2 path - `_mm_mulhi_epi16` has a complicated emulation sequence, so for the pairwise multiplication, use an approach similar to the NEON impl. - __int128 is gets lowered to runtime functions on wasm, so use the fallback impl for `mul_hi64` - V8 does a poor job with the NNZ finding, so use a slightly different sequence there - Add relaxed simd support for `m128_dpbusd`. Some local perf figures (single-threaded speedtest): ``` wasm Nodes/second : 902523 sse4.1 Nodes/second : 1155380 avx512icl Nodes/second : 1676184 ``` Further avenues to explore: - Optimize for performance under V8's experimental AVX revectorizer (Currently it's about +10% in my testing, but could definittely be more) - Branch hinting. For example, run bench while collecting branch frequency info, then inject it late in the WASM compilation pipeline. I tried this locally and it didn't help much, but maybe I'm missing something. - PGO. Gives +1.5% NPS locally, but hard to integrate with WASM compilation wrokflows closes https://github.com/official-stockfish/Stockfish/pull/6875 No functional change
Copyright 2011–2026 Next Chess Move LLC