\

Ask HN: Discrepancy between Lichess and Stockfish

20 points - yesterday at 7:44 PM


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?

  • anematode

    yesterday at 10:29 PM

    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

        yesterday at 10:52 PM

        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

          • anematode

            yesterday at 11:17 PM

            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.

            • tsoj

              yesterday at 11:34 PM

              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.

      • frenchtoast8

        yesterday at 9:42 PM

        Most of Lichess is open source, have you tried looking there to see how Lichess interacts with Stockfish? https://github.com/lichess-org

        • y-curious

          yesterday at 10:00 PM

          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

          1: https://lichess.org/get-fishnet

        • grumpopotamus

          today at 1:59 AM

          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.

          • eterm

            yesterday at 9:50 PM

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

            • yesterday at 10:14 PM

              • Viren6

                yesterday at 10:39 PM

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

                • agalunar

                  yesterday at 9:56 PM

                  You may want to ask in the Stockfish discord: https://discord.com/invite/GWDRS3kU6R

                  • yesterday at 10:36 PM

                    • HNLurker2

                      today at 10:32 AM

                      [dead]