跳到主内容
@wquguru
精选88Hacker News Best(web_list)论文研究

Nicholas Carlini:现代棋引擎在1996年奔腾上可胜卡斯帕罗夫

Could a modern chess engine on a Pentium have defeated Kasparov in 1996?

原文
发到 X
推荐理由

用严谨的实验量化了算法进步对AI能力的贡献,结论颠覆常识,极具参考价值。

Main Papers Talks Code Writing

主论文 演讲 代码 写作

Writing

写作

Could a modern chess engine on a Pentium have defeated Kasparov in 1996?

一台奔腾处理器上的现代国际象棋引擎能在1996年击败卡斯帕罗夫吗?

by Nicholas Carlini 2026-11-01

作者:Nicholas Carlini 2026-11-01

On February 10th, 1996, a computer program (IBM's Deep Blue) defeated the reigning chess champion (Garry Kasparov) in a game of chess for the first time. Deep Blue would go on to lose the match, but a year later, would get its revenge in a 3.5-2.5 rematch.

1996年2月10日,一个计算机程序(IBM的深蓝)在一场国际象棋比赛中首次击败了当时的卫冕冠军(加里·卡斯帕罗夫)。深蓝随后输掉了整场比赛,但一年后,它在3.5比2.5的复赛中报了仇。

In order to achieve this feat, IBM spent several million dollars on research and development building a special-purpose computer specifically for this purpose. Deep Blue itself (the victorious, upgraded version) was powered by 30 P2SC processors each running at roughly 120 MHz, and (most importantly) 480 custom VLSI chess co-processors used to perform chess-specific operations like move generation and position evaluation. When it was built, Deep Blue was the 259th most powerful supercomputer in the world, and could analyze over 200 million chess positions per second.

为了实现这一壮举,IBM花费了数百万美元用于研发,专门为此目的建造了一台专用计算机。深蓝本身(获胜的升级版)由30个P2SC处理器驱动,每个处理器的运行频率约为120 MHz,以及(最重要的是)480个定制的VLSI国际象棋协处理器,用于执行生成着法和评估局面等与国际象棋相关的操作。在建成时,深蓝是当时世界上第259强大的超级计算机,每秒可分析超过2亿个国际象棋局面。

But was Deep Blue necessary to beat Kasparov? Or could we have gotten away with an off-the-shelf 1996 desktop running a smarter chess engine?

但是,击败卡斯帕罗夫真的需要深蓝吗?或者我们能否仅靠一台运行更聪明国际象棋引擎的1996年市售台式电脑就能做到?

As it turns out, we could easily have beaten Kasparov without building Deep Blue, using only commodity hardware, and it (almost certainly) wouldn't have even been close. I know this because, as I write this very sentence, I have sitting next to me a 200 MHz Intel Pentium Pro (released exactly 31 years ago---November 1st, 1995) with 64MB of RAM running a custom port of Stockfish that plays at an estimated Elo of 3300 ± 87 at classical time controls---far beyond the strength of any human, or indeed Kasparov's Elo of just under 2800. But wait, there's more! I've hooked this machine up to the internet with a Realtek RTL8139C Ethernet card, so you can play it below!

事实证明,我们完全可以不使用深蓝而轻松击败卡斯帕罗夫,仅使用商用硬件即可,而且结果甚至可能不是势均力敌。我之所以知道这一点,是因为当我写下这句话时,我身边放着一台200 MHz的Intel Pentium Pro处理器(正好发布于31年前的1995年11月1日),配备64MB内存,并运行着一个定制移植版的Stockfish引擎,其在古典时限控制下的估计Elo等级分高达3300 ± 87——远超任何人类棋手,当然也远超卡斯帕罗夫略低于2800的Elo等级分。但别急,还有更多!我已通过一块Realtek RTL8139C以太网卡将这台机器连接到互联网,因此你可以在下面与它对弈!

copy link Analyze on lichess

复制链接 在lichess上分析

← All games

← 所有对局

Connecting to the Pentium…

正在连接至奔腾处理器…

Resign

认输

Other games in progress

其他进行中的对局

Play vs. the Pentium

与奔腾处理器对弈

The Pentium Pro's monitor, live (its VGA text screen, refreshed every second)

奔腾处理器的显示器,实时画面(其VGA文本屏幕,每秒刷新一次)

wait, what?! how??

等等,什么?!怎么会??

There are three ways to get stronger at chess: you can analyze more moves, analyze better moves, or analyze moves better. Famously, humans improve by doing the latter two: the average chess grandmaster during a classical game will analyze roughly the same number of moves as an amateur player, but they analyze only the most critical moves and do a better job with that analysis. Chess engines like Stockfish, running on silicon instead of our human brains, dominate us at the first of these and analyze millions of positions per second. And because there's not that much room for micro-optimizations on modern engines that will let a given CPU process more positions per second, most progress in chess AI also tends to follow how humans improve and finds better methods for selecting moves and analyzing boards.

提升国际象棋水平有三种方法:你可以分析更多的着法,分析更好的着法,或者更好地分析着法。众所周知,人类通过后两种方法进步:在古典赛中,普通国际象棋特级大师分析的着法数量与业余棋手大致相同,但他们只分析最关键的那些着法,并且分析得更好。像 Stockfish 这样的国际象棋引擎运行在硅芯片而非我们的人类大脑上,在这第一种方法上碾压了我们,每秒能分析数百万个局面。由于在现代引擎中,能让给定 CPU 每秒处理更多局面的微优化空间已经不大,因此国际象棋 AI 的大多数进展也倾向于遵循人类的进步方式,即寻找更好的选着和局面分析方法。

Skill in chess is measured by an Elo score. A difference of 200 Elo means that you should expect the stronger player to win three out of every four games, and multiplicatively from there: a 400 Elo gap corresponds to a 90% expected score and a 1000 Elo gap gives a 99.7% expected score. The best chess engines that you could run on commodity 1996 hardware were rated roughly 2300 Elo. Deep Blue was rated 2700. In contrast, modern Stockfish is rated closer to 3700.

国际象棋技能通过 Elo 等级分来衡量。Elo 相差 200 分意味着你应预期强方每四局赢三局,并以此类推:400 分的差距对应 90% 的预期得分率,而 1000 分的差距则给出 99.7% 的预期得分率。你可以在消费级 1996 年硬件上运行的最佳国际象棋引擎的等级分约为 2300。Deep Blue 的等级分为 2700。相比之下,现代的 Stockfish 等级分更接近 3700。

This raises the question: how much of the advantage of a modern chess engine comes down to the fact that a modern desktop computer is extremely fast, and how much of the advantage comes down to the fact that we've just gotten better at programming chess engines? As it turns out, the majority of the Elo gains (+720 of the +1335 gained) can be attributed to better programming, and not better hardware.

这就引出了一个问题:现代国际象棋引擎的优势有多少归因于现代桌面计算机极其快速这一事实,又有多少归因于我们在编程国际象棋引擎方面变得更强这一事实?事实证明,大部分 Elo 增益(在获得的 +1335 分中有 +720 分)可归因于更好的编程,而非更好的硬件。

To test this, I ran two experiments. The first experiment uses Crafty, a competitive engine from 1996 whose source code is now available. On my Pentium Pro, the 1996 build of Crafty version 11.13 has an Elo of 1999 ± 90 at 1 second per move, and 2383 ± 77 at 10 seconds per move. On modern hardware (a Ryzen 7) this engine's Elo jumps massively to 2614 ± 97 at the same 1 second per move. But if I take this engine and slowly start to add all the knowledge we have about how to design better chess engines---adding modern search algorithms like fail-soft, LMR, correction history; adding better quiescence methods; and adding neural-net evals (NNUE)---then you can increase the Elo up to 2718 ± 34 on the Pentium Pro at 1 second per move, and 2974 ± 74 at 10 seconds per move.

为了测试这一点,我进行了两项实验。第一个实验使用了 Crafty,这是一款来自 1996 年的竞争性引擎,其源代码现已公开。在我的 Pentium Pro 处理器上,Crafty 版本 11.13 的 1996 年构建版在每步 1 秒时 Elo 为 1999 ± 90,在每步 10 秒时为 2383 ± 77。在现代硬件(Ryzen 7)上,该引擎的 Elo 跃升至每步 1 秒时为 2614 ± 97。但是,如果我使用这个引擎,并逐步加入我们对如何设计更优国际象棋引擎的所有知识——例如添加现代搜索算法如 fail-soft、LMR、修正历史;添加更好的静默性搜索方法;以及添加神经网络评估(NNUE)——那么你可以在 Pentium Pro 上将 Elo 提升至每步 1 秒时为 2718 ± 34,每步 10 秒时为 2974 ± 74。

In the second experiment I go somewhat further: instead of trying to update Crafty, let's just try to get Stockfish---the best chess engine today---running on 1996 hardware and see how it does. This takes some work and is mainly a matter of rewriting the code so that it uses 32-bit arithmetic (a PPro is a 32-bit machine) and doesn't use more than 64MB of RAM. This naive port has an Elo of roughly 2496 ± 64 at 1 second per move (2940 ± 76 at 10 seconds per move). But we can do better! A modern Stockfish engine is designed to run on a modern CPU. By making a number of adjustments to the algorithm and tuning it to the Pentium, we can increase its Elo to 2846 ± 35 at 1 second per move, 3109 ± 79 at 10 seconds per move, and 3180 ± 80 at 30 seconds per move.

在第二个实验中,我走得更远一些:与其尝试更新 Crafty,不如直接尝试让当今最强的国际象棋引擎 Stockfish 在 1996 年的硬件上运行,看看它的表现如何。这需要做一些工作,主要是重写代码以使用 32 位算术运算(PPro 是一台 32 位机器),并且不使用超过 64MB 的内存。这个朴素的移植版本在每步棋 1 秒时的 Elo 评级约为 2496 ± 64(每步棋 10 秒时为 2940 ± 76)。但我们还能做得更好!现代 Stockfish 引擎是为在现代 CPU 上运行而设计的。通过对算法进行多项调整并将其针对 Pentium 进行调优,我们可以将其 Elo 评级提高到每步棋 1 秒时 2846 ± 35,每步棋 10 秒时 3109 ± 79,每步棋 30 秒时 3180 ± 80。

The most concise way to summarize all of the above is just to have them play a match of 100 games against each other. And when I do this, I find that a modern chess engine running on a 1996 Pentium Pro wins 78, draws 17, and loses 5 games against the 1996 Crafty engine running on modern hardware.

总结上述所有内容最简洁的方式就是让它们互相进行一场 100 局的对弈。当我这样做时,我发现运行在现代硬件上的 1996 年 Crafty 引擎与运行在 1996 年 Pentium Pro 上的现代国际象棋引擎对弈的结果是:后者赢了 78 局,平局 17 局,输了 5 局。

The remainder of this article provides the details.

本文的其余部分将提供详细信息。

Technical details: Hardware & OS

技术细节:硬件与操作系统

There's not much to say about the hardware, to be honest. I bought a used ("vintage" said the listing; I feel old.) desktop PC with standard period-appropriate hardware. The desktop is running a 200 MHz Intel Pentium Pro connected to an Intel VS440FX motherboard with 64MB of SIMM RAM clocked at 66 MHz. The operating system boot off of a 1.44MB 3.5 inch floppy disk, and connect to the Internet via a Realtek RTL8139C. I also have a 1MB Trio64V+ graphics card connected over VGA to my monitor, with input coming from a PS/2 keyboard---but I don't much use either of those and instead communicate with it over a serial port connected to my modern desktop.

老实说,关于硬件没什么好说的。我买了一台二手( listings 上称其为“复古”;这让我觉得自己老了)台式电脑,配备了符合当时标准的硬件。该台式机运行着一块 200 MHz 的 Intel Pentium Pro 处理器,连接至带有 64MB SIMM 内存(时钟频率为 66 MHz)的 Intel VS440FX 主板。操作系统从一张 1.44MB 的 3.5 英寸软盘启动,并通过 Realtek RTL8139C 网卡连接互联网。我还有一张 1MB Trio64V+ 显卡通过 VGA 连接到我的显示器,输入来自 PS/2 键盘——但我并不怎么使用这些设备,而是通过连接到现代台式机的串行端口与之通信。

For those readers who may not be able to appropriately contextualize this hardware, a 200 MHz Pentium Pro sold for $1,325 at launch in November 1995, and four 16 MB SIMMs would have cost about $2,000. Add on the other peripherals, and this machine would likely have gone for about four or five thousand dollars. So it's a nice workstation, but by no means a supercomputer. However, given the rate of depreciation and the exponential rate of improvements to hardware, this same machine in 1997, when the second match occurred, would likely go for just a thousand dollars (because who would want to buy a Pentium Pro when the better-in-almost-every-way Pentium MMX was now available for just $400?)

对于那些可能无法恰当地将这种硬件置于历史背景中的读者来说,一块 200 MHz 的 Pentium Pro 在 1995 年 11 月发布时的售价为 1,325 美元,而四条 16 MB 的 SIMM 内存大约需要 2,000 美元。加上其他外设,这台机器的价格可能在四千到五千美元左右。因此,这是一台不错的 workstation(工作站),但绝非超级计算机。然而,考虑到折旧率以及硬件性能的指数级提升速度,在第二次对弈发生的 1997 年,同样的机器可能只值一千美元左右(因为当几乎各方面都更优的 Pentium MMX 仅需 400 美元即可购得时,谁还会想买 Pentium Pro 呢?)

更进一步:量化金融体系

看懂新闻只是起点——沿量化金融路径,把它变成能交付的工程能力

进入量化体系 →

相似阅读

关联信息,但可能不是同一事件