Dev Builds » 20250418-1232

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:45:51 583026 4002 1642 449 1911 +106.81 ± 4.89 0 70 700 1199 32 +230.27 ± 12.86
ncm-dbt-02 06:45:41 584807 4014 1685 454 1875 +110.09 ± 4.64 0 42 719 1219 27 +240.77 ± 12.62
ncm-dbt-03 06:45:04 584970 4000 1659 416 1925 +111.66 ± 4.7 1 57 656 1270 16 +248.53 ± 13.29
ncm-dbt-04 06:44:57 570238 3988 1637 475 1876 +104.25 ± 4.8 1 64 722 1186 21 +226.37 ± 12.64
ncm-dbt-05 06:46:34 585156 3996 1578 502 1916 +95.92 ± 4.88 1 82 775 1120 20 +204.57 ± 12.2
20000 8201 2296 9503 +105.73 ± 2.14 3 315 3572 5994 116 +229.74 ± 5.68

Test Detail

ID Host Base NPS Games WLD Standard Elo Ptnml(0-2) Gamepair Elo CLI PGN
409498 ncm-dbt-01 585000 2 0 0 2 0.0 ± 34.02 0 0 1 0 0 0.0 ± 30.47
409497 ncm-dbt-02 583112 14 8 1 5 +190.68 ± 96.09 0 0 1 5 1 +445.23 ± 480.27
409496 ncm-dbt-04 569909 488 215 61 212 +113.52 ± 13.94 1 4 84 150 5 +248.95 ± 37.24
409495 ncm-dbt-05 584664 496 200 59 237 +101.56 ± 13.1 0 6 97 143 2 +220.11 ± 34.45
409494 ncm-dbt-03 584706 500 204 35 261 +122.24 ± 13.48 0 8 68 171 3 +277.93 ± 41.74
409493 ncm-dbt-02 585379 500 213 67 220 +104.49 ± 12.35 0 3 99 147 1 +230.16 ± 33.79
409492 ncm-dbt-01 585379 500 210 53 237 +112.91 ± 13.39 0 7 82 158 3 +249.64 ± 37.86
409491 ncm-dbt-04 570108 500 205 57 238 +106.01 ± 12.71 0 4 96 148 2 +232.26 ± 34.5
409490 ncm-dbt-02 586266 500 219 49 232 +123.02 ± 12.74 0 2 81 162 5 +275.45 ± 37.75
409489 ncm-dbt-05 583489 500 198 71 231 +90.22 ± 14.46 1 12 99 135 3 +190.85 ± 34.36
409488 ncm-dbt-01 584453 500 206 55 239 +108.3 ± 13.23 0 5 93 148 4 +234.38 ± 35.22
409487 ncm-dbt-03 584495 500 209 60 231 +106.77 ± 13.89 0 11 81 156 2 +234.38 ± 38.14
409486 ncm-dbt-04 571351 500 201 59 240 +101.46 ± 13.37 0 10 88 152 0 +223.94 ± 36.53
409485 ncm-dbt-05 583950 500 201 58 241 +102.22 ± 13.7 0 10 89 149 2 +221.9 ± 36.31
409484 ncm-dbt-02 585843 500 205 56 239 +106.77 ± 13.72 0 8 89 149 4 +230.16 ± 36.26
409483 ncm-dbt-01 582402 500 198 42 260 +112.14 ± 13.04 0 6 84 158 2 +249.64 ± 37.33
409482 ncm-dbt-03 584411 500 211 48 241 +117.55 ± 13.18 1 5 75 168 1 +270.57 ± 39.67
409481 ncm-dbt-04 569310 500 200 62 238 +98.44 ± 13.82 0 11 92 145 2 +211.87 ± 35.7
409480 ncm-dbt-01 585253 500 203 61 236 +101.46 ± 14.32 0 12 88 146 4 +215.85 ± 36.55
409479 ncm-dbt-05 579744 500 186 56 258 +92.45 ± 14.65 0 16 91 140 3 +194.57 ± 35.91
409478 ncm-dbt-03 584832 500 209 55 236 +110.6 ± 13.22 0 6 87 154 3 +243.0 ± 36.62
409477 ncm-dbt-02 585928 500 219 59 222 +115.22 ± 13.38 0 4 88 152 6 +249.64 ± 36.24
409476 ncm-dbt-04 570148 500 199 56 245 +102.22 ± 12.7 0 4 101 143 2 +221.9 ± 33.5
409475 ncm-dbt-05 590096 500 201 65 234 +96.94 ± 13.65 0 10 96 142 2 +207.95 ± 34.86
409474 ncm-dbt-01 582402 500 196 63 241 +94.69 ± 14.24 0 12 97 137 4 +198.34 ± 34.72
409473 ncm-dbt-03 583572 500 208 53 239 +111.37 ± 13.39 0 8 81 159 2 +247.41 ± 38.13
409472 ncm-dbt-02 582152 500 211 63 226 +106.01 ± 13.56 0 8 89 150 3 +230.16 ± 36.26
409471 ncm-dbt-04 570669 500 208 56 236 +109.07 ± 13.56 0 8 85 154 3 +238.66 ± 37.17
409470 ncm-dbt-05 585379 500 198 67 235 +93.2 ± 13.28 0 9 102 138 1 +200.24 ± 33.67
409469 ncm-dbt-01 578794 500 211 56 233 +111.37 ± 14.38 0 9 84 150 7 +236.51 ± 37.42
409468 ncm-dbt-03 585421 500 205 63 232 +101.46 ± 13.2 0 6 99 142 3 +217.85 ± 34.06
409467 ncm-dbt-02 584201 500 199 51 250 +106.01 ± 13.05 0 7 89 153 1 +234.38 ± 36.22
409466 ncm-dbt-04 570348 500 211 58 231 +109.83 ± 14.06 0 9 84 152 5 +236.51 ± 37.42
409465 ncm-dbt-02 583992 500 204 51 245 +109.83 ± 12.52 0 4 90 155 1 +245.2 ± 35.79
409464 ncm-dbt-03 585295 500 207 58 235 +106.77 ± 13.23 0 7 89 152 2 +234.38 ± 36.22
409463 ncm-dbt-05 586689 500 193 67 240 +89.48 ± 13.69 0 11 104 133 2 +189.0 ± 33.39
409462 ncm-dbt-01 581943 500 211 56 233 +111.37 ± 14.53 0 11 79 154 6 +238.66 ± 38.63
409461 ncm-dbt-04 570068 500 198 66 236 +93.95 ± 14.23 0 14 92 142 2 +200.24 ± 35.72
409460 ncm-dbt-02 586393 500 207 57 236 +107.54 ± 13.56 0 6 93 146 5 +230.16 ± 35.29
409459 ncm-dbt-01 581610 500 207 63 230 +102.97 ± 13.38 0 8 92 148 2 +223.94 ± 35.61
409458 ncm-dbt-05 587240 500 201 59 240 +101.46 ± 13.85 0 8 97 140 5 +213.85 ± 34.58
409457 ncm-dbt-03 587028 500 206 44 250 +116.78 ± 12.65 0 6 76 168 0 +268.17 ± 39.39

Commit

Commit ID d2d046c2a497b2d70debde07ccc414ca633d550b
Author pb00067
Date 2025-04-18 12:32:26 UTC
Improve stalemate detection during search Currently SF’s quiescence search like most alpha-beta based engines doesn’t verify for stalemate because doing it each leaf position is to expensive and costs elo. However in certain positions this creates a blindspot for SF, not recognizing soon enough that the opponent can reach a stalemate by sacrifycing his last mobile heavy piece(s). This tactical motif & it’s measure are similar to zugzwang & verification search: the measure itself does not gain elo, but prevents SF from loosing/drawing games in an awkward way. The fix consists of 3 measures: 1. Make qsearch verify for stalemate on transitions to pure KP-material for the side to move with our last Rook/Queen just been captured. In fact this is the scenario where stalemate happens with highest frequency. The stalemate-verification itself is optimized by merely checking for pawn pushes & king mobility (captures were already tried by qssearch) 2. Another culprit for the issue figured out to be SEE based pruning for checks in step 14. Here often the move forcing the stalemate (or forcing the opponent to not retake) get pruned away and it need to much time to reach enough depth. To encounter this we verify following conditions: - a) side to move is happy with a draw (alpha < 0) - b) we are about to sacrify our last heavy & unique mobile piece in this position. - c) this piece doesn’t move away from our kingring giving the king a new square to move. When all 3 conditions meet we don’t prune the move, because there is a good chance that capturing the piece means stalemate. 3. Store terminal nodes (mates & stalemates) in TT with higher depth than searched depth. This prevents SF from: - reanalyzing the node (=trying to generate legal moves) in vain at each iterative deepening step. - overwriting an already correct draw-evaluation from a previous shallow normal search by a qsearch which doesn’t recognize stalemate and might store a verry erratic evaluation. This is due to the 4 constant in the TT-overwrite condition: d - DEPTH_ENTRY_OFFSET + 2 * pv > depth8 – 4 which allows qs to override entries made by normal searches with depth <=4. This 3hrd measure however is not essential for fixing the issue, but tests (one of vdv & one of mine) seem to suggest that this measure brings some small benefit. Another other position where SF benefits from this fix is for instance Position FEN 8/8/8/1B6/6p1/8/3K1Ppp/3N2kr w - - 0 1 bm f4 +M9 P.S.: Also this issue higly depends on the used net, how good the net is at evaluate such mobility restricted positions. SF16 was pretty good in solving 2rr4/5pBk/PqP3p1/1N3pPp/1PQ1bP1P/8/3R4/R4K2 b - - 0 40 bm Rxc6 (< 1 second) while SF16_1 with introduction of the dual net needs about 1,5 minutes and SF17.1 requires 3 minutes to find the drawing move Rxc6. P.S.2: Using more threads produces indeterminism & using high hash pressure makes SF reevaluate explored positions more often which makes it more likely to solve the position. To have stable meaningful results I tested therfore with one single thread and low hash pressure. Preliminary LTC test at 30k games https://tests.stockfishchess.org/tests/view/67ece7a931d7cf8afdc44e18 Elo: 0.04 ± 2.0 (95%) LOS: 51.7% Total: 24416 W: 6226 L: 6223 D: 11967 Ptnml(0-2): 12, 2497, 7185, 2504, 10 nElo: 0.09 ± 4.4 (95%) PairsRatio: 1.00 Passed LTC no-regression sprt https://tests.stockfishchess.org/tests/view/67ee8e4631d7cf8afdc452fb LLR: 2.94 (-2.94,2.94) <-1.75,0.25> Total: 401556 W: 101612 L: 101776 D: 198168 Ptnml(0-2): 152, 42241, 116170, 42049, 166 closes https://github.com/official-stockfish/Stockfish/pull/5983 fixes https://github.com/official-stockfish/Stockfish/issues/5899 Bench: 1721673
Copyright 2011–2025 Next Chess Move LLC