Ask HN: Discrepancy between Lichess and Stockfish
I’m trying to understand a discrepancy between Lichess’s analysis board and my own Stockfish setup.
On Lichess (browser-based analysis), Stockfish reports close to 1 MN/s on my Redmi Note 14 Pro. However, when I run Stockfish locally via a Python program using the native executable, I only see around 600 kN/s.
What’s confusing is that despite the higher reported speed, Lichess takes about 2:30 to reach depth 30, while my local setup reaches depth 30 in about 53 seconds, even though it reports a lower N/s. Lichess also appears much more “active” in terms of frequent evaluation updates.
I suspect this has to do with how N/s is measured or displayed (instantaneous vs average), differences in search configuration (continuous search vs restarts, MultiPV, hash reuse), or overhead from the way the engine is driven (e.g., UI or I/O throttling). It also raises the question of whether “depth 30” is directly comparable across different frontends.
Has anyone looked into how Lichess reports Stockfish speed, or why a setup showing higher N/s can still take significantly longer to reach the same nominal depth? Hi, I work on Stockfish! Likely what's going on is that your Lichess instance is running in MultiPV mode, which displays the top N moves (5 by default, iirc). This can be useful for analysis, but it leads to more time exploring disfavored lines, and therefore lower depth. The desktop version defaults to MultiPV = 1. I also work on Stockfish, that is not the reason. The reason is because the SF17.1 is functionally different, there is no way to get these to match without changing the net option to be the same as the stockfish binary. See https://tests.stockfishchess.org/tests/view/69515c60572093c1...
and https://github.com/lichess-org/lila/pull/18671 Viren's been around a lot longer than I have, so I'd trust him instead ;) You can actually run the large net in Lichess (by selecting the larger engine in the dropdown) which would be dispositive. I don't work on Stockfish, but I can suggest using ShashChess instead. It is Stockfosh, but on top of that, it has been improved to capture the spirit of the human ingenuity and creativity. Most of Lichess is open source, have you tried looking there to see how Lichess interacts with Stockfish? https://github.com/lichess-org Confirm in the network tab that you are going 100% local on lichess. My shot in the dark (I don’t contribute to their codebase) is that you’re offloading some analysis to Fishnet[1] I would rule that out first One other thing I dug up that may help: https://lichess.org/forum/lichess-feedback/groundbreaking-im... Lichess uses a smaller net by default. Default lichess net is custom made by stockfish to be small The lichess one might be in "multi-line" mode Have you compared the versions of Stockfish in each? In Lichess I think you can also choose different eval nets. There's a small one and a big one. That will affect N/s. Have you compared how many threads each are using? Furthermore, Lichess Stockfish is a WASM build while your local Stockfish is a native binary executable. Many have already mentioned number of variations will significantly affect time to a certain depth. You may want to ask in the Stockfish discord: https://discord.com/invite/GWDRS3kU6R