
2026/01/14 4:44
**Ask HN:** 「リチェスとStockfishの不一致」
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
現在の要約はすべての主要なポイントを明確かつ簡潔に捉えており、追加で変更する必要はありません。
本文
Lichess の解析ボードと自分のローカルで動かしている Stockfish との間に、速度に関する不一致があることを理解しようとしているんですね。
- Lichess(ブラウザベースの解析)では、Redmi Note 14 Pro 上で Stockfish が「約 1 MN/s」を報告します。
- それに対して、自分が Python スクリプトからネイティブ実行ファイルを呼び出して動かした場合は、「約 600 kN/s」しか見えません。
さらに混乱するのは、速度が高く報告されているにも関わらず、Lichess では深さ 30 に到達するまでに約 2:30(150 秒)かかる一方で、ローカル設定では同じ深さにたった 53 秒で到達し、しかもその際に報告されている N/s は低いという点です。Lichess の解析は評価値の更新頻度が非常に高く見えます。
この違いは以下のような要因によるものだと考えられます。
-
N/s の測定・表示方法
- Lichess は「瞬時速度(instantaneous)」を表示している可能性があります。
- Python から直接呼び出した場合は、平均値(average)が報告されるため、実際のピーク性能と差が生じます。
-
検索設定の違い
- Lichess は継続的に再探索を行う「continuous search」方式である一方、ローカルでは「search restart」や MultiPV の有無・ハッシュ再利用(hash reuse)などが異なる可能性があります。
-
エンジンの制御オーバーヘッド
- UI や I/O でのスロットリング(throttling)が影響する場合があります。Lichess の Web UI はリアルタイムに評価を更新するため、頻繁な通信が発生します。
-
「深さ 30」の定義
- フロントエンドごとに探索の停止条件やカウント方法が微妙に異なる場合があります。したがって、同じ数値でも実際には探査範囲が変わることがあります。
結論として、Lichess が「高い N/s」を報告しているにも関わらず、深さ 30 への到達時間が長くなるのは、上記のように測定方法・設定・オーバーヘッドの違いによるものと考えられます。もし詳細な検証を行いたい場合は、Lichess のソースコードや API を確認し、どのタイミングで N/s が計算されているかを調べると良いでしょう。