郑胜辉学习与思考第2911天
这本书主要讲述的,就是英伟达公司这样一个让发烧友玩游戏更快的硬件厂商,是如何成长为当前炙手可热的人工智能芯片公司的。在这个过程中的各种曲折故事、惊心动魄的决策时刻与精心布局,以至于幸运机遇的垂青,会给我们带来很多启发。
这本书的作者斯蒂芬·威特,凭借黄仁勋给予极大的访问权限,多次采访了黄仁勋本人与他的家人、朋友、联合创始人、合作伙伴以及英伟达员工将近200人,给我们呈现了一个更加真实的黄仁勋和英伟达。
今天的解读,不仅限于书中的内容,而是会把本书的主题相关的重要技术理论融入本书的解读中去。帮你更好地理解黄仁勋的思考方式背后的原理,也能从更大视角上看清AI算力背后的发展脉络。

第一节,英伟达的建立。
1983年,黄仁勋大学毕业后,20岁便加入了AMD公司担任芯片工程师。两年后又加入了另外一家位于硅谷的创新公司巨积公司(LSI Logic)。因为业绩出色,他多次获得晋升。
在巨积公司任职期间,黄仁勋结识了两位太阳微系统公司的芯片设计师,普里姆和马拉科夫斯基,并且通过与他们合作促成了太阳微系统公司在1989年推出的Sun GX。Sun GX是三维图形处理器。以前,一个设计师如果要设计一个汽车模型,最初给出的只是简单的“线框骨架”,而Sun GX可以在这个框架基础上,迅速绘制汽车金属表面、车漆纹理等,帮助设计师预览模型,并在此基础上进一步调整外观或结构。
而那两位芯片设计师有一个想法,就是把Sun GX移植到个人电脑上。因为个人电脑有一个特别的应用:游戏渲染。渲染(Rendering)是游戏视觉的核心技术。电脑游戏中的那些精美的动画,包括日夜交替的光影效果等等都是通过实时渲染来实现的。
渲染所需要的计算量很大。当时个人电脑的中央处理器(CPU)无法负担这样的计算量,因此常用的做法就是在电脑主板上设置一个特定的插槽,插槽里插的是专门为渲染任务外置电路板,上面的核心部件就是一个图形芯片,来执行渲染的任务。
我们现在都知道,这个电路板被业界称为“图形加速卡”,又叫显卡。然而,他们这个提议却遭到了太阳微系统公司管理层的拒绝。这两人决心自己动手开发这款面对普通用户的电子游戏芯片。然而,两人知道自己都不擅长管理业务,于是在1992年,他们找到了之前合作过的黄仁勋。
经过很长时间的思考,黄仁勋终于说服了自己。1993年,黄仁勋与这两人一起成立了英伟达公司。黄仁勋担任CEO,普里姆出任CTO,马拉科夫斯基则担任工程副总裁的职位。

第二节,失败的NV1和成功的NV3。
在英伟达成立之后,公司迅速开始开发其首款显卡产品NV1。为了与市场上其他显卡产品区分开来,他们在NV1的设计中采用了一种与主流不同的渲染方法。
为了更好地理解NV1的技术特点,我们先简单介绍一下图形渲染的基本原理。游戏设计师需要为每个游戏中的对象构建三维模型,但玩家在电脑屏幕上看到的形象是二维的。因此,渲染的核心任务是将三维模型的表面信息投影到二维平面,并计算每个像素点的颜色。这些颜色会综合考虑光源、材质等复杂因素。
不过,直接计算三维模型表面上每个像素点的渲染信息是非常耗时且复杂的。所以为降低计算量,行业普遍采用一种高效的分解方法——三角形渲染框架。这个框架的核心思想是将三维模型的表面分解成一个个小的三角形。你可以打开文稿看一下对应的图。为什么使用三角形呢?原因在于三角形是构成平面的最简单几何形状,同时计算机对三角形的处理效率极高,相关优化算法也十分成熟。

然后在渲染的时候,依次执行下面几步。
第一步叫做顶点着色(Vertex Shading):处理三角形的顶点信息,这一步的主要工作是计算3D模型中每个三角形顶点在二维屏幕位置,然后根据光源的位置、类型以及材质的反射特性,计算每个三角形顶点的光照强度和颜色。
第二步叫光栅化(Rasterization)。刚才只是得到了三角形顶点在二维屏幕的位置和颜色,这一步是根据刚才的三角形顶点信息,确定三角形内部所有的点在二维屏幕的位置。
第三步叫做像素着色(Pixel shading)。我们找到了一个三角形顶点的位置以及该三角形内部的像素位置,那么下一步就是要对这些像素进行着色。通常,这一步通过插值算法,根据三角形三个顶点的光照、颜色等信息,计算出来该三角形内部所有像素点颜色和纹理信息,从而生成高质量的二维图像。这一步是由像素着色器(Pixel Shader)完成的。
刚才这个过程,你没记住也没关系,关键在于,我们可以看到,渲染本质上就是大量的数学计算。
然而,普里姆在设计NV1时,并没有采用基于三角形的渲染框架,而是采用了一种名为二次纹理映射(Quadratic Texture Mapping)的方法。这个方法通过二次方程直接处理曲面的形状和纹理,将纹理直接映射到复杂的弧形面上。和三角形的渲染方式相比,二次纹理映射的方法尽管要耗费更多计算资源,但是得到的物体和人物表面看起来更加平滑。
NV1于1995年秋季正式发售,此时,诸多热门游戏涌入市场,玩家对新显卡的需求激增,NV1销量表现良好,甚至超过了黄仁勋的预期,前景一片光明。
然而,问题在NV1发布后不久逐渐显现出来。由于NV1采用的二次纹理映射方法和当时主流的基于三角形渲染框架不兼容,导致大多数游戏开发者无法顺利将游戏适配NV1。不兼容的问题在一些游戏中表现为渲染错误,比如角色可能会出现穿模现象,像是“陷入人行道”或“穿墙而过”等等。此外,由于图形驱动程序和操作系统之间的不稳定性,NV1在某些极端情况下甚至会导致系统蓝屏死机。这些都极大影响了用户体验,导致NV1的销量逐渐下滑,一些不满的顾客选择将显卡退回商店。
更为糟糕的是,1995年,微软发布了DirectX。一个统一的图形和多媒体API框架,其中核心组件Direct3D确立了基于三角形渲染的行业标准。由于NV1没有遵循三角形渲染标准,它无法很好地支持基于DirectX开发的游戏生态。行业迅速向DirectX标准靠拢,NV1的“不兼容”局面被进一步放大,其市场表现随之急转直下。
黄仁勋后来将NV1的失败称为“一场灾难”。更糟糕的是,当时英伟达已经基于NV1架构为下一代显卡进行开发。然而,这一架构的根本缺陷让英伟达面临生死存亡的危机。黄仁勋决定“壮士断腕”,放弃NV1的架构,直接跳过NV2,转向完全重新设计支持三角形渲染的NV3。
开发一款新芯片通常需要数年时间,而英伟达几乎没有这样的时间,因为英伟达的公司账户只能支撑运营三个月。面对如此严峻的形势,黄仁勋做出了一个当时异乎寻常的决定:他将最后的资金用于购买一台芯片仿真器,这是一种可以用软件模拟硬件行为的工具。借助仿真器,黄仁勋计划跳过昂贵且耗时的多个迭代和原型开发环节,通过仿真测试的数字设计文件直接用于大规模量产,这在当时几乎是闻所未闻的举措。
这是一场孤注一掷的赌博,但也是英伟达公司生存的唯一希望。黄仁勋后来坦言,当时自己心里对NV3到底能不能正常运作这件事也没底。他说:“成功概率五五开吧,反正我们公司也快破产了。”
1997年春末,英伟达的新NV3芯片终于问世。首批芯片被交付进行内部测试。测试表明,NV3芯片运行流畅,图像质量大幅提升。
黄仁勋赌赢了。NV3的正式产品被命名为Riva 128。Riva 128的表现受到高度评价。这款显卡每秒能渲染多达500万个三角形,成为最强大的3D图形加速器之一。在发布后的4个月内,这款显卡的销量突破100万张,直接帮助英伟达渡过了财务危机。
所以,之前的NV1,这款被寄予厚望的产品,原本代表了英伟达对“革命性设计”的追求,但却因偏离了行业标准而失败了。然而,NV3,这款在疯狂赶工中诞生的产品,却取得了成功。
这给我们的启发是,不能光从技术的角度来看自己是否领先,而需要同时考虑现有技术和主流兼容性的问题。许多公司,尤其是创业的小公司,如果一味强调自己的“技术领先”,容易忽视与主流兼容的问题,从而重蹈NV1的覆辙。
尽管NV3取得了成功,但是当时包括英伟达在内的所有显卡公司CEO的头顶,都悬着一把达摩克利斯之剑,这把剑来自当时的半导体巨头英特尔。这些CEO挥之不去的担忧是:随着英特尔CPU性能的不断提升,CPU会不会取代自己的显卡?

第三节,来自英特尔的阴霾。
这样的担忧并非无中生有,因为市场上有很多证据。回顾20世纪90年代,个人电脑主板需要借助多种外置扩展卡,才能完成例如声音处理、网络连接和打印控制等功能。然而随着英特尔持续提升CPU的性能,这些曾经依赖独立硬件的功能逐渐被整合进了主板之中。这让那些曾经生产声卡、网卡和打印卡的厂商退出了历史舞台。
到了90年代末,显卡是当时唯一一个还没有被整合进主板的硬件。但是显卡公司忧心忡忡:自己会不会成为下一个被英特尔整合的目标?
作为显卡公司的另外一方,英特尔高层对此充满自信,他们始终笃信一个清晰的发展路线:通过不断缩小晶体管的尺寸,同时增加晶体管的数量,从而提升CPU的计算性能。这一信念主要源于两大定律的支撑。
第一条是广为人知的摩尔定律,由英特尔联合创始人戈登·摩尔(Gordon Moore)在1965年提出。他最初预测,集成电路中晶体管的数量每年翻一番,后来在1975年将其修正为每两年翻一番。摩尔定律的核心思想是,随着晶体管的尺寸不断变小,数量不断增加,处理器的速度可以不断提升。
晶体管是计算机处理器中最基础的电子元件,类似电路中的“开关”,处理器就靠着无数个晶体管的“开关”协作,实现了复杂的计算。处理器的性能和晶体管的数量和尺寸密切相关。简单来说就是,如果我们能在一块处理器内塞入更多、更小的晶体管,这个处理器的计算能力通常就更强。
很多年来,芯片行业通过不断微缩晶体管尺寸,使更多更小的晶体管得以集成到一块芯片上,从而持续推动处理器性能的提升。这种技术路线,一直被芯片行业视为黄金法则,并被众多厂商坚定遵循。英特尔公司曾长期相信,通过不断提升单个处理器的计算性能,便能够满足大多数用户的计算需求。
然而,英伟达的工程师尼科尔斯(John Nickolls)敏锐地预见,这种技术路线将在大约2005年失效。原因在于,虽然新一代的光刻机可以制造出宽度仅为100个原子的晶体管,但在如此微观的尺度下,晶体管的导电性将会受到影响,导致电流泄漏到周边电路中,并最终限制计算机运行速度的进一步提升。
尼科尔斯在2003年初给黄仁勋写了一封信,阐述了这个观点。在信中,尼科尔斯运用电学原理,解释了为何英特尔在半导体行业的长期霸主地位即将终结。
黄仁勋后来回忆道:“虽然我们公司已经预见到这种趋势,但尼科尔斯的观点让我确信摩尔定律真的已经走到了尽头。他的远见卓识为我们今天的辉煌成就奠定了重要基础。”
英特尔也很快意识到了晶体管微缩面临的极限。为了继续提升CPU性能,他们改变了策略,从提升单核性能,转向在一块CPU芯片中集成多个计算核心的新架构,我们可以把它叫做多核架构。
多核架构的概念简单来说就是在一块芯片中加入多个独立的核心,每个核心可以独立处理任务,但共享高速缓存和内存。这样就能够有效提升处理器在并行计算任务中的效率。
简单来说,之前的CPU只有一个核心,因此只会“一心一用”地处理一个任务,干完一件事再接着干下一件事。专业上称之为“串行单任务处理”。如果有了多个核心,这些核心就可以独立地同时工作,这个就叫做“并行”。
我们举个例子。假设你是一家奶茶店的老板,雇了一名店员负责为顾客制作奶茶。刚开始,一名店员可以很好地应付所有订单。但到了高峰期,订单一下子多了,这名店员开始忙不过来,那怎么办?
第一种方法是让这名店员加快速度,比如更快地搅拌、更快地加入小料、更快地封口。这种方式,就相当于我们之前提到的“在一块处理器内塞入更多、更小的晶体管”能达到的效果。然而,这种方式终究会遇到极限:店员的速度不可能无限提升,当接近某个极限后,就很难再提高了。
第二种方法是再招几名店员。这些店员协同工作,从而提高整体效率。例如,当订单数量很多的时候,这些订单会分给不同的店员,这样每个人只需要处理少量订单,就能满足要求了。

在2004年,英特尔正式宣布其多核处理器的发展计划,并在2005年推出了首款双核处理器。2006年,他们推出了基于酷睿(Core)架构的CPU,标志着CPU从单核性能导向转向多核架构的全面过渡,后来又推出了四核处理器。
许多人可能认为,只需要不断增加CPU的核心数量,CPU性能就能无限接近于理论线性提升。然而,过了几年以后,人们很快发现多核性能提升的效果远远低于预期。多核CPU的发展再次遭遇瓶颈。
其中的原因,正是源于程序中不可并行部分的限制。这个问题可以用阿姆达尔定律(Amdahl's Law)来解释。这个定律指出,即使任务中有部分工作可以被并行化处理,那些无法并行的串行部分仍会限制整体的性能提升。串行部分占比越高,即使增加再多的资源,性能提升幅度依然会大幅受限。
我们来举个例子。家里准备好了面和饺子馅,准备包100个饺子。假设一个人需要2小时完成。那么如果让4个人同时包,能否缩短到半小时(1/4时间),如果让8个人同时包,能否缩短到15分钟呢?显然答案是否定的。
包饺子这项任务实际上可以大致分解为两个环节:擀饺子皮和包馅。包馅是可以并行的任务,多个人围在一起包馅,一人一双筷子,彼此之间互不干扰,整体效率自然会翻倍。
但如果家里只有一根擀面杖,那么擀饺子皮只能由一个人来做,这个任务就无法并行了。你很容易想象这样一个场景:一个人吭哧吭哧地擀饺子皮,包馅的一群人在旁边眼巴巴地等着。
这就是为什么包饺子的效率不一定能随着人数增加而提高。因为这个任务存在一个不能并行化的环节:擀饺子皮。这个环节就成为卡点。
对于多核CPU而言也是如此:假设某个程序有90%的工作可以并行,但剩下10%的工作无法并行。即使配备64核CPU处理这段程序,理论加速比也只有8.76倍,而不是理想状态下的64倍。串行任务的限制,使得核心数量增加的边际收益逐渐递减。
阿姆达尔定律的存在,使得CPU性能增速大幅放缓,每年的性能改进被限制在几个百分点之内。而与此同时,游戏玩家对画面效果的追求却在快速提升,渲染所需的算力需求呈指数级增长。无论是单核CPU,还是多核CPU,在面对大规模渲染任务时都显得力不从心。
那么,为什么显卡能在渲染任务中大幅超越CPU呢?答案可以归结为两个字:专用。CPU是计算机的大脑,设计上需要处理系统中各种复杂且多样的工作。比如,运行操作系统,执行程序,管理硬件,等等。为了完成这些繁杂的任务,CPU被设计为功能全面的通用处理器,包含大量的硬件组件。
而图像渲染任务是一个非常固定的任务。图像渲染过程中,将三维模型转换为二维图像需要经历诸如顶点着色、光栅化、像素着色等步骤,这些步骤本质上是大量的矩阵计算。这些计算都有高度并行性,这意味着每个顶点、像素都可以单独计算,彼此之间几乎没有依赖。
而“多面手”CPU并非为这种任务设计,即使通过多核架构将工作分配给多个核心,CPU仍需花费大量时间完成线程调度、任务划分、数据同步和缓存一致性维护等工作。这些额外的操作会迅速增加运行成本,削弱多核架构的效率,进而使其在渲染任务中表现不佳。
那么思路就很简单:我们在设计中扔掉那些对于渲染没有用的硬件和相应的软件,为渲染任务量身定制一个处理器架构。这就是显卡。
显卡放弃了通用设计而专注于图像渲染。从架构上,显卡摒弃了通用处理器中那些对渲染任务无用的硬件,完全针对图像渲染来设计架构和布置计算单元。此外,我们会在后面介绍,这些计算单元的数量远远超过CPU的核心数量,加上相应的硬件配套(更高的内存带宽等),可以将渲染任务高效并行化。大幅缩小串行部分在整体任务中的比例,大大降低了阿姆达尔定律的影响。
这种架构被称为领域专用型架构。与CPU所采用的通用处理器架构相比,它放弃了对非渲染任务的灵活性支持,却换来了在图像渲染上的极致性能。
英伟达想明白了这一点,开始在显卡这条道路上狂奔。那么下一步,就是如何提升显卡的性能。

第四节:数据并行。
游戏玩家对画面质量的追求是永无止境的。更高的分辨率、更细腻的纹理以及更流畅的帧率,成为衡量游戏体验的重要指标。这种需求对显卡的计算能力提出了越来越高的要求。
在1996年发行的一款游戏《雷神之锤》(Quake)被视为当时显卡性能的试金石。这款游戏采用了多层渲染技术,比如在表现一面墙壁时,首先需要对光源影响墙面的明暗效果进行计算,然后再叠加墙壁的基础纹理和物理细节,例如血迹和裂纹。这种逐层叠加的渲染方法需要对像素进行多次计算,包括光照效果的计算、纹理数据的叠加以及额外细节的动态处理,才能最终绘制出逼真的画面。
更复杂的挑战来自游戏场景中的角色渲染。在一个充满动态的打斗场景中,不仅需要实时描绘每个角色的骨骼动画和细致纹理,还必须同时渲染出环境中的动态光影、火焰和爆炸特效。这些任务牵涉到数十万个三角形的实时计算,而且必须以流畅的帧率展现给玩家,对显卡的实时处理性能提出了极高要求。
即使专门针对图像渲染任务,显卡的算力也显得越来越不够,如何增加显卡芯片的能力呢?
当时,3dfx公司是显卡市场的领军者,其解决方案是通过增加显卡上的图形芯片数量实现性能提升。他们的Voodoo显卡在同一张显卡上配备了两颗相互协作的芯片,通过芯片之间的分工合作,显著提升了图形渲染速度。
我们可以看出,这个策略的核心思想就是并行。而3dfx的并行是在芯片层面上实现的。
但英伟达技术团队敏锐地意识到,3dfx的策略存在天花板。多芯片并行虽然在短期内能够胜任当时的计算需要,但其扩展性受限。一旦需要处理更复杂的游戏场景,多芯片架构的弱点必然暴露。例如在未来的游戏中,可能会有大量的光源实时计算,需要复杂的光照、纹理叠加和动态效果的渲染。在这种情况下,不断增加芯片数量的方法将显得捉襟见肘,因为芯片数量的增加不仅会带来高昂的成本和严重的散热问题,还会因为芯片间通信的延迟和带宽瓶颈而制约性能的提升。
英伟达提出了全新的解决方案,即在单一芯片内部实现并行化。这种设计的核心不在于芯片数量的增加,而是通过增加芯片内部的渲染管线来完成并行工作。一条渲染管线可以被视为一条流水线,它独立执行从顶点着色到像素处理的完整渲染任务。如果将芯片比作一个工厂,增加渲染管线就等于在工厂内新增多条生产线,从而显著提升渲染效率。
具体而言,对于要进行渲染任务的3D表面会分成多个独立的数据块,每个渲染管线处理不同的数据块。不同渲染管线之间独立工作,这样就能提高速度了。
拿之前奶茶店的例子来讲,这种并行方式,就相当于把当前的所有订单分给不同的店员,每个店员处理自己的订单,互不干涉。多个店员同时工作,整体效率就提高了。
这种并行方式,属于“数据并行”。数据并行的本质是将数据分成不同的任务,分别由多个计算单元同时进行处理。
1998年,英伟达发布的Riva TNT显卡首次将这一理念付诸实践。与此前显卡上的单条渲染管线设计不同,Riva TNT配备了两条像素渲染管线,能够同时执行两倍的像素着色任务。Riva TNT的推出确立了英伟达在显卡技术领域的重要地位。
英伟达以惊人的研发速度不断推动技术进步:平均每6个月便推出新款显卡,其性能通常达到其他制造商的两倍。
1999年初,仅创立不到6年的英伟达以6亿美元的估值成功上市。同年年底,黄仁勋推出一款跨时代的显卡,被外界称为“Voodoo 杀手”。这款显卡命名为“GeForce 256”,有四条像素渲染管线,每秒可以渲染1000万个三角形,并能够根据动态光源的位置,实时改变3D场景中每个像素的颜色。
英伟达在推出这款显卡的时候,提出了“GPU”(Graphics Processing Unit,图形处理单元)这一全新概念,标志着显卡技术的一个重要转折点。
英伟达沿着增加渲染管线的道路狂奔:像素渲染管线的数目从2条,到4条,再到后来GeForce 6的16条,GeForce 7的24条。随着渲染管线数量持续增加,显卡的处理能力不断提升。
除了增加渲染管线之外,英伟达还通过另一种技术进一步提升显卡的性能。

第五节,流水线并行。
还记得我们说过的奶茶店的例子吗?我们之前说的数据并行方法,是把所有订单分成几组,每个店员单独负责一组订单。
除此之外,还有一种并行方式能提高系统的性能。这种方式叫做流水线并行。奶茶的制作过程,是可以分为很多前后依赖的步骤的。
比如,假设制作一杯奶茶可以分为以下三个主要阶段:第一步,在杯中加入各种材料(如茶底、牛奶、糖水等);第二步,搅拌混合;最后一步,封口包装。
除了让多个店员独立负责不同的订单,我们可以有另外一种方式实现并行。假设有三个店员,每个店员负责上述的一个步骤。第一个店员完成向杯中加材料的环节后,他会将杯子传递给负责搅拌的店员;搅拌完成后,再传递给下一位负责封口打包的店员。
为什么这种方式可以提高效率呢?关键在于重叠。在订单源源不断的情况下,当第一个店员将第一杯奶茶的材料加入后,便可以立即着手制作第二杯,同时第二个店员开始搅拌第一杯奶茶。由此,每位店员始终全程忙碌,而不是在等待上浪费时间。
你现在可以打开文稿,看看下图。假设制作奶茶的三个阶段(加材料、搅拌、封口打包)每个都需要10秒钟,传统方法中完成一杯奶茶需要30秒,两杯则需要60秒。但如果采用流水线并行,制作两杯奶茶只用40秒。如果任务量增加到5杯,通过流水线操作可以将总时间压缩到70秒,比传统方法节约了一半多时间。

这种设计与工业流水线的原理相似。每个工人只需要专注于完成某个特定的工作,而加工对象在工人之间流动。这也是“流水线并行”这个名字的来源。
显卡的渲染任务和一杯奶茶的制作过程有着相似的逻辑。整个图形渲染分为多个连续的阶段,包括顶点着色、光栅化、像素着色等步骤。如果为每个阶段分配一个专门的组件负责,并让每个组件在完成任务后将结果快速传递给后续阶段,那么显卡的效率可以显著提高。这种流水线式的架构设计正是现代显卡性能飞跃的关键所在。
然而,为了实现流水线并行的最大效能,还需要注意两个重要因素:第一是任务的均衡性,第二是流水线的深度。拿奶茶的例子来说。我们之前的计算中,刻意让三个阶段(加入材料、搅拌、封口打包)所需的时间是一样的,这就是均衡。如果某一阶段的任务比其他阶段更加耗时,就会成为“瓶颈”,导致后续阶段的等待,影响整体效率。
解决这一问题的方法通常是对任务量较大的阶段进行细分,或者为这一环节配备额外的资源。例如,将“搅拌”环节分为低速搅拌和高速搅拌两个步骤,分别交由不同人员完成,从而缩短任一阶段的任务时间,使流水线更为流畅。
这是任务均衡,第二就是流水线的深度。流水线越深,一个任务被切割成的阶段越多,每个阶段的粒度越细,整个流水线上工作的环节便越多,重叠度也越高。拿奶茶店举例。为了提高效率,我们把“加入材料”这个环节拆分,变成“加入茶底和牛奶”,以及后续的“加入辅料”这两个环节。将“搅拌”,拆分成先“低速搅拌”,再“高速搅拌”。将“封口打包”,拆分成“封口”和“打包”这两个环节。这样,原来的制作一杯奶茶就从三个环节变成了六个环节。假设我们为每个环节也配备一个店员,假设分解后的阶段完成时间缩减一半,总体制作一杯奶茶的时间维持不变。
当有了这个更深的流水线以后,第一杯奶茶制作还是30秒,但是第二杯奶茶由于可以在第一个环节之后就立刻启动,因此完成两杯奶茶的时间一共只需要35秒。而完成5杯奶茶的总时间是50秒,比之前的70秒进一步降低了。我们可以看出,流水线越深,那么重叠度就越高,效率越高。你可以打开文稿看一下图。

英伟达早期的显卡,例如1999年发布的GeForce 256,并没有实现真正意义上的流水线并行架构。其组件之间的任务交接依赖显存,顶点数据需要批量写入显存后,光栅化才能读取到完整的数据开始处理。打个比方,这就像奶茶店里负责“加入材料”的店员,他不是完成一杯奶茶就立即交给下一个店员,而是积攒了一批加好材料的奶茶后,才交给下一个店员处理。这种方式显然效率较低。
两年后,英伟达在2001年推出的GeForce 3是首次引入流水线并行架构的产品。与GeForce 256使用显存传递数据不同,GeForce 3增加了顶点缓存(Vertex Cache)。这个设计允许顶点数据在模块间逐步传递,而不需要等待整个批次的数据处理完成。这种架构让显卡的设计更贴近高效工业流水线的模式,各部分始终以更高的利用率运行,满足了不断增长的游戏渲染需求。
到这里,我们讲完了英伟达在2001年之前的故事。进入21世纪之后,他们又遇到了哪些挑战,又是如何解决的?从这背后我们能理解哪些重要的技术原理,获得哪些启发?明天,我会结合另一本英文新书,Nvidia Revolution,来为你讲后面的故事。
撰稿:刘雪峰;脑图:摩西脑图工作室。资料来源:得到APP听书栏目。声明:除原创内容特别说明外,推送稿件文字及图片和音视频均来源于网络及各大主流媒体。版权归原作者所有,如认为内容侵权,请在文章下方留言联系我们删除。

密不可分母亲智慧文化馆的愿景:
愿每一位母亲幸福三代人。
价值观:爱家;敬业;说到做到。
密不可分母亲智慧文化馆的使命:
传播母亲智慧文化,
助力母亲内外兼修,
助力家庭健康成长,
助力家族美好传承。
地址:杭州南宋御街“密不可分母亲智慧文化馆”
联系人:叶子老师