首页 The Thinking Machine - 黄仁勋
Seiok 🤸‍♂ Kim
取消

The Thinking Machine - 黄仁勋

Reading Jensen Huang's Biography.

黄仁勋是谁?

最近正在阅读 NVIDIA CEO 黄仁勋的传记《Thinking Machines》 (Witt et al., 2025) 。在序言中,我注意到了这样一句醒目的引言:

即使看似不可能的事情,也要反复练习。

马可·奥勒留·安东尼

NVIDIA 的早年岁月

有人说,创业故事中最令人振奋的部分,往往是从零开始的阶段。那么,黄仁勋的故事是如何开始的呢?

成功之母是绝境

我们公司距离倒闭只剩三十天。

多年来,黄仁勋经常用这句话作为向 NVIDIA 员工演讲的开场白。他认为,在开发 RIVA128(NV3)期间经历的“痛苦与磨难”,正是公司后来成功的重要基础。

1996 年年中,黄仁勋需要向世嘉(Sega)交付 NVIDIA 的 NV2 游戏主机原型机,以换取 100 万美元的付款。黄仁勋告诉世嘉,虽然 NVIDIA 因与微软结盟而不会参与 Dreamcast 的开发,但原型机的交付已经满足了合同中的技术条款,因此世嘉应当支付款项。他还补充说,如果拿不到这笔钱,NVIDIA 将面临破产。令人意外的是,世嘉最终无条件支付了这笔款项。

收到这笔钱后,黄仁勋立刻用公司最后的资金购买了一台仿真器(emulator)。在公司已经进入财务紧急状态的情况下,这无疑是一场危险的赌博。如果即将推出的 NV3 芯片中 350 万个晶体管里哪怕有一个出现偏差,都可能导致量产失败,并有可能彻底摧毁公司。

1997 年初,NV3 完成了 Tape-out 阶段,设计图纸被送往欧洲的一家半导体工厂进行生产。当年晚春,成品 NV3 芯片终于到达,并实现了流畅无瑕的每秒 30 帧显示效果。很难想象黄仁勋当时有多么激动。

RIVA128 NVIDIA RIVA 128 芯片

虽然 NV3 在很大程度上复制了已有功能,但它仍然包含以下创新:

  1. 数据从内存传输到处理器的速度达到 128 位,是当时行业标准的两倍。

  2. 它不仅能够加速电子游戏,还能够放大电子表格并播放 DVD。为了突出这种广泛的功能性,NV3 被命名为 “RIVA128”(Real-Time Interactive Video and Animation accelerator,实时交互视频与动画加速器)。

到了 1997 年 8 月产品正式上市时,NVIDIA 几乎已经弹尽粮绝。幸运的是,评测媒体对 RIVA128 给予了积极评价:

“每秒可渲染高达 500 万个三角形,这是金钱能够买到的最佳图形加速器。”

借助这些好评,NVIDIA 在发布后的前四个月内售出了超过 100 万块 RIVA 显卡。

图形战争的黎明

这里还有一个关于约翰·卡马克(John Carmack)的故事。

作为《Doom》和《Quake》的首席程序员,他被称为“代码外科医生(code surgeon)”。这意味着他会亲自剖析那些负责渲染自己畅销游戏的图形芯片内部结构。

尤其是卡马克团队,他们经常采用一些近乎黑客技巧的专有方法,而不是当时更常见的渲染算法来编写更高效的程序。其中最著名的例子之一便是 Fast Inverse Square Root(快速平方根倒数)算法,也就是《Quake III》中所使用的算法。

暂且略过细节,我们来看下面这个公式:

\[f(x) = \frac{1}{\sqrt{x}}\]

普通程序员可能会这样写:

1
2
#include <math.h>
float y = 1 / sqrt(x);

而卡马克团队写的是:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
float Q_rsqrt( float number )
{
	long i;
	float x2, y;
	const float threehalfs = 1.5F;

	x2 = number * 0.5F;
	y = number;
	i = * ( long * ) & y;
	i = 0x5f3759df - ( i >> 1);
	y = * (float * ) &i;
	y = y * ( threehalfs - ( x2 * y * y) );		// 1st iteration
//	y = y * ( threehalfs - ( x2 * y * y) );		// 2nd iteration, can be removed

}

事实上,它的精度达到约 99%,而运行速度却快了四倍。

关于这段奇怪代码背后的故事,我会在之后介绍。

此处真正重要的是,NVIDIA 高级工程师大卫·柯克(David Kirk)曾这样说道:

越来越明显的是,谁能够最好地渲染这款游戏(Quake),谁就能赢得图形战争。

David Kirk,NVIDIA

黄仁勋随后指示开发团队专门为约翰·卡马克设计一款全新的芯片。

卡马克最重视的特性之一是多个“像素着色器(pixel shader)”。这些算法负责计算《Quake》等游戏中每个像素的颜色。如果能够同时运行多个着色器,就可以在同一时间实现墙面光照反射和血迹纹理等效果。当然,这种双着色器架构需要两倍的计算能力。

当时图形加速器市场的霸主 3dfx 采用的方法是在同一块电路板上集成两颗图形芯片。而大卫和他的团队则选择了一条不同的道路——“并行计算(parallel computing)”。他们将像素着色任务拆分成两组数据,并在同一指令集下同时执行。黄仁勋起初对此持怀疑态度。

硅谷遍地都是过去那些并行计算平台公司的尸体。除了我们之外,从来没有一家并行计算公司真正成功过——一家都没有,零。

黄仁勋

这些“尸体”包括:

  • 西摩·克雷(Seymour Cray)开发的强大并行超级计算机价格过于昂贵,而且客户抱怨系统过于复杂。
  • Oracle 创始人拉里·埃里森(Larry Ellison)曾投资数百万美元的并行计算创业公司 nCube,也在 1990 年代末走向失败。

问题在于,并行编程本身极其困难。要同时处理两条或更多数据流,就必须频繁切换多个内存库,而这一过程异常复杂。因此,大多数并行计算公司最终被 Intel 挤出了市场。

1998 年 6 月,“RIVA TNT”正式发布。TNT 代表 “Twin Texels(双纹素)”,意味着由复杂切换机制控制的双像素渲染流水线。

约翰·卡马克对此兴奋不已,并称其为“完美的显卡”。他专门针对双流水线架构设计了《Quake III》,并向许多玩家推荐:Quake 系列在 NVIDIA 硬件上运行效果最佳。

卡马克看到了黄仁勋早已预见的未来:游戏将成为 NVIDIA 进入利润更高的工作站市场的跳板。

References

  1. Witt, S., Gebauer, S., & Verlag, C. (2025). The thinking machine: Jensen Huang, Nvidia und der begehrteste Mikrochip der Welt. Campus Verlag. https://books.google.co.kr/books?id=3un80AEACAAJ
本文由作者按照 CC BY 4.0 进行授权
文章内容

-

寻找可扩展的 Q-Learning