Skip to main content

Since you’re here...

... we have a small favour to ask. More people, like you, are reading and supporting our blog: "Chess Engines Diary". And unlike many other sites and blogs, we made the choice to keep our articles open for all, regardless of where they live or what they can afford to pay.

We hope you will consider supporting us today. We need your support to continue to exist, because good entries are more and more work time. Every reader contribution, however big or small, is so valuable. Support "Chess Engines Diary" even a small amount– and it only takes a minute. Thank you.

============================== My email: jotes@go2.pl



Stockfish 17091710 - new version!

Stockfish, chess engine UCI

Rating JCER = 3427
🔬 Author: Syzygy 

More:
Timestamp: 1505637850 

Let ss->ply denote the number of plies from the root to the current node 

This patch lets ss->ply be equal to 0 at the root of the search. 

Currently, the root has ss->ply == 1, which is less intuitive: 

- Setting the rootNode bool has to check (ss-1)->ply == 0. 

- All mate values are off by one: the code seems to assume that mated-in-0 
is -VALUE_MATE, mate-1-in-ply is VALUE_MATE-1, mated-in-2-ply is VALUE_MATE+2, etc. 
But the mate_in() and mated_in() functions are called with ss->ply, which is 1 in 
at the root. 

- The is_draw() function currently needs to explain why it has "ply - 1 > i" instead 
of simply "ply > i". 

- The ss->ply >= MAX_PLY tests in search() and qsearch() already assume that 
ss->ply == 0 at the root. If we start at ss->ply == 1, it would make more sense to 
go up to and including ss->ply == MAX_PLY, so stop at ss->ply > MAX_PLY. See also 
the asserts testing for 0 <= ss->ply && ss->ply < MAX_PLY. 

The reason for ss->ply == 1 at the root is the line "ss->ply = (ss-1)->ply + 1" at 
the start for search() and qsearch(). By replacing this with "(ss+1)->ply = ss->ply + 1" 
we keep ss->ply == 0 at the root. Note that search() already clears killers in (ss+2), 
so there is no danger in accessing ss+1. 

I have NOT changed pv[MAX_PLY + 1] to pv[MAX_PLY + 2] in search() and qsearch(). 
It seems to me that MAX_PLY + 1 is exactly right: 

- MAX_PLY entries for ss->ply running from 0 to MAX_PLY-1, and 1 entry for the 
final MOVE_NONE. 

I have verified that mate scores are reported correctly. (They were already reported 
correctly due to the extra ply being rounded down when converting to moves.) 

The value of seldepth output to the user should probably not change, so I add 1 to it. 
(Humans count from 1, computers from 0.) 

A small optimisation I did not include: instead of setting ss->ply in every invocation 
of search() and qsearch(), it could be set once for all plies at the start of 
Thread::search(). This saves a couple of instructions per node. 

No functional change (unless the search searches a branch MAX_PLY deep), so bench 
does not change. 

⭐⭐⭐   Stockfish 17091710 - download


Comments

Popular posts from this blog

New Strong Engines Test, by Chess Engines Diary, 2024.04.12

  💾  552 (!) games from the tournament download   👍 @chessenginesdiary  Country - Poland, City -  Malbork 🕓 Time 3'+3" 💻HP Pavilion i5-1035G1 8GB RAM 🖬 GUI-Banksia All  CEDR  317.321 games download  (01.04.2024 - 3'+3")  HypnoS 030424, Yuli GM Pro 16, Stockfish 16.1 and ShashChess 35 . These four engines scored the same number of points and placed at the top of the table in this strong tournament. Tech table: Engine KN/move NPS dep/mov time/mov mov/game time/game fails Alexandria 6.1.0 3218 576429 30.2 5.6 56.7 316.2 Berserk 13 4779 841025 36.7 5.7 56.0 318.1 Brainlearn 28 2275 366977 31.4 6.2 43.5 269.4 Caissa 1.18 5492 923486 30.2 5.9 50.4 299.7 Clover 6.1.19 4803 854377 31.4 5.6 62.2 349.4 Cool Iris 12.10 2201 356730 27.6 6.2 51.2 315.5 CorChess 20240331 2253 372774 27.4 6.0 52.2 315.8 Crystal 8 3582 571994 20.3 6.3 47.7 298.8 Fire 9.3 5225 876565 22.0 6.0 55.5 331.1 Fisherov chess monk 1.2 3487 619728 36.0 5.6 60.4 340.0 Hyp

New version chess engine: Raid 3.6 TacticaL RetreaT (Stockfish derivative)

Raid - is a Stockfish derivative . Rating CEDR=3743 Raid 3.2 - results: Polyfish 240114 7/14 +0 14 Games Hazard 4.21 DuaL 6.5/12 +1 12 Games Leptir 100124 6/12 +0 12 Games Arasan 24.1 7.5/10 +5 10 Games Uralochka 3.41 dev1 6/10 +2 10 Games Caissa 1.16 5.5/10 +1 10 Games SF-PRO 07.01.2024 5/10 +0 10 Games Stockfish 20240117 5/10 +0 10 Games Minic 3.41 7/8 +6 8 Games Pawn 3.0 6.5/8 +5 8 Games Texel 1.11 5.5/8 +3 8 Games RubiChess 20240112 5/8 +2 8 Games CorChess 20240103 4/8 +0 8 Games Counter 5.5 4.5/6 +3 6 Games Obsidian 10.0 3.5/6 +1 6 Games Fisherov chess monk 1.2 3/6 +0 6 Games Avalanche 2.1.0 3.5/4 +3 4 Games Starzix 4.0 2.5/4 +1 4 Games Cool Iris 11.80 2/4 +0 4 Games Blue Marlin 15.7 2/4 +0 4 Games AI 28.0 2/4 +0 4 Games

New chess engine: HypnoS 240324 (derived from Stockfish)

  HypnoS is a free and strong UCI chess engine derived from Stockfish  that analyzes chess positions and computes the optimal moves. HypnoS does not include a graphical user interface (GUI) that is required  to display a chessboard and to make it easy to input moves. These GUIs are  developed independently from HypnoS and are available online. HypnoS development is currently supported on the Openbench framework. OpenBench (created by Andrew Grant) is an open-source Sequential Probability Ratio Testing (SPRT) framework designed for self-play testing of engines. OpenBench makes use of distributed computing, allowing anyone to contribute CPU time to further the development of some of the world's most powerful engines. HypnoS 240324 download

Chess engine: Incognito 8.2 (experimental version of CorChess)

  Eduard Nemeth: "by Solista: This engine is identical in code to 8.01 but without Random Op. MultiPV mode. Some users only want to use normal MultiPV mode. Download Win 64-Bit (avx2, bmi2, sse41, source code).". Rating CEDR=3741 Incognito 5 PRO engine results SF CorChess 010124 25.5/50 +1 50 Games Predator AI 23/46 +0 46 Games Polyfish 240105 22.5/44 +1 44 Games Sawfish 2TC 21/42 +0 42 Games SF PB 070124 14.5/29 +0 29 Games Dragon 3.3 15.5/26 +5 26 Games Stockfish 20240108 12/24 +0 24 Games Deep Blue 20230628 12/24 +0 24 Games AbbyStein 2.8 12/24 +0 24 Games Berserk 12.1 11/20 +2 20 Games Cool Iris 11.80 10.5/20 +1 20 Games Ethereal 14.25 10.5/16 +5 16 Games Stockfish 20231231 8/16 +0 16 Games Raid 3.1 8/16 +0 16 Games SF-PRO 25.12.2023 8/16 +0 16 Games Killfish 071223 8/16 +0 16 Games Crystal 7 7/14 +0 14 Games TACTICAL 161223 6/12 +0 12 Games Fisherov chess monk 1.2 6/12 +0 12 Games Seer 2.8.0 6.5/10 +3 10 Games SF-PRO 07.01.2024 5/10 +0 10 Games Incognito 8.2 download

New version chess engine: Lc0 v.0.31.0-rc2

LcZero - CEDR Rating=3712 v0.31.0-rc2: In this version: Changed cuda compilation options to use -arch=native or -arch=all-major if no specific version is requested, with fallback for older cuda that don't support those options. Updated android builds to use openblas 0.3.27. A few small fixes. Individual statistics:  Lc0 BT4 Clover 6.1 5.5/8 +3 8 Games RofChade 3.1 4.5/8 +1 8 Games Dragon 3.3 4.5/8 +1 8 Games SF-PRO 19.11.2023 4/8 +0 8 Games YuliGM PrO 15 3.5/8 -1 8 Games ShashChess 34.5 3.5/8 -1 8 Games Sawfish 2TC 3.5/6 +1 6 Games Polyfish 231120 3.5/6 +1 6 Games Hazard 4.1 3/6 +0 6 Games Raid 3.1 3/6 +0 6 Games Eman 9.80 3/6 +0 6 Games Incognito 4 3/6 +0 6 Games Vanilla 14c 3/6 +0 6 Games Patzer AI X-256 2.5/6 -1 6 Games SugaR AI SE 2.5/5 +0 5 Games Altair 6.0.0 3.5/4 +3 4 Games Caissa 1.15 3/4 +2 4 Games Seer 2.8.0 2.5/4 +1 4 Games Fisherov chess monk 1.2 2.5/4 +1 4 Games Crystal 7 CMB 2.5/4 +1 4 Games Chess-System-Tal-2 2.5/4 +1 4 Games Lc0 v.0.31.0-rc2 (gpu-nvidia-cudnn) d