Dev Builds » 20260419-0507

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:50 583989 3990 1728 386 1876 +121.59 ± 4.55 0 28 629 1306 32 +273.39 ± 13.51
ncm-dbt-02 06:40:32 586322 4000 1738 346 1916 +126.18 ± 4.51 0 29 581 1359 31 +288.39 ± 14.1
ncm-dbt-03 06:41:46 584540 3998 1760 340 1898 +129.02 ± 4.51 0 22 575 1362 40 +294.84 ± 14.15
ncm-dbt-04 06:41:55 567448 4016 1775 357 1884 +128.19 ± 4.53 2 28 559 1388 31 +295.76 ± 14.39
ncm-dbt-05 06:42:03 581574 3996 1745 357 1894 +125.92 ± 4.42 0 24 586 1364 24 +289.8 ± 14.01
20000 8746 1786 9468 +126.18 ± 2.02 2 131 2930 6779 158 +288.32 ± 6.27

Test Detail

ID Host Base NPS Games WLD Standard Elo Ptnml(0-2) Gamepair Elo CLI PGN
465512 ncm-dbt-04 564644 16 8 2 6 +136.89 ± 61.78 0 0 2 6 0 +337.87 ± 515.83
465511 ncm-dbt-01 582110 490 216 59 215 +115.38 ± 13.72 0 4 87 147 7 +247.55 ± 36.45
465510 ncm-dbt-05 581902 496 207 39 250 +122.52 ± 12.81 0 5 72 169 2 +281.27 ± 40.5
465509 ncm-dbt-03 584159 498 221 52 225 +122.77 ± 12.78 0 1 84 158 6 +272.16 ± 36.85
465508 ncm-dbt-02 588899 500 221 56 223 +119.11 ± 13.34 0 6 77 163 4 +265.78 ± 39.12
465507 ncm-dbt-04 566651 500 224 62 214 +116.77 ± 13.36 0 5 83 157 5 +256.44 ± 37.51
465506 ncm-dbt-01 585169 500 214 55 231 +114.45 ± 12.67 0 4 85 159 2 +256.44 ± 36.95
465505 ncm-dbt-05 583531 500 214 42 244 +124.6 ± 12.33 0 2 77 168 3 +285.49 ± 38.83
465504 ncm-dbt-03 585759 500 227 45 228 +132.54 ± 12.52 0 3 66 177 4 +309.64 ± 42.33
465503 ncm-dbt-02 587579 500 217 45 238 +124.6 ± 12.53 0 3 75 169 3 +285.49 ± 39.5
465502 ncm-dbt-04 567522 500 208 32 260 +127.76 ± 13.21 0 5 69 171 5 +290.66 ± 41.43
465501 ncm-dbt-01 585674 500 225 45 230 +130.94 ± 12.37 0 3 67 177 3 +306.84 ± 41.99
465500 ncm-dbt-05 579496 500 208 48 244 +115.22 ± 12.85 0 5 82 161 2 +258.75 ± 37.76
465499 ncm-dbt-02 586985 500 208 37 255 +123.81 ± 12.16 0 2 77 169 2 +285.49 ± 38.83
465498 ncm-dbt-03 586223 500 224 34 242 +138.99 ± 13.67 0 7 53 183 7 +324.17 ± 47.35
465497 ncm-dbt-04 568991 500 218 40 242 +129.35 ± 12.01 0 2 70 176 2 +304.07 ± 40.91
465496 ncm-dbt-01 583279 500 217 42 241 +126.97 ± 12.85 0 3 74 168 5 +288.06 ± 39.79
465495 ncm-dbt-02 584832 500 217 39 244 +129.35 ± 12.41 0 3 69 175 3 +301.33 ± 41.33
465494 ncm-dbt-05 584495 500 214 51 235 +117.55 ± 13.53 0 7 77 162 4 +261.07 ± 39.14
465493 ncm-dbt-03 585801 500 220 47 233 +125.38 ± 12.89 0 3 76 166 5 +282.94 ± 39.21
465492 ncm-dbt-04 568872 500 221 52 227 +122.24 ± 12.76 1 3 73 172 1 +285.49 ± 40.16
465491 ncm-dbt-01 584664 500 215 43 242 +124.6 ± 13.09 0 5 72 169 4 +282.94 ± 40.5
465490 ncm-dbt-03 583489 500 212 43 245 +122.24 ± 12.57 0 3 78 166 3 +277.93 ± 38.66
465489 ncm-dbt-02 585295 500 216 48 236 +121.45 ± 12.4 0 2 81 164 3 +275.45 ± 37.75
465488 ncm-dbt-05 578959 500 221 59 220 +116.77 ± 11.89 0 1 87 161 1 +265.78 ± 36.13
465487 ncm-dbt-04 565037 500 226 40 234 +135.76 ± 13.2 1 2 63 178 6 +318.25 ± 43.39
465486 ncm-dbt-01 581777 500 213 52 235 +116.0 ± 13.71 0 6 83 155 6 +251.89 ± 37.57
465485 ncm-dbt-03 585632 500 222 40 238 +132.54 ± 11.91 0 0 72 174 4 +309.64 ± 40.0
465484 ncm-dbt-04 570589 500 229 54 217 +126.97 ± 12.47 0 3 72 172 3 +293.29 ± 40.39
465483 ncm-dbt-02 585843 500 228 42 230 +135.76 ± 13.94 0 6 61 174 9 +306.84 ± 44.17
465482 ncm-dbt-05 580987 500 230 38 232 +140.62 ± 12.23 0 2 59 184 5 +336.46 ± 44.87
465481 ncm-dbt-03 582277 500 223 41 236 +132.54 ± 12.32 0 1 71 173 5 +306.84 ± 40.47
465480 ncm-dbt-02 584243 500 218 32 250 +135.76 ± 12.21 0 2 64 180 4 +321.19 ± 42.95
465479 ncm-dbt-01 584622 500 220 49 231 +123.81 ± 12.16 0 1 80 166 3 +282.94 ± 37.88
465478 ncm-dbt-04 567205 500 218 38 244 +130.94 ± 13.51 0 7 61 177 5 +301.33 ± 44.13
465477 ncm-dbt-05 580447 500 222 42 236 +130.94 ± 12.17 0 1 72 173 4 +304.07 ± 40.16
465476 ncm-dbt-02 586901 500 213 47 240 +119.89 ± 12.98 0 5 77 165 3 +270.57 ± 39.07
465475 ncm-dbt-04 567522 500 223 37 240 +135.76 ± 12.01 0 1 66 179 4 +321.19 ± 42.12
465474 ncm-dbt-03 582987 500 211 38 251 +125.38 ± 13.25 0 4 75 165 6 +280.42 ± 39.57
465473 ncm-dbt-01 584622 500 208 41 251 +120.67 ± 12.22 0 2 81 165 2 +275.45 ± 37.75
465472 ncm-dbt-05 582778 500 229 38 233 +139.81 ± 11.62 0 1 60 186 3 +339.63 ± 44.35

Commit

Commit ID c3bcf74925e0fe1a9bcfbed79ee9300f9900969e
Author anematode
Date 2026-04-19 05:07:11 UTC
Universal binary for x86-64 Linux and Windows We maintain support for quite a few x86 ISA extensions but relied on the end user to select the binary that is best for their system. We can detect at runtime which architecture to use, and ship a single binary (per OS/ISA combination). This PR does so, maintaining performance. This is what I've landed on after quite a few iterations. Basically, we build each arch separately, use `cpuid` to select one, and jump to that arch's main function. Some details: - The preprocessor macro `UNIVERSAL_BINARY` is defined when building for the universal binary. - The Makefile target `universal-object-[no]pgo` is added, which produces a `stockfish.o` in each arch's build directory. - To prevent symbol collisions between the multiple builds, we `#define Stockfish Stockfish_[arch]`. Furthermore we wrap the `main` function in `namespace Stockfish { }`. - We can still get PGO data by linking to a per-arch binary, with `Stockfish_x86_64_avx2::main` as `main`, and running `bench`. - For arches not supported by the host we can use Intel SDE – this is what we do in CI. - When embedding the NNUE, we use C++26/C23 `#embed` instead of `INCBIN`. The issue with `INCBIN` is that it injects assembly directives that we have no control over. - To ensure there's only one copy of the networks in the final binary, we define the network data as weak symbols in each per-arch build. Then, in the final link, we add a special nnue_embed.cpp which provides strong symbols. - This does require GCC 15. Statically linking libstdc++ allows the binary to still run on older OSes though. And latest msys2 already does static linking + is based off GCC 15.2.0 building can be as simple as make -j profile-build ARCH=x86-64-universal or using the sde if the host doesn't support all architectures supported in the universal binary, and the default host compiler is not recent enough. make -j profile-build ARCH=x86-64-universal RUN_PREFIX="/path/to/sde -future --" CXX=g++-15 This change is also integrated in CI, so universal binaries are available as downloadable artifacts. Next we could also do ARM64, especially Android (all Apple silicon users use the same binary). It also might be worth getting this to work with clang. closes https://github.com/official-stockfish/Stockfish/pull/6740 No functional change
Copyright 2011–2026 Next Chess Move LLC