约翰·卡马克(John Carmack)总是对硬件设计师们感到失望。作为游戏《毁灭战士》与《雷神之锤》的首席程序员,他可是位编程高手,他对图形芯片的核心原理有深入研究。在为游戏中某个空间站点的走廊提供照明的问题上,多数程序员会选择使用现成的算法,但卡马克的团队却不同,他们通过解析底层变量的地址结构,开创了自己的解决方案。这要求卡马克在二进制层面设计信息流,有人称赞这是“你所见过的最优美的代码”。
卡马克一头金发,外形瘦削,并不特别擅长社交。他说话带有鼻音,语速快,在发表技术评论时,会不时夹杂着“嗯”的口头禅。编程时,他能一连数周与外界隔绝,每天在昏暗的卧室中工作长达14小时,而成果往往令人惊艳。他的代表作《雷神之锤》是首款热卖的三维射击类游戏,利用图形加速技术渲染多边形怪物,玩家可用钉枪射击这些怪物[游戏音效由特伦特·雷兹诺(Trent Reznor)制作]。续作《雷神之锤II》以血腥闻名,将玩家送往遥远的星球,与由人类尸体部件组成的僵尸化半机械人作战(这款游戏在我上大学一年级时发布,让我沉迷了好几年)。
这两款游戏都设有“死亡比赛模式”,支持多人对战。卡马克对《雷神之锤》的个性化调整,使得这款游戏在运行上比市面上的其他游戏更为顺畅。然而,在同一竞技场中同时渲染数十名角色,仍然是一个技术难题。卡马克曾向我透露:“我们期望《雷神之锤》能有更快的响应速度,让玩家能迅速出击,击败对手。但遗憾的是,目前大多数的硬件加速器都难以实现这一目标。”
对于黄仁勋而言,这却是一个难得的机遇。在位于森尼韦尔的英伟达办公室里,世嘉的游戏机被闲置在一旁。《雷神之锤》的魅力已经征服了所有人,员工们沉迷于游戏中,甚至在黄仁勋下令禁止白天进行死亡竞赛后,这股热情依然不减。像戴尔这样的PC制造商,更是直接将英伟达的图形加速器与其新电脑产品捆绑销售,跳过了零售外设的渠道。柯克对此表示:“趋势已经越来越明显,谁能最好地渲染这款游戏,谁就能在图形技术的竞争中脱颖而出。”为此,黄仁勋特地指派他的团队为卡马克打造一款全新的芯片——这款芯片对卡马克而言,就如同编程界的吉米·亨德里克斯(Jimi Hendrix) 获得了量身定制的Stratocaster吉他。
卡马克提出的一个需求,是希望能拥有多个像素着色器,用于为三维场景中的像素分配颜色的算法。通过同时运行多个着色算法,可以实现先用光源装饰墙壁,再用血迹进行点缀的效果。
然而,双重着色器的运用也意味着计算量将翻倍。当时,3dfx作为图形加速器市场的领头羊,是通过在同一张卡上配置两个图形芯片来解决这一问题的。但柯克和他的团队,构思了一个更为大胆的解决方案。如果你把像素着色分成两个数据集,并在同一块芯片上,同时在每条流水线上运行相同的指令集,会怎样呢?这种方法很适合图形渲染,因为它经常需要反复运行相同类型的计算。
起初,黄仁勋对此表示怀疑。这种被称为“并行计算”的方法,之前已有超级计算机供应商尝试过。“硅谷遍布并行计算平台公司失败的例子,”他说,“除了我们,没有别家并行计算公司被创立过——没有,一家也没有。”(他有时说话会稍显夸张。)但之后,黄仁勋开始从第一性原理进行推理。他猜测卡马克不会满足于仅有两个独立的像素管线。随着射击游戏日益复杂,他总会想要更多。想象一下,一个场景中有很多光源:灯光璀璨的竞技场、多把枪支同时开火、远处一艘宇宙飞船坠毁,还有一个双太阳照耀的世界。如果3dfx为每个光源都专门设计一块芯片,最终电路板上将满满当当。满足卡马克未来需求的唯一方法,就是在单块硅芯片上增加管线。
不过, 在做出决定之前,黄仁勋必须做好万全的准备。他得了解,这种方法过去为何屡试屡败。 西摩·克雷(Seymour Cray)所打造的强大并行超级计算机遭遇困境,客户对其高昂的成本及复杂性表达了不满。甲骨文的创始人拉里·埃里森(Larry Ellison)曾投资数百万美元于并行计算初创企业nCube,然而到了20世纪90年代末,这家公司也走向了失败。问题的核心在于并行编程的难度极大——同时处理两个或多个数据流需要在多个内存库间进行切换,学习难度非常大。这种情况使并行计算公司极易受到英特尔的攻击。
英特尔的芯片采用的是标准的串行方式,一次仅进行一个计算,但其性能却以惊人的速度增长,大约每18个月就能翻一番。这一预测最初由英特尔前CEO戈登·摩尔(Gordon Moore)在1965年提出,并多次得到实际验证,因而得名“摩尔定律” 。除了天气预报和高能物理等专业技术领域,摩尔定律认为,一台处理器——即全能的CPU,便足以满足即便是最为苛刻的用户需求。并行计算领域的专家比尔·戴利(Bill Dally)曾告诉我:“如果你有一款软件,并希望它能运行得更快,你有两种选择:你可以将它迁移到并行计算机上,重写100万行软件代码;或者,你也可以等待两年,让CPU的速度自然翻倍。”
摩尔定律已经蚕食了英伟达早期运营的外围电路板市场。在1993年的初步构想中,3D图形加速器本应是众多插入式附加卡中的一员,与声卡、网络卡、打印卡等并存。然而到了20世纪90年代末,英特尔已经将声音、网络和打印功能全部整合进了主板之中。
在这场技术变革中,唯有3D图形卡得以在遭受重创的生态系统中幸存下来。它们凭借对算力的旺盛需求立足;它们吸纳了所有可用的算力,并仍渴求更多。相比之下,多媒体PC的其他功能则显得有限——一旦音频处理质量达到了光盘的水准,便不再需要更多的算力。然而,对3D图形的需求始终存在。在使用3D图形时,只有做到极致,人们才会满足,就像置身于《黑客帝国》( Matrix )的世界中一样。“那是英特尔没有抓住的要点,图形公司还有很长的路要走。”莫斯曼说道,“那个领域对处理能力的需求几乎是无穷的。”CPU永远无法追上3D渲染的速度,不仅现在是这样,未来也是如此。即使其速度翻倍,也仍然远远不够。
1998年6月,Riva TNT面世。“TNT”是“双纹理单元”(twin texels)的缩写,它拥有由复杂切换机制所控制的双像素渲染管线。卡马克对Riva TNT赞不绝口,称其为“完美的显卡”。他还特地为双管线架构优化了《雷神之锤III:竞技场》,并推荐粉丝们在英伟达硬件上体验这款游戏,以获得最佳效果。卡马克也预见到了黄仁勋的预言:游戏将成为英伟达颠覆利润更丰厚的工作站市场的基石。“在许多情况下,TNT的表现确实超越了一台价值10 000美元的计算机。”卡马克如此评价。
而注意到这一点的程序员,并不止卡马克一个。除了从失败的初创公司中挑选精英员工,柯克现在还从硅图公司挖角人才。其中就包括转行至市场营销领域的前工程师丹·维沃利(Dan Vivoli)。维沃利借助TNT使英伟达成了一个知名品牌。有了卡马克的背书,客户们开始狂热追捧英伟达的产品,这引起了黄仁勋的注意。很快,他办公室里的阅读材料就堆满了关于市场营销的教科书。
英伟达从未直接向客户宣传TNT的并行算力——以免让他们感到困惑。相反,它利用了存在于计算机内部的某种幻想。这种幻想具有奇特而强大的吸引力。“矩阵”(Matrix)这一概念、一种共享计算的幻想,并非源自电影《黑客帝国》,而是出自威廉·吉布森(William Gibson)1984年的小说《神经漫游者》( Neuromancer )。在2011年接受《巴黎评论》采访时,吉布森谈到了他的灵感来源:
我曾路过一个电子游戏厅,当时,电子游戏是一种新兴行业。我看到孩子们在玩那些老式的、有着控制台风格的电子游戏。这些游戏在空间和透视的图形表现上非常原始。有些甚至没有透视,但却渴望表现出透视和立体感。即便在这种非常原始的形式中,玩游戏的孩子们也如此投入,仿佛他们渴望的是进入游戏的世界。
英伟达没有使命宣言(因为黄仁勋不相信这些),但吉布森的观察或许可以视作其使命。这个目标就是让玩家完全沉浸在数字世界中,这些世界以点彩画般的细腻细节呈现,仿佛能让现实消失无踪。吉布森从孩子们的肢体语言中直觉到了这一点,而黄仁勋则通过演绎推理重新发现了它。在英伟达看来,他们的工作只有在玩家真正生活在游戏世界中时才算完成。
然而,在进行分流操作时,英伟达的工程师们其实正涉足一场比他们所意识到的更为危险的游戏。原因在于,TNT内部潜藏着一个秘密—— 一个深藏不露、如同恶魔般的秘密,它沉睡在硅片架构的最深处,以至于黄仁勋、柯克、卡马克、维沃利,乃至世界上的任何一个人都未曾察觉到它的存在。 倘若你揭开那块TNT芯片的封盖,以显微镜仔细观察那裸露的电路,你会发现,其中所蕴含的不仅仅是晶体管排列上的变革,更是一场针对所有计算机的彻底颠覆,甚至有可能永远地改变全人类的发展轨迹。那块看似微不足道的芯片,实则承载着一个足以改变整个世界的惊天秘密。