来源:互联网怪盗团
本文摘自互联网怪盗团新书《巨浪:生成式AI的史诗与现实》一书的第五章,有删节。原书第五章题为《算力战争》,全面描述了英伟达、台积电等芯片产业链巨头在算力经济中的地位,以及全球AI算力紧缺的原因和发展态势。
算力将是未来很长一段时间最重要的“战略资源”之一,这一点已经得到了专业人士和资本市场的普遍认可。正因为算力实在太重要,与算力相关的产业链又太长太复杂,所以围绕着算力总是会产生许多“神话”。各种各样的人都在发表与这个话题有关的言论,有些纯粹是出于兴趣,有些则是出于利益(最典型的例子是炒股票)。无论在中文互联网还是英文互联网上,英伟达每天都在被颠覆,台积电则每周或每个月都在被颠覆,甚至连GPU这个概念也经常被颠覆。
有人说,华为昇腾芯片的算力已经超过了英伟达的“大卡”,而且证据确凿。还有人说,新兴芯片设计公司Groq的自研芯片的推理效率远远高于英伟达的同类产品,至少可以在推理端实现对英伟达的替代。上述两个神话的共同点是:都有一定的基础论据,不是完全的空想,但都与事实相去甚远。就好比盲人摸象,有人只摸到了大象身上的一根毛发,就激动地自称抓住了大象的本质——这就是关于算力的“神话”层出不穷的根本原因。
此时此刻,关于AI算力有三个最引人注目、也最富争议的“神话”:
英伟达的护城河没有多宽,很容易被竞争对手攻破;只要攻破了英伟达的护城河,我们就能解决AI算力的紧缺问题;AI算力很快将从数据中心下放到端侧,从而为“AI手机”等消费级产品带来机遇。
对于第一个“神话”,只有做过AI研发的人最能理解其荒谬性。外人往往认为,衡量硬件算力的唯一标准是技术指标,只要在关键技术指标上超越了英伟达,就可以取而代之——如果真的这么简单就好了!英伟达的L40“中卡”,在某些技术指标上甚至超过了自家的H“大卡”,更不要说与上一代“大卡”A相比了。AMD的数据中心GPU产品线,也不乏在某些技术指标上超过H的产品。为什么没有想到用这些产品代替H?
因为英伟达的护城河不止硬件本身,还包括CUDA软件社区和NVLink互联技术。有些AI开发者把英伟达称为“三头怪”:竞争对手必须同时砍下硬件、CUDA和NVLink三个头,才能将其击败。在这三大护城河当中,硬件层面已经是最容易逾越的了!假设不考虑成本、不考虑兼容性和使用效率,华为、阿里等国内科技公司都有能力开发出“看上去比英伟达更好”的数据中心GPU,在全世界范围内具备这种能力的公司就更多了;可是有什么用呢?“看上去比英伟达更好”是毫无意义的。
目前主流的AI训练服务器包括8块HGPU;英伟达的下一代“超级芯片”GB包括两块BGPU和一块GraceCPU,一台服务器由多块这样的“超级芯片”组成。GPU与GPU之间、GPU与CPU之间无时无刻不在交换数据,而NVLink是一种高速的、久经考验的芯片互联解决方案。在年NVLink发布之前,市面上最流行的芯片互联技术是英特尔、IBM、戴尔和惠普共同开发的PCIExpress(简称PCIe),它适用于绝大多数的主流芯片,问题是速度太慢、而且对通用计算GPU的优化程度不够。NVLink4.0的传输速率能够达到PCIe5.0的7倍以上,能源消耗则只有后者的五分之一。在实践中,大部分用户都认可NVLink在所有类似的解决方案当中是最快的。
按照英伟达的说法,NVLink把GPU变成了“乐高积木”:8个GPU组成一个服务器,32个服务器组成一个算力集群;微软、亚马逊这样的大厂还可以组建更大规模的超级算力集群,直至所谓“万卡集群”,GPT-4就是在这样的集群上训练出来的。当然,NVLink只适用于英伟达的产品,以及英伟达的技术合作伙伴IBM的Power系列产品。准确地说,即便在英伟达的GPU当中,也只有“大卡”具备完整的NVLink支持,“中卡”“小卡”要么根本不支持NVLink,要么只支持很低的传输速率。这显然是英伟达为了区分产品层级而使用的谋略:要训练大模型,就必须买昂贵的“大卡”,想通过组合大批“中卡”瞒天过海是不可能的。
如果企业客户选择英伟达之外的GPU,就只能使用PCIe等通用互联技术,组建算力集群的效率要下一个台阶。PCIe也在不断进化,但是其与NVLink的差距不是几年内能弥补的。理论上,客户也可以自己“魔改”,强行在英伟达“中卡”甚至其竞争对手的显卡上使用NVLink技术,但是这样做的风险实在太大。从NVLink首次发布至今已经经历了十年以上,任何竞争对手若想做出足以取而代之的技术,恐怕要花费同样长的时间。
至于推理环节,芯片互联的需求没那么大,确实可以不考虑NVLink,以Groq为代表的专业推理芯片设计公司有机会,国内科技企业也有机会。但是,对于一般的企业客户来说,采购英伟达的“中卡”“小卡”可以完成多种任务,还可以做图形渲染、做云游戏;而其他公司推出的“专业推理芯片”往往是高度特化的,只适合执行大模型推理任务。对于科技巨头来说,就连推理环节也出现了以英伟达“大卡”代替“中卡”的趋势,因为这样能提升推理速度、实现算力的灵活配置。综合各项显性和隐性成本考虑,绝大部分企业不会主动考虑在推理环节把英伟达替换掉。
至于CUDA的重要性,更是怎么高估也不过分:它包括一系列代码库、一整套工具和开发环境,数以百计的软件开发商是其长期合作伙伴。开发者不需要熟悉GPU的底层架构即可上手。更重要的是,CUDA积累了数以百万计的开发者群体。从学术界到产业界,到处是精通CUDA的开发者,他们也会教自己的下属和后辈使用CUDA。在你使用CUDA开发的时候,你其实是站在无数前人经验的基础之上。一位在国内从事AI开发的技术人员告诉我:“全球拥有博士学位的CUDA开发者可能有50万人,他们精通高性能计算,由此实现了CUDA社区资源的良性循环。整个英伟达生态的线下线上免费活动非常多,我自己就加入了好几个英伟达中国交流群,每天收到各种会议交流信息。除非实在没有使用CUDA的条件,否则很难想象有人会主动放弃CUDA!”
不可否认的是,在十多年的发展历程中,CUDA变得日益臃肿、复杂,开发难度逐渐提升了。曾任职于苹果和AMD的著名芯片架构师吉姆·凯勒(JimKeller)曾指出:“CUDA是一片沼泽,而不是护城河。CUDA并不漂亮,它是通过一次次堆积功能而构建起来的。”与其说这是英伟达的问题,倒不如说是所有大型应用开发生态的共同问题:需要实现的功能太多,而且必须保持向下兼容的特性,于是生态系统变得越来越复杂混乱,开发效率不断降低。除非推倒重来,这样的问题是不能避免的;而专业开发人员都知道,CUDA就算再臃肿,也远远没到需要推倒重来的地步。
真正能对英伟达构成威胁的力量来自开源社区。英伟达的显卡驱动程序是闭源的,因此饱受诟病。年,由于受到黑客的威胁,英伟达对部分GPU驱动程序的内核模块(KernelModule)进行了开源,但只是聊胜于无,实用价值不大。外部开发者以反向工程的技术手段开发了一些英伟达显卡的开源驱动程序,可想而知,它们的技术水平不会很高。英伟达坚持闭源的原因很简单,就是要最大限度地保持对自家产品的控制、谋取最高的利润,这一点对于盈利性公司而言无可厚非。
英伟达的老对手AMD则于年推出了名为”AMDGPU”的开源驱动程序。作为落后幅度很大的追赶者,AMD必须通过开源实现差异化,力争建立一个足以与英伟达竞争的开源软件生态。在信息科技的历史上,我们经常看到“一个强大的闭源产品VS一个丰富的开源生态”的竞争格局——闭源的Windows和开源的Linux共同构成了PC操作系统的双峰,而闭源的iOS和开源的安卓又构成了智能手机操作系统的双峰。遗憾的是,由于AMD的产品力太弱,开源策略还不足以让它真正挑战英伟达。Linux和安卓的成功,很大程度上是因为它们是“纯软件”,开源社区的包容性和创造力足以做出能与商用软件匹敌的产品;英伟达的统治地位却是软硬件一体化的产物,要让开源社区一口气砍掉它的“三个头”,实属强人所难。
再说第二个“神话”。假如明天发生奇迹,市面上骤然出现几个性能比英伟达更好、软件生态比英伟达更发达的竞品,全球算力紧缺的问题是不是就能解决呢?当然不能。无论是谁设计出了世界上最好的GPU,在当前情况下,它都要去找台积电代工,因为那是全球5纳米以下制造能力最强、良品率最高的半导体制造企业。而且,台积电的5纳米及3纳米产能,几乎全部位于台湾南部工业园区的第18号晶圆厂.至于广受外界