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?
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
The lichess one might be in "multi-line" mode
You may want to ask in the Stockfish discord: https://discord.com/invite/GWDRS3kU6R
Lichess uses a smaller net by default. Default lichess net is custom made by stockfish to be small
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.