Releases: official-stockfish/Stockfish
Stockfish dev-20241222-f656fdfa
Simplify Zobrist keys for captures The Zobrist keys for NO_PIECE are 0 so no need to special case captures. Also the TranspositionTable reference passed to do_null_move() can be const. STC Simplification: https://tests.stockfishchess.org/tests/view/6764a79a86d5ee47d9544005 LLR: 2.96 (-2.94,2.94) <-1.75,0.25> Total: 114240 W: 29654 L: 29523 D: 55063 Ptnml(0-2): 329, 12360, 31620, 12473, 338 closes https://github.com/official-stockfish/Stockfish/pull/5731 No functional change
Stockfish 17
Today we have the pleasure to announce a new major release of Stockfish. As always, you can freely download it at stockfishchess.org/download and use it in the GUI of your choice.
Donβt forget to join our Discord server to get in touch with the community of developers and users of the project!
Quality of chess play
In tests against Stockfish 16, this release brings an Elo gain of up to 46 points and wins up to 4.5 times more game pairs than it loses. In practice, high-quality moves are now found in less time, with a user upgrading from Stockfish 14 being able to analyze games at least 6 times faster with Stockfish 17 while maintaining roughly the same quality.
During this development period, Stockfish won its 9th consecutive first place in the main league of the Top Chess Engine Championship (TCEC), and the 24th consecutive first place in the main events (bullet, blitz, and rapid) of the Computer Chess Championship (CCC).
Update highlights
Improved engine lines
This release introduces principal variations (PVs) that are more informative for mate and decisive table base (TB) scores. In both cases, the PV will contain all moves up to checkmate. For mate scores, the PV shown is the best variation known to the engine at that point, while for table base wins, it follows, based on the TB, a sequence of moves that preserves the game outcome to checkmate.
NUMA performance optimization
For high-end computers with multiple CPUs (typically a dual-socket architecture with 100+ cores), this release automatically improves performance with a NumaPolicy
setting that optimizes non-uniform memory access (NUMA). Although typical consumer hardware will not benefit, speedups of up to 2.8x have been measured.
Shoutouts
ChessDB
During the past 1.5 years, hundreds of cores have been continuously running Stockfish to grow a database of analyzed positions. This chess cloud database now contains well over 45 billion positions, providing excellent coverage of all openings and commonly played lines. This database is already integrated into GUIs such as En Croissant and Nibbler, which access it through the public API.
Leela Chess Zero
Generally considered to be the strongest GPU engine, it continues to provide open data which is essential for training our NNUE networks. They released version 0.31.1 of their engine a few weeks ago, check it out!
Website redesign
Our website has undergone a redesign in recent months, most notably in our home page, now featuring a darker color scheme and a more modern aesthetic, while still maintaining its core identity. We hope you'll like it as much as we do!
Thank you
The Stockfish project builds on a thriving community of enthusiasts (thanks everybody!) who contribute their expertise, time, and resources to build a free and open-source chess engine that is robust, widely available, and very strong.
We would like to express our gratitude for the 11k stars that light up our GitHub project! Thank you for your support and encouragement β your recognition means a lot to us.
We invite our chess fans to join the Fishtest testing framework to contribute compute resources needed for development. Programmers can contribute to the project either directly to Stockfish (C++), to Fishtest (HTML, CSS, JavaScript, and Python), to our trainer nnue-pytorch (C++ and Python), or to our website (HTML, CSS/SCSS, and JavaScript).
The Stockfish team
Stockfish 16.1
Today, we have the pleasure to announce Stockfish 16.1. As always, you can freely download it at stockfishchess.org/download and use it in the GUI of your choice.
Don't forget to join our Discord server to get in touch with the community of developers and users of the project!
Quality of chess play
In our testing against its predecessor, Stockfish 16.1 shows a notable improvement in performance, with an Elo gain of up to 27 points and winning over 2 times more game pairs than it loses.
Update highlights
Improved evaluation
- Updated neural network architecture: The neural network architecture has undergone two updates and is currently in its 8th version.
- Removal of handcrafted evaluation (HCE): This release marks the removal of the traditional handcrafted evaluation and the transition to a fully neural network-based approach.
- Dual NNUE: For the first time, Stockfish includes a secondary neural network, used to quickly evaluate positions that are easily decided.
UCI Options removed
Use NNUE
and UCI_AnalyseMode
have been removed as they no longer had any effect. SlowMover
has also been removed in favor of Move Overhead
.
More binaries
We now offer 13 new binaries. These new binaries include avx512
, vnni256
, vnni512
, m1-apple-silicon
, and armv8-dotprod
, which take advantage of specific CPU instructions for improved performance.
For most users, using sse41-popcnt
(formerly modern
), avx2
, or bmi2
should be enough, but if your CPU supports these new instructions, feel free to try them!
Development changes
- Updated testing book: This new book, now derived exclusively from the open Lichess database, is 10 times larger than its predecessor, and has been used to test potential improvements to Stockfish over the past few months.
- Consolidation of repositories: Aiming to simplify access to our resources, we have moved most Stockfish-related repositories into the official Stockfish organization on GitHub.
- Growing maintainer team: We welcome Disservin to the team of maintainers of the project! This extra pair of hands will ensure the lasting success of Stockfish.
Thank you
The Stockfish project builds on a thriving community of enthusiasts (thanks everybody!) who contribute their expertise, time, and resources to build a free and open-source chess engine that is robust, widely available, and very strong.
We would like to express our gratitude for the 10k stars that light up our GitHub project! Thank you for your support and encouragement β your recognition means a lot to us.
We invite our chess fans to join the Fishtest testing framework, and programmers to contribute to the project either directly to Stockfish (C++), to Fishtest (HTML, CSS, JavaScript, and Python), to our trainer nnue-pytorch (C++ and Python), or to our website (HTML, CSS/SCSS, and JavaScript).
The Stockfish team
Stockfish 16
A new major release of Stockfish is now available at stockfishchess.org/download
Quality of chess play
Stockfish continues to demonstrate its ability to discover superior moves with remarkable speed. In self-play against Stockfish 15, this new release gains up to 50 Elo and wins up to 12 times more game pairs than it loses. In major chess engine tournaments, Stockfish reliably tops the rankings winning the TCEC season 24 Superfinal, Swiss, Fischer Random, and Double Random Chess tournaments and the CCC 19 Bullet, 20 Blitz, and 20 Rapid competitions. Leela Chess Zero was the challenger in most finals, putting top-engine chess now firmly in the hands of teams embracing free and open-source software.
Progress made
This updated version of Stockfish introduces several enhancements, including an upgraded neural net architecture (SFNNv6), improved implementation, and refined parameterization. The ongoing utilization of Leelaβs data combined with a novel inference approach exploiting sparsity, and network compression ensure a speedy evaluation and modest binary sizes while allowing for more weights and higher accuracy. The search has undergone more optimization, leading to improved performance, particularly in longer analyses. Additionally, the Fishtest framework has been improved and is now able to run the tests needed to validate new ideas with 10000s of CPU cores.
Usability improvements
Stockfish now comes with documentation, found in the wiki folder when downloading it or on GitHub. Additionally, Stockfish now includes a clear and consistent forced tablebase win score, displaying a value of 200 minus the number of plies required to reach a tablebase win. Furthermore, the UCI_Elo option, to reduce its strength, has been calibrated. It is worth noting that the evaluation system remains consistent with Stockfish 15.1, maintaining the choice that 100cp means a 50% chance of winning the game against an equal opponent. Finally, binaries of our latest development version are now provided continuously as pre-releases on GitHub making it easier for enthusiasts to download the latest and strongest version of the program, we thank Roman Korba for having provided a similar service for a long time.
Thank you
The success of the Stockfish project relies on the vibrant community of passionate enthusiasts (we appreciate each and every one of you!) who generously contribute their knowledge, time, and resources. Together, this dedicated community works towards the common goal of developing a powerful, freely accessible, and open-source chess engine. We invite all chess enthusiasts to join the Fishtest testing framework and contribute to the project.
The Stockfish team
Stockfish 15.1
Today, we have the pleasure to announce Stockfish 15.1.
As usual, downloads will be freely available at stockfishchess.org/download
Elo gain and competition results
With this release, version 5 of the NNUE neural net architecture has been introduced, and the training data has been extended to include Fischer random chess (FRC) positions. As a result, Elo gains are largest for FRC, reaching up to 50 Elo for doubly randomized FRC (DFRC). More importantly, also for standard chess this release progressed and will win two times more game pairs than it loses against Stockfish 15. Stockfish continues to win in a dominating way all chess engine tournaments, including the TCEC Superfinal, Cup, FRC, DFRC, and Swiss as well as the CCC Bullet, Blitz, and Rapid events.
New evaluation
This release also introduces a new convention for the evaluation that is reported by search. An evaluation of +1 is now no longer tied to the value of one pawn, but to the likelihood of winning the game. With a +1 evaluation, Stockfish has now a 50% chance of winning the game against an equally strong opponent. This convention scales down evaluations a bit compared to Stockfish 15 and allows for consistent evaluations in the future.
ChessBase settlement
In this release period, the Stockfish team has successfully enforced its GPL license against ChessBase. This has been an intense process that included filing a lawsuit, a court hearing, and finally negotiating a settlement that established that ChessBase infringed on the license by not distributing the Stockfish derivatives Fat Fritz 2 and Houdini 6 as free software, and that ensures ChessBase will respect the Free Software principles in the future. This settlement has been covered by major chess sites (see e.g. lichess.org and chess.com), and we are proud that it has been hailed as a βhistoric violation settlementβ by the Software Freedom Conservancy.
Thank you
The Stockfish project builds on a thriving community of enthusiasts (thanks everybody!) that contribute their expertise, time, and resources to build a free and open-source chess engine that is robust, widely available, and very strong. We invite our chess fans to join the fishtest testing framework and programmers to contribute to the project.
The Stockfish team
Stockfish 15
A new major release of Stockfish is now available at https://stockfishchess.org
Stockfish 15 continues to push the boundaries of chess, providing unrivalled analysis and playing strength. In our testing, Stockfish 15 is ahead of Stockfish 14 by 36 Elo points and wins nine times more game pairs than it loses[1].
Improvements to the engine have made it possible for Stockfish to end up victorious in tournaments at all sorts of time controls ranging from bullet to classical and even at Fischer random chess[2]. At CCC, Stockfish won all of the latest tournaments: CCC 16 Bullet, Blitz and Rapid, CCC 960 championship, and the CCC 17 Rapid. At TCEC, Stockfish won the Season 21, Cup 9, FRC 4 and in the current Season 22 superfinal, at the time of writing, has won 16 game pairs and not yet lost a single one.
This progress is the result of a dedicated team of developers that comes up with new ideas and improvements. For Stockfish 15, we tested nearly 13000 different changes and retained the best 200. These include the fourth generation of our NNUE network architecture, as well as various search improvements. To perform these tests, contributors provide CPU time for testing, and in the last year, they have collectively played roughly a billion chess games. In the last few years, our distributed testing framework, Fishtest, has been operated superbly and has been developed and improved extensively. This work by Pasquale Pigazzini, Tom Vijlbrief, Michel Van den Bergh, and various other developers[3] is an essential part of the success of the Stockfish project.
Indeed, the Stockfish project builds on a thriving community of enthusiasts to offer a free and open-source chess engine that is robust, widely available, and very strong. We invite our chess fans to join the Fishtest testing framework and programmers to contribute to the project[4].
The Stockfish team
[1] https://tests.stockfishchess.org/tests/view/625d156dff677a888877d1be
[2] https://en.wikipedia.org/wiki/Stockfish_(chess)#Competition_results
[3] https://github.com/glinscott/fishtest/blob/master/AUTHORS
[4] https://stockfishchess.org/get-involved/
Stockfish 14.1
Today, we have the pleasure to announce Stockfish 14.1.
As usual, downloads will be freely available at stockfishchess.org/download [1].
With Stockfish 14.1 our users get access to the strongest chess engine
available today. In the period leading up to this release, Stockfish
convincingly won several chess engine tournaments, including the TCEC 21
superfinal, the TCEC Cup 9, and the Computer Chess Championship for
Fischer Random Chess (Chess960). In the latter tournament, Stockfish
was undefeated in 599 out of 600 games played.
Compared to Stockfish 14, this release introduces a more advanced NNUE
architecture and various search improvements. In self play testing, using
a book of balanced openings, Stockfish 14.1 wins three times more game
pairs than it loses [2]. At this high level, draws are very common, so the
Elo difference to Stockfish 14 is about 17 Elo. The NNUE evaluation method,
introduced to top level chess with Stockfish 12 about one year ago [3],
has now been adopted by several other strong CPU based chess engines.
The Stockfish project builds on a thriving community of enthusiasts
(thanks everybody!) that contribute their expertise, time, and resources
to build a free and open-source chess engine that is robust,
widely available, and very strong. We invite our chess fans to join the
fishtest testing framework and programmers to contribute to the project [4].
Stay safe and enjoy chess!
The Stockfish team
[1] https://stockfishchess.org/download/
[2] https://tests.stockfishchess.org/tests/view/6175c320af70c2be1788fa2b
[3] #3628
[4] https://stockfishchess.org/get-involved/
Stockfish 14
Today, we have the pleasure to announce Stockfish 14.
As usual, downloads will be freely available at https://stockfishchess.org
The engine is now significantly stronger than just a few months ago, and wins four times more game pairs than it loses against the previous release version [0]. Stockfish 14 is now at least 400 Elo ahead of Stockfish 7, a top engine in 2016[1]. During the last five years, Stockfish has thus gained about 80 Elo per year.
Stockfish 14 evaluates positions more accurately than Stockfish 13 as a result of two major steps forward in defining and training the efficiently updatable neural network (NNUE) that provides the evaluation for positions.
First, the collaboration with the Leela Chess Zero team - announced previously [2] - has come to fruition. The LCZero team has provided a collection of billions of positions evaluated by Leela that we have combined with billions of positions evaluated by Stockfish to train the NNUE net that powers Stockfish 14. The fact that we could use and combine these datasets freely was essential for the progress made and demonstrates the power of open source and open data [3].
Second, the architecture of the NNUE network was significantly updated: the new network is not only larger, but more importantly, it deals better with large material imbalances and can specialize for multiple phases of the game [4]. A new project, kick-started by Gary Linscott and Tomasz Sobczyk, led to a GPU accelerated net trainer written in pytorch.[5] This tool allows for training high-quality nets in a couple of hours.
Finally, this release features some search refinements, minor bug fixes and additional improvements. For example, Stockfish is now about 90 Elo stronger for chess960 (Fischer random chess) at short time control.
The Stockfish project builds on a thriving community of enthusiasts (thanks everybody!) that contribute their expertise, time, and resources to build a free and open-source chess engine that is robust, widely available, and very strong. We invite our chess fans to join the fishtest testing framework and programmers to contribute to the project on github [6].
Stay safe and enjoy chess!
The Stockfish team
[0] https://tests.stockfishchess.org/tests/view/60dae5363beab81350aca077
[1] https://nextchessmove.com/dev-builds
[2] https://stockfishchess.org/blog/2021/stockfish-13/
[3] https://lczero.org/blog/2021/06/the-importance-of-open-data/
[4] e8d64af1
[5] https://github.com/glinscott/nnue-pytorch/
[6] https://stockfishchess.org/get-involved/
Stockfish 13
It is our pleasure to release Stockfish 13 to chess fans worldwide.
As usual, downloads are freely available at
The Stockfish project builds on a thriving community of enthusiasts
who contribute their expertise, time, and resources to build a free
and open-source chess engine that is robust, widely available, and
very strong. We would like to thank them all!
The good news first: from now on, our users can expect more frequent
high-quality releases of Stockfish! Sadly, this decision has been
triggered by the start of sales of the Fat Fritz 2 engine by ChessBase,
which is a copy of a very recent development version of Stockfish
with minor modifications. We refer to our statement on Fat Fritz 2
and a community blog for further information.
This version of Stockfish is significantly stronger than any of its
predecessors. Stockfish 13 outperforms Stockfish 12 by at least
35 Elo. When playing against a one-year-old Stockfish, it
wins 60 times more game pairs than it loses. This release features
an NNUE network retrained on billions of positions, much faster network
evaluation code, and significantly improved search heuristics, as
well as additional evaluation tweaks. In the course of its development,
this version has won the superfinals of the TCEC Season 19 and
TCEC Season 20.
Going forward, the Leela Chess Zero and Stockfish teams will join
forces to demonstrate our commitment to open source chess engines and
training tools, and open data. We are convinced that our free and
open-source chess engines serve the chess community very well.
Stay safe and enjoy chess!
The Stockfish team
Stockfish 12
It is our pleasure to release Stockfish 12 to users world-wide
Downloads will be freely available at
https://stockfishchess.org/download/
This version 12 of Stockfish plays significantly stronger than
any of its predecessors. In a match against Stockfish 11,
Stockfish 12 will typically win at least ten times more game pairs
than it loses.
This jump in strength, visible in regular progression tests during
development[1], results from the introduction of an efficiently
updatable neural network (NNUE) for the evaluation in Stockfish[2],
and associated tuning of the engine as a whole. The concept of the
NNUE evaluation was first introduced in shogi, and ported to
Stockfish afterward. Stockfish remains a CPU-only engine, since the
NNUE networks can be very efficiently evaluated on CPUs. The
recommended parameters of the NNUE network are embedded in
distributed binaries, and Stockfish will use NNUE by default.
Both the NNUE and the classical evaluations are available, and
can be used to assign values to positions that are later used in
alpha-beta (PVS) search to find the best move. The classical
evaluation computes this value as a function of various chess
concepts, handcrafted by experts, tested and tuned using fishtest.
The NNUE evaluation computes this value with a neural network based
on basic inputs. The network is optimized and trained on the
evaluations of millions of positions.
The Stockfish project builds on a thriving community of enthusiasts
that contribute their expertise, time, and resources to build a free
and open source chess engine that is robust, widely available, and
very strong. We invite chess fans to join the fishtest testing
framework and programmers to contribute on github[3].
Stay safe and enjoy chess!
The Stockfish team
[1] https://github.com/glinscott/fishtest/wiki/Regression-Tests
[2] 84f3e86
[3] https://stockfishchess.org/get-involved/