0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Deep Blueは本当に要ったのか——200MHz Pentium ProでStockfishがKasparov級に届くまで

0
Posted at

1996〜97年にIBMのDeep Blueがカスパロフを破った出来事は、長く「専用機と総力戦の勝利」として語られてきた。だが、Nicholas Carlini は2026年の記事で、その前提を揺さぶる。200MHz の Pentium Pro に現代版 Stockfish を載せると、クラシカルな持ち時間で Elo 3300 前後に届くというのだ。もしそれが本当なら、勝敗を分けたのは巨大な専用ハードではなく、アルゴリズムの積み重ねだったことになる。

画像: nicholas.carlini.com より
画像: nicholas.carlini.com より

Deep Blue 側の条件を見直すと、この問いはますます面白くなる。Carlini の記事によれば、勝った方の改良版 Deep Blue は 30 個の P2SC プロセッサに加え、480 個のカスタム VLSI チェス・コプロセッサを積み、毎秒 2億局面超を解析していた。しかも 1996年の対戦では1局勝っただけで、マッチとしての勝利は 1997年の再戦だった。つまり「人類初の世界王者撃破」は、計算資源だけでなく、IBM が専用に積み上げた設計判断の結果でもあった。

一方で、Pentium Pro は 1995年発売の量産CPUだ。Wikipedia では 200MHz 版が確認でき、仮想アドレス幅は 32bit だ。Carlini が使ったのは 64MB の RAM を備えた実機で、そこに Stockfish を合わせた。Deep Blue のような独自チップ群はない。あるのは、当時のデスクトップでも動かせる範囲のハードだけだ。そこでどこまで近づけるのか、というのがこの記事の入口になる。

1996年の勝敗を、今の目で見直すと何が変わるか

画像: en.wikipedia.org より
画像: en.wikipedia.org より

チェスエンジンの強さは、ざっくり言えば「たくさん読む」「読む手を選ぶ」「読んだ先をうまく評価する」の掛け算で決まる。人間は後ろ二つで勝負するが、古いエンジンは前者、つまり力任せの探索に寄りがちだった。Deep Blue も当時としては巨大な探索力を誇ったが、現代の Stockfish は同じ土俵でさらに別の工夫を重ねている。盤面の見方、手の絞り方、深さの配分が違う。

ここで重要なのは、ハードの速さがそのまま強さではないことだ。Carlini の記事では、1996年の Crafty をそのまま Pentium Pro で走らせると、1手1秒で Elo 1999 程度、10秒で 2383 程度にとどまる。一方で同じ Crafty に現代的な探索や評価の考え方を足すと、Pentium Pro 上でも 1手1秒で 2718、10秒で 2974 まで伸びる。CPU を取り替えなくても、プログラムの中身を変えるだけでかなり差がつく。

この差は、当時の人にとっては直感に反するはずだ。1996年の「強いコンピュータチェス」は、どうしてもスーパーコンピュータ的なものに見えた。だが現代の観点では、探索木の切り方や評価関数の設計改善のほうが、クロック周波数の増加より大きく効く場面がある。もしアルゴリズムの進化が主因なら、Deep Blue の象徴性は失われないにせよ、「あれほどの専用機が必須だったのか」という見方は崩れる。

もう少し踏み込むと、この記事の面白さは「1996年のハードで、2026年の知識をどこまで圧縮できるか」にある。昔のエンジンが持っていなかった知見を移植すると、古いCPUでも急に強くなる。つまり時代を飛び越えるのは計算機ではなく、ソフトウェア側の工夫だ。ここで、NNUE のような仕組みが効いてくる。だが、その中身はまだ見えない。

ふつうの探索では足りない理由

NNUE は、チェスや将棋の盤面評価に使う「効率よく更新できるニューラルネットワーク」だ。Chess Programming Wiki では、盤面の各駒・色・マスの組み合わせを入力にし、局面が少し動いただけなら全体を再計算せずに差分だけ更新できる、と説明されている。要は「毎回ゼロから考え直す」のではなく、「前の考えを少しだけ直す」仕組みだ。これが古いCPUでは特にありがたい。

Stockfish の説明でも、2020年の NNUE 採用が大きな転機として扱われている。従来の手作り評価から、ニューラルネット中心の評価へ移ることで、探索の土台そのものが変わった。しかもその評価は、巨大なGPU前提ではなく、CPU上での高速な差分更新を前提にしている。Pentium Pro のような古いマシンでも、工夫次第で意外なほど回る余地があるわけだ。

Crafty の項目を見ると、比較対象としての古さもよく分かる。Crafty は 90年代から続くエンジンで、ローテーテッド・ビットボードや並列探索を先駆けて使い、現在の版は PVS や null move pruning、LMR なども備える。ただし、Carlini が使った 1996年の 11.13 は、現代的な改良を全部入れたものではない。Carlini はそこに、現代の探索改善や NNUE の考え方を足し込んでいく。すると、同じ 200MHz でも結果が変わる。古い骨格のままでも、評価と探索の要所を押さえれば伸びるという示唆だ。

Pentium Pro 側の制約も、単なる昔話ではない。Wikipedia によれば、P6 の仮想アドレス幅は 32bit(物理アドレスは 36bit)で、L1 は 8KB ずつ、L2 は 256KB から 1MB。しかも 1サイクルにさばける命令や、実行ユニットの組み合わせにも制約がある。こうした条件では、現代CPUのような雑な力押しは利かない。だからこそ、探索の無駄を減らす設計が効く。速いCPUでは埋もれる差が、古いCPUでは前面に出る。

その古いCPUに、どうやって現代のエンジンを載せるのか

この記事が面白いのは、単なる懐古ではなく、実際に1995年のハードをネット接続してしまうところだ。Pentium Pro は 64MB の RAM しかないし、OS もフロッピーから起動している。Carlini はそこに、ネットワークカードを初期化する小さな仕組みを載せ、外側の現代マシンから局面を送れるようにしている。FEN 文字列を受け取り、持ち時間を受け取り、考えた手を返す。かなり割り切った構成だ。

Stockfish をそのまま持っていくのは無理がある。PPro は 32bit 機なので、まずは 32bit 演算に合わせる必要があるし、メモリも 64MB を超えられない。さらに現代版 Stockfish は、今のCPUの挙動を前提に細部が組まれている。だから単純移植ではなく、Pentium に合わせてアルゴリズムや実装を調整する必要がある。ここで初めて「古いハードに現代ソフトを移す」作業の本当の面倒さが見える。

それでも、Carlini の実験では成果が出ている。最初の素朴な移植でも、1手1秒で Elo 2496 程度、10秒で 2940 程度。そこから Pentium 向けの調整を重ねると、1手1秒で 2846、10秒で 3109、30秒で 3180 まで伸びる。30秒時点で 3180 なら、クラシカルな対局ではさらに上がるはずだ、と著者は外挿している。だが、その計算の内訳は、まだここでは追わない。

この時点で見えてくるのは、勝負を決めるのが「専用機かどうか」ではなく「探索の賢さ」へ移っていることだ。Deep Blue は確かに驚異的だったが、もし同年代の市販CPUに、後年の知見を入れたエンジンを載せられたなら、話はかなり違っていたはずだ。実際、Carlini は現代の Ryzen 7 で動く 1996年の Crafty と、Pentium Pro 上の Stockfish の対戦まで見せている。100局で 78勝17分5敗。だが、なぜそこまで差がつくのかは、まだ言い切っていない。

「3300」の一言の重みが、まだ全部は見えていない

Elo 3300 という数字は、ただ高いというだけではない。Wikipedia でも、Stockfish は長年世界最強クラスのエンジンとされ、Fishtest による継続的な改良を重ねてきた。ただ、エンジンの Elo は対局条件に依存する。つまり 3300 は、単なる気分の良い数字ではなく、対局条件や推定方法に依存する目安だ。だからこそ、どう測ったかが重要になる。

Carlini の記事では、30秒1手で 3180 ± 80 と測り、そこからクラシカルな持ち時間へ外挿して 3300 ± 87 を見積もっている。だが、どのくらいの増分を、どの時間帯から、どう伸びるとみなしたのかまでは、ここではまだ追わない。そこを解くと、Pentium Pro の遅さがむしろ有利に見える理由や、NNUE と探索改善のどちらが効いているのか、さらに細かく分かれてくる。

この先で本当に知りたいのは、古いCPUでも勝てた「からくり」そのものだろう。なぜ 200MHz で足りたのか。なぜ Deep Blue のような専用ハードを使わなくてもよかったのか。どこまでが探索改良で、どこからが評価関数なのか。Elo 3300 の根拠はどこにあり、どこまでが安全な見積もりなのか。その答えを出すには、もう少し盤面の内側へ入る必要がある。

👉 続き(核心はここから)は PaPoo で読めます: https://papoo.work/doc/79ed04dd119edc57

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?