6 ms·
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?
- frenchtoast8 8mo agoMost of Lichess is open source, have you tried looking there to see how Lichess interacts with Stockfish? https://github.com/lichess-org https://github.com/lichess-org
- eterm 8mo agoThe lichess one might be in "multi-line" mode
- agalunar 8mo agoYou may want to ask in the Stockfish discord: https://discord.com/invite/GWDRS3kU6R https://discord.com/invite/GWDRS3kU6R
- y-curious 8mo agoConfirm 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 1: https://lichess.org/get-fishnet https://lichess.org/get-fishnet
- y-curious 8mo agoOne other thing I dug up that may help: https://lichess.org/forum/lichess-feedback/groundbreaking-improvement-of-local-analysis https://lichess.org/forum/lichess-feedback/groundbreaking-im...
- deleted 8mo ago[deleted]
- anematode 8mo agoHi, 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.
- Viren6 8mo agoI 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/69515c60572093c1986da0d6 https://tests.stockfishchess.org/tests/view/69515c60572093c1... and https://github.com/lichess-org/lila/pull/18671 https://github.com/lichess-org/lila/pull/18671
- anematode 8mo agoViren'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.
- tsoj 8mo agoI 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.
- deleted 8mo ago[deleted]
- Viren6 8mo agoLichess uses a smaller net by default. Default lichess net is custom made by stockfish to be small
- grumpopotamus 8mo agoHave 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.
- HNLurker2 8mo ago[dead]
- deleted 8mo ago[deleted]