top | item 46606715

Ask HN: Discrepancy between Lichess and Stockfish

21 points| HNLurker2 | 1 month ago

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?

11 comments

order

anematode|1 month ago

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.

Viren6|1 month ago

Lichess uses a smaller net by default. Default lichess net is custom made by stockfish to be small

eterm|1 month ago

The lichess one might be in "multi-line" mode

grumpopotamus|1 month ago

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.