来源:远川研究所
尽管英伟达目前凭借GPU+NVlink+CUDA垄断了AI算力90%的市场,但帝国已经出现了第一道裂缝。
2012年,AI圈发生了两件大事,按时间顺序,第一件是谷歌组团已久的Google Brain发布“出道作”——一个能够识别猫的深度学习网络“谷歌猫”,74.8%的识别准确率,比知名识别图像大赛ImageNet前一年获胜算法的74%还要高出0.8%。
但谷歌的高光时刻只持续了几个月。2012年12月,最新一届ImageNet的获胜者出炉,深度学习大神Hinton及其弟子带着卷积神经网络AlexNet,将识别正确率一举提高到了84%,由此开启了之后十年的AI革命,谷歌猫则被埋进了历史的尘埃之中。
Hinton和两位学生,2012年让业内震惊的不只是ImageNet模型本身。这个需要1400万张图片、总计262千万亿次浮点运算训练的神经网络,一个星期的训练过程中仅用了四颗英伟达Geforce GTX 580。作为参考,谷歌猫用了1000万张图片、16000颗CPU、1000台计算机[1]。
传言Google在这一年也秘密参加了比赛,其受到的震撼直接体现在接下来的行动上:Google一边豪掷了4400万美元收购了Hinton团队,一边马上向英伟达下单大量GPU用来人工智能训练,而且同时“扫货”的还有微软、Facebook等一众巨头。
英伟达成为最大的赢家,股价在接下10年里最高涨了121倍。一个帝国诞生了。
但帝国的上空,逐渐聚拢了两朵乌云。当年向英伟达扫货的Google,在三年后携AlphaGo惊艳亮相,并在2017年击败了人类冠军柯洁。敏锐的人发现,驱动AlphaGo的芯片不再是英伟达的GPU,而是Google自研的TPU芯片。
再过三年,相似剧情重演。曾经被黄仁勋一度视为标杆客户的特斯拉也告别英伟达GPU,先是推出了以NPU为核心的FSD车载芯片,然后又拿出了用来搭建AI训练集群的D1芯片——这意味着英伟达接连里失去了AI时代里两个最重要的客户。
到了2022年,全球IT周期进入下行阶段,云计算大厂纷纷削减数据中心的GPU采购预算,区块链挖矿大潮也逐渐冷却等原因,英伟达库存暴增,股价从最高点一度跌去了2/3。
2022年底ChatGPT横空出世,GPU作为大模型“炼丹”的燃料再次遭到哄抢,英伟达获得喘息,但第三朵乌云随之而来:2023年4月18号,著名科技媒体The Information爆料:本轮AI浪潮的发起者微软,正在秘密研发自己的AI芯片[2]。
这款名叫Athena的芯片由台积电代工,采用5nm先进制程,微软研发团队人数已经接近300人。很明显,这款芯片目标就是替代昂贵的A100/H100,给OpenAI提供算力引擎,并最终一定会通过微软的Azure云服务来抢夺英伟达的蛋糕。
微软目前是英伟达H100最大的采购方,甚至一度传出要“包圆”H100全年的产能。来自微软的分手信号无疑是一道晴天霹雳,要知道,即使在Intel最灰暗的时候,其客户也没有一家“敢于”自造CPU芯片(除了苹果,但苹果并不对外销售)。
尽管英伟达目前凭借GPU+NVlink+CUDA垄断了AI算力90%的市场,但帝国已经出现了第一道裂缝。
1、本不为AI而生的GPU
打从一开始,GPU就不是为AI所生。
1999年10月英伟达发布了GeForce 256,这是一款基于台积电220纳米工艺、集成了2300万个晶体管的图形处理芯片。英伟达把Graphics Processing Unit的首字母「GPU」提炼出来,把GeForce 256冠以“世界上第一块GPU”称号,巧妙地定义了GPU这个新品类,并占据这个词的用户心智直到今天。
而此时人工智能已经沉寂多年,尤其是深度神经网络领域,GeofferyHinton和YannLeCun等未来的图灵奖获得者们还在学术的冷板凳上坐着,他们万万不会想到自己的职业生涯,会被一块本来为游戏玩家开发的GPU所彻底改变。
GPU为谁所生?图像。更准确地说,是为CPU从图像显示的苦力活中解放出来而生。图像显示的基本原理是将每一帧的图像分割成一颗颗像素,再对其进行顶点处理,图元处理,栅格化、片段处理、像素操作等多个渲染处理,最终得以显示在屏幕上。
从像素到图像的处理过程 图源:graphics compendium为什么说这是苦力活呢?做一个简单的算术题:
假定屏幕上有30万颗像素,以60fps帧率计算,每秒需要完成1800万次渲染,每次包含上述五个步骤,对应五条指令,也就是说,CPU每秒要完成9000万条指令才能实现一秒的画面呈现,作为参考,当时英特尔性能最高的CPU每秒算力才6000万次。
不怪CPU弱,而是其本就以线程调度见长,为此将更多的空间让渡给了控制单元和存储单元,用于计算的计算单元只占据20%的空间。GPU则相反,80%以上空间是计算单元,带来了超强并行计算能力,更适合图片显示这种步骤固定、重复枯燥的工作。
CPU和GPU内部结构,绿色部分为运算单元直到几年后,一些人工智能学者才意识到,具备这样特性的GPU也适用于深度学习的训练。很多经典的深度神经网络架构早在20世纪下半叶就已经被提出,但因为缺乏训练它们的计算硬件,很多研究只能“纸上谈兵”,发展长期停滞。
1999年10月的一声炮响,给人工智能送来了GPU。深度学习的训练过程是对每个输入值根据神经网络每层的函数和参数进行分层运算,最终得到一个输出值,跟图形渲染一样都需要大量的矩阵运算——这恰巧就是GPU最擅长的东西。
一个典型的深度神经网络架构;图源:towards data science不过图像显示虽然数据处理量庞大,但大部分步骤是固定的,而深度神经网络一旦运用至决策领域,会涉及到分支结构等复杂情况,每层的参数又需要基于海量数据正负反馈训练来不断修正。这些差别为日后GPU对于AI的适应性埋下了隐患。
如今的亚马逊AI/ML总经理Kumar Chellapilla是最早吃到GPU螃蟹的学者。2006年他使用英伟达的GeForce 7800显卡第一次实现了卷积神经网络(CNN),发现比使用CPU要快4倍。这是已知最早将GPU用于深度学习的尝试[3]。
Kumar Chellapilla和英伟达Geforce 7800Kumar的工作并未引起广泛的注意,很重要的原因是基于GPU编写程序的复杂度很高。但恰在此时,英伟达于2007年推出了CUDA平台,开发者利用GPU来训练深度神经网络的难度大幅度降低,这让深度学习教徒们看到了更多希望。
随后便是2009年,斯坦福的吴恩达等人发表了突破性的一篇论文[6],GPU凭借超过CPU 70倍的算力将AI训练时间从几周缩短到了几小时。这篇论文为人工智能的硬件实现指明了方向。GPU大大加速了AI从论文走向现实的过程。
Andrew Ng(吴恩达)经过无数人的探索,接力棒终于交到了深度学习大师Hinton的手上,此时时间已经指向了2012年。
2012年,Hinton和Alex Krizhevsky、Ilya Sutskeverz这两位学生一起设计了一个深度卷积神经网络AlexNet,计划参加这一年的ImageNet大赛。但问题是如果用CPU来训练AlexNet可能需要几个月的时间,于是他们把目光转向了GPU。
这颗在深度学习的发展历史中至关重要的GPU,便是著名的“核弹显卡”GTX 580。作为英伟达最新Fermi架构的旗舰产品,GTX 580被塞入512颗CUDA核心(上一代为108颗),算力飞跃的同时,夸张的功耗和发热问题也让英伟达被赐名“核弹工厂”。
甲之砒霜,乙之蜜糖。跟用GPU训练神经网络时的“顺滑”相比,散热问题简直不值一提。Hinton团队用英伟达的CUDA平台顺利地完成了编程,在两张GTX 580显卡的支持下,1400万张图片的训练只花了一个周,AlexNet顺利夺冠。
由于ImageNet比赛和Hinton本人的影响力,所有人工智能学者都在一瞬间意识到了GPU的重要性。
两年后,谷歌携GoogLeNet模型参加ImageNet,以93%的准确率夺冠,采用的正是英伟达GPU,这一年所有参赛团队GPU的使用数量飙升到了110块。在比赛之外,GPU已经成为深度学习的“必选消费”,给黄仁勋送来源源不断的订单。
这让英伟达摆脱了移动端市场惨败的阴影——2007年iPhone发布后,智能手机芯片的蛋糕迅速膨胀,英伟达也试图从三星、高通、联发科等碗里分一杯羹,但推出的Tegra处理器因为散热问题铩羽而归。最后反而是被GPU拯救的人工智能领域,反哺给了英伟达一条第二增长曲线。
但GPU毕竟不是为了训练神经网络而生,人工智能发展得越快,这些问题暴露得就越多。
例如,虽然GPU跟CPU差异显著,但两者根子上都遵循冯·诺伊曼结构,存储和运算是分离的。这种分离带来的效率瓶颈,图像处理毕竟步骤相对固定,可以通过更多的并行运算来解决,但在分支结构众多的神经网络中很是要命。
神经网络每增加一层或一个分支,就要增加一次内存的访问,存储数据以供回溯,花费在这上面的时间不可避免。尤其在大模型时代,模型越大需要执行的内存访问操作就越多——最后消耗在内存访问上的能耗要远比运算要高很多倍。
简单比喻就是,GPU是一个肌肉发达(计算单元众多)的猛男,但对于收到的每条指令,都得回过头去翻指导手册(内存),最后随着模型大小和复杂度的提升,猛男真正干活的时间很有限,反而被频繁地翻手册累到口吐白沫。
内存问题只是GPU在深度神经网络应用中的诸多“不适”之一。英伟达从一开始就意识到这些问题,迅速着手“魔改”GPU,让其更适应人工智能应用场景;而洞若观火的AI玩家们也在暗渡陈仓,试图利用GPU的缺陷来撬开黄仁勋帝国的墙角。
一场攻防战就开始了。
02、Google和Nvidia的暗战
面对排山倒海的AI算力需求和GPU的先天缺陷,黄仁勋祭出两套应对方案,齐头并进。
第一套,就是沿着“算力老仙,法力无边”的路子,继续暴力堆砌算力。在AI算力需求每隔3.5个月就翻倍的时代,算力就是吊在人工智能公司眼前的那根胡萝卜,让他们一边痛骂黄仁勋的刀法精湛,一边像舔狗一样抢光英伟达所有的产能。
第二套,则是通过“改良式创新”,来逐步解决GPU跟人工智能场景的不匹配问题。这些问题包括但不限于功耗、内存墙、带宽瓶颈、低精度计算、高速连接、特定模型优化……从2012年开始,英伟达骤然加快了架构更新的速度。
英伟达发布CUDA后,用统一的架构来支撑Graphics和Computing这两大场景。2007年第一代架构登场,取名Tesla,这并非是黄仁勋想示好马斯克,而是致敬物理学家尼古拉·特斯拉(最早还有一代是居里架构)。
之后,英伟达每一代GPU架构都以著名科学家来命名,如下图所示。在每一次的架构迭代中,英伟达一边继续堆算力,一边在不“伤筋动骨”的前提下改良。
比如2011年的第二代Fermi架构,缺点是散热拉胯,而2012年的第三代架构Kepler就把整体设计思路从high-perfermance转向power-efficient,改善散热问题;而为了解决前文提到的“肌肉傻瓜”的问题,2014年的第四代Maxwell架构又在内部增加更多的逻辑控制电路,便于精准控制。
为了适应AI场景,英伟达“魔改”后的GPU某种程度上越来越像CPU——正如CPU优秀的调度能力是以牺牲算力为代价一样,英伟达不得不在计算核心的堆叠上克制起来。但身背通用性包袱的GPU再怎么改,在AI场景下也难敌专用芯片。
率先对英伟达发难的,是最早大规模采购GPU来进行AI计算的Google。
2014年凭借GoogLeNet秀完肌肉后,Google就不再公开参加机器识别大赛,并密谋研发AI专用芯片。2016年Google凭借AlphaGo先声夺人,赢下李世石后旋即推出自研的AI芯片TPU,以“为AI而生”的全新架构打了英伟达一个措手不及。
TPU是Tensor Processing Unit的首字母缩写,中文名叫做“张量处理单元”。如果说英伟达对GPU的“魔改”是拆了东墙补西墙,那么TPU便是通过从根本上大幅降低存储和连接的需求,将芯片空间最大程度让渡给了计算,具体来说两大手段:
第一是量化技术。现代计算机运算通常使用高精度数据,占用内存较多,但事实上在神经网络计算大多不需要精度达到32位或16位浮点计算,量化技术的本质基本上是将32位/16位数字近似到8位整数,保持适当的准确度,降低对存储的需求。
第二是脉动阵列,即矩阵乘法阵列,这也是TPU与GPU最关键的区别之一。简单来说,神经网络运算需要进行大量矩阵运算,GPU只能按部就班将矩阵计算拆解成多个向量的计算,每完成一组都需访问内存,保存这一层的结果,直到完成所有向量计算,再将每层结果组合得到输出值。
而在TPU中,成千上万个计算单元被直接连接起来形成矩阵乘法阵列,作为计算核心,可以直接进行矩阵计算,除了最开始从加载数据和函数外无需再访问存储单元,大大降低了访问频率,使得TPU的计算速度大大加快,能耗和物理空间占用也大大降低。
CPU、GPU、TPU内存(memory)访问次数对比Google搞TPU速度非常快,从设计、验证、量产到最后部署进自家数据中心只花了15个月的时间。经过测试,TPU在CNN、LSTM、MLP等AI场景下的性能和功耗大大胜过了英伟达同期的GPU。压力便一下子全部给到了英伟达。
被大客户背刺的滋味不好受,但英伟达不会站着挨打,一场拉锯战开始了。
Google推出TPU的5个月后,英伟达也祭出了16nm工艺的Pascal架构。新架构一方面引入了著名的NVLink高速双向互联技术,大幅提升连接带宽;一方面模仿TPU的量化技术,通过降低数据精度来提升神经网络的计算效率。
2017年,英伟达又推出了首个专为深度学习设计的架构Volta,里面第一次引入了TensorCore,专门用于矩阵运算的——虽然4×4的乘法阵列跟TPU 256×256的脉动阵列相比略显寒酸,但也是在保持灵活和通用性的基础上作出的妥协。
在英伟达V100中TensorCore实现的4x4矩阵运算英伟达的高管对客户宣称:“Volta并不是Pascal的升级,而是一个全新的架构。”
Google也分秒必争,2016年以后TPU在五年内更新了3代,2017年推出了TPUv2、2018年推出了TPUv3、2021年推出了TPUv4,并把数据怼到英伟达的脸上[4]:TPU v4比英伟达的A100计算速度快1.2~1.7倍,同时功耗降低1.3~1.9倍。
Google并不对外出售TPU芯片,同时继续大批量采购英伟达的GPU,这让两者的AI芯片竞赛停留在“暗斗”而非“明争”上。但毕竟Google把TPU其部署到自家的云服务系统中,对外提供AI算力服务,这无疑压缩了英伟达的潜在市场。
Google CEO Sundar Picha对外展示TPU v4在两者“暗斗”的同时,人工智能领域的进展也一日千里。2017年Google提出了革命性的Transformer模型,OpenAI随即基于Transformer开发了GPT-1,大模型的军备竞赛爆发,AI算力需求自2012年AlexNet出现之后,迎来了第二次加速。
察觉到新的风向之后,英伟达在2022年推出Hopper架构,首次在硬件层面引入了Transformer加速引擎,宣称可以将基于Transformer的大语言模型的训练时间提升9倍。基于Hopper架构,英伟达推出了“地表最强GPU”——H100。
H100是英伟达的终极“缝合怪”,一方面引入了各种AI优化技术,如量化、矩阵计算(Tensor Core 4.0)和Transformer加速引擎;另一方面则堆满了英伟达传统强项,如7296个CUDA核、80GB的HBM2显存以及高达900GB/s的NVLink 4.0连接技术。
手握H100,英伟达暂时松一口气,市面上尚未出现比H100更能打的量产芯片。
Google和英伟达的暗中拉锯,同样也是是一种相互成就:英伟达从Google舶来了不少创新技术,Google的人工智能前沿研究也充分受益于英伟达GPU的推陈出新,两者联手把AI算力降低到大语言模型“踮着脚”能用得起的水平。风头正劲者如OpenAI,也是站在这两位的肩膀之上。
但情怀归情怀,生意归生意。围绕GPU的攻防大战,让业界更加确定了一件事情:GPU不是AI的最优解,定制化专用芯片(ASIC)有破解英伟达垄断地位的可能性。裂缝已开,循味而来的自然不会只有Google一家。
尤其是算力成为AGI时代最确定的需求,谁都想吃饭的时候跟英伟达坐一桌。
3、一道正在扩大的裂缝
本轮AI热潮除了OpenAI外,还有两家出圈的公司,一家是AI绘图公司Midjourney,其对各种画风的驾驭能力让无数碳基美工心惊胆战;另外一家是Authropic,创始人来自OpenAI,其对话机器人Claude跟ChatGPT打得有来有回。
但这两家公司都没有购买英伟达GPU搭建超算,而是使用Google的算力服务。
为了迎接AI算力的爆发,Google用4096块TPU搭建了一套超算(TPU v4 Pod),芯片之间用自研的光电路开关(OCS)互连,不仅可以用来训练自家的LaMDA、MUM和PaLM等大语言模型,还能给AI初创公司提供价廉物美的服务。
Google TPU v4 Pod超算自己DIY超算的还有特斯拉。在推出车载FSD芯片之后,特斯拉在2021年8月向外界展示了用3000块自家D1芯片搭建的超算Dojo ExaPOD。其中D1芯片由台积电代工,采用7nm工艺,3000块D1芯片直接让Dojo成为全球第五大算力规模的计算机。
不过两者加起来,都比不过微软自研Athena芯片所带来的冲击。
微软是英伟达最大的客户之一,其自家的Azure云服务至少购买了数万张A100和H100高端GPU,未来不仅要支撑ChatGPT天量的对话消耗,还要供给Bing、Microsoft 365、Teams、Github、SwiftKey等一系列要使用AI的产品中去。
仔细算下来,微软要缴纳的“Nvidia税”是一个天文数字,自研芯片几乎是必然。就像阿里当年算了一下淘宝天猫未来对云计算、数据库、存储的需求,发现也是一个天文数字,于是果断开始扶持阿里云,内部展开轰轰烈烈的“去IOE”运动。
节省成本是一方面,垂直整合打造差异化是另一方面。在手机时代,三星手机的CPU(AP)、内存和屏幕都是自产自销,为三星做到全球安卓霸主立下汗马功劳。Google和微软造芯,也是针对自家云服务来进行芯片级优化,打造差异性。
所以,跟苹果三星不对外出售芯片不同,Google和微软的AI芯片虽然也不会对外出售,但会通过“AI算力云服务”来消化掉英伟达一部分潜在客户,Midjourney和Authropic就是例子,未来会有更多的小公司(尤其是AI应用层)选择云服务。
全球云计算市场的集中度很高,前五大厂商(亚马逊AWS、微软Azure、Google Cloud、阿里云和IBM)占比超60%,都在做自己的AI芯片,其中Google的进度最快、IBM的储备最强、微软的冲击最大、亚马逊的保密做得最好、阿里做的困难最多。
国内大厂自研芯片,Oppo哲库的结局会给每个入场的玩家投上阴影。但海外大厂做自研,人才技术供应链都可以用资金来构建出来,比如特斯拉当年搞FSD,挖来了硅谷大神Jim Keller,而Google研发TPU,直接请到了图灵奖获得者、RISC架构发明人David Patterson教授。
除了大厂外,一些中小公司也在试图分走英伟达的蛋糕,如估值一度达到28亿美金的Graphcore,国内的寒武纪也属于此列。上表列举了目前全球范围内较为知名的初创AI芯片设计公司。
AI芯片初创公司的困难在于:没有大厂雄厚的财力持续投入,也不能像Google那样自产自销,除非技术路线独辟蹊径或者优势特别强悍,否则在跟英伟达短兵相接时基本毫无胜算,后者的成本和生态优势几乎可以抹平客户一切疑虑。
Start-up公司对英伟达的冲击有限,黄仁勋的隐忧还是在那些身体不老实的大客户身上。
当然,大厂现在还离不开英伟达。比如即使Google的TPU已经更新到了第4代,但仍然需要大批量采购GPU来跟TPU协同提供算力;特斯拉即使有了性能吹上天的Dojo超算,马斯克在筹建AI新公司时仍然选择向英伟达采购10000张GPU。
不过对于大厂的塑料友情,黄仁勋早就在马斯克身上领略过。2018年马斯克公开宣称要自研车载芯片(当时用的是英伟达的DRIVE PX),黄仁勋在电话会议上被分析师当场质问,一度下不来台。事后马斯克发表了一番“澄清”,但一年之后特斯拉仍然头也不回地离英伟达而去[5]。
大厂在省成本这方面,从来不会留情。PC机时代Intel的芯片虽然卖给B端,但消费者具有强烈的选择自主性,厂商需要标榜“Intel Inside”;但在算力云化时代,巨头可以屏蔽掉一切底层硬件信息,未来同样购买100TFlops算力,消费者能分得清哪部分来自TPU,哪部分来自GPU吗?
因此,英伟达最终还是要直面那个问题:GPU的确不是为AI而生,但GPU会不会是AI的最优解?
17年来,黄仁勋把GPU从单一的游戏和图像处理场景中剥离出来,使其成为一种通用算力工具,矿潮来了抓矿潮,元宇宙火了跟元宇宙、AI来了抱AI,针对一个个新场景不断“魔改”GPU,试图在“通用性”和“专用性”之间找到一个平衡点。
复盘英伟达过去二十年,其推出了数不清的改变业界的新技术:CUDA平台、TensorCore、RT Core(光线追踪)、NVLink、cuLitho平台(计算光刻)、混合精度、Omniverse、Transformer引擎……这些技术帮助英伟达从一个二线芯片公司变成了全行业市值的南波腕,不可谓不励志。
但一个时代应该有一个时代的计算架构,人工智能的发展一日千里,技术突破快到以小时来计,如果想让AI对人类生活的渗透像PC机/智能手机普及时那样大幅提升,那么算力成本可能需要下降99%,GPU的确可能不是唯一的答案。
历史告诉我们,再如日中天的帝国,可能也要当心那道不起眼的裂缝。
参考资料
[1] ImageNet Classification with Deep Convolutional Neural Networks, Hinton
[2] Microsoft Readies AI Chip as Machine Learning Costs Surge, The Information
[3] High Performance Convolutional Neural Networks for Document Processing
[4] Google’s Cloud TPU v4 provides exaFLOPS-scale ML with industry-leading efficiency
[5] 特斯拉的AI野心,远川研究所
[6] Large-scale Deep Unsupervised Learning using Graphics Processors
编辑/Corrine
來源:遠川研究所
儘管英偉達目前憑藉GPU+NVlink+CUDA壟斷了AI算力90%的市場,但帝國已經出現了第一道裂縫。
2012年,AI圈發生了兩件大事,按時間順序,第一件是谷歌組團已久的Google Brain發佈“出道作”——一個能夠識別貓的深度學習網絡“谷歌貓”,74.8%的識別準確率,比知名識別圖像大賽ImageNet前一年獲勝算法的74%還要高出0.8%。
但谷歌的高光時刻只持續了幾個月。2012年12月,最新一屆ImageNet的獲勝者出爐,深度學習大神Hinton及其弟子帶着卷積神經網絡AlexNet,將識別正確率一舉提高到了84%,由此開啓了之後十年的AI革命,谷歌貓則被埋進了歷史的塵埃之中。
Hinton和兩位學生,2012年讓業內震驚的不只是ImageNet模型本身。這個需要1400萬張圖片、總計262千萬億次浮點運算訓練的神經網絡,一個星期的訓練過程中僅用了四顆英偉達Geforce GTX 580。作爲參考,谷歌貓用了1000萬張圖片、16000顆CPU、1000臺計算機[1]。
傳言Google在這一年也祕密參加了比賽,其受到的震撼直接體現在接下來的行動上:Google一邊豪擲了4400萬美元收購了Hinton團隊,一邊馬上向英偉達下單大量GPU用來人工智能訓練,而且同時“掃貨”的還有微軟、Facebook等一衆巨頭。
英偉達成爲最大的贏家,股價在接下10年裏最高漲了121倍。一個帝國誕生了。
但帝國的上空,逐漸聚攏了兩朵烏雲。當年向英偉達掃貨的Google,在三年後攜AlphaGo驚豔亮相,並在2017年擊敗了人類冠軍柯潔。敏銳的人發現,驅動AlphaGo的芯片不再是英偉達的GPU,而是Google自研的TPU芯片。
再過三年,相似劇情重演。曾經被黃仁勳一度視爲標杆客戶的特斯拉也告別英偉達GPU,先是推出了以NPU爲核心的FSD車載芯片,然後又拿出了用來搭建AI訓練集羣的D1芯片——這意味着英偉達接連裏失去了AI時代裏兩個最重要的客戶。
到了2022年,全球IT週期進入下行階段,雲計算大廠紛紛削減數據中心的GPU採購預算,區塊鏈挖礦大潮也逐漸冷卻等原因,英偉達庫存暴增,股價從最高點一度跌去了2/3。
2022年底ChatGPT橫空出世,GPU作爲大模型“煉丹”的燃料再次遭到哄搶,英偉達獲得喘息,但第三朵烏雲隨之而來:2023年4月18號,著名科技媒體The Information爆料:本輪AI浪潮的發起者微軟,正在祕密研發自己的AI芯片[2]。
這款名叫Athena的芯片由臺積電代工,採用5nm先進製程,微軟研發團隊人數已經接近300人。很明顯,這款芯片目標就是替代昂貴的A100/H100,給OpenAI提供算力引擎,並最終一定會通過微軟的Azure雲服務來搶奪英偉達的蛋糕。
微軟目前是英偉達H100最大的採購方,甚至一度傳出要“包圓”H100全年的產能。來自微軟的分手信號無疑是一道晴天霹靂,要知道,即使在Intel最灰暗的時候,其客戶也沒有一家“敢於”自造CPU芯片(除了蘋果,但蘋果並不對外銷售)。
儘管英偉達目前憑藉GPU+NVlink+CUDA壟斷了AI算力90%的市場,但帝國已經出現了第一道裂縫。
1、本不爲AI而生的GPU
打從一開始,GPU就不是爲AI所生。
1999年10月英偉達發佈了GeForce 256,這是一款基於臺積電220納米工藝、集成了2300萬個晶體管的圖形處理芯片。英偉達把Graphics Processing Unit的首字母「GPU」提煉出來,把GeForce 256冠以“世界上第一塊GPU”稱號,巧妙地定義了GPU這個新品類,並佔據這個詞的用戶心智直到今天。
而此時人工智能已經沉寂多年,尤其是深度神經網絡領域,GeofferyHinton和YannLeCun等未來的圖靈獎獲得者們還在學術的冷板凳上坐着,他們萬萬不會想到自己的職業生涯,會被一塊本來爲遊戲玩家開發的GPU所徹底改變。
GPU爲誰所生?圖像。更準確地說,是爲CPU從圖像顯示的苦力活中解放出來而生。圖像顯示的基本原理是將每一幀的圖像分割成一顆顆像素,再對其進行頂點處理,圖元處理,柵格化、片段處理、像素操作等多個渲染處理,最終得以顯示在屏幕上。
從像素到圖像的處理過程 圖源:graphics compendium爲甚麼說這是苦力活呢?做一個簡單的算術題:
假定屏幕上有30萬顆像素,以60fps幀率計算,每秒需要完成1800萬次渲染,每次包含上述五個步驟,對應五條指令,也就是說,CPU每秒要完成9000萬條指令才能實現一秒的畫面呈現,作爲參考,當時英特爾性能最高的CPU每秒算力才6000萬次。
不怪CPU弱,而是其本就以線程調度見長,爲此將更多的空間讓渡給了控制單元和存儲單元,用於計算的計算單元只佔據20%的空間。GPU則相反,80%以上空間是計算單元,帶來了超強並行計算能力,更適合圖片顯示這種步驟固定、重複枯燥的工作。
CPU和GPU內部結構,綠色部分爲運算單元直到幾年後,一些人工智能學者才意識到,具備這樣特性的GPU也適用於深度學習的訓練。很多經典的深度神經網絡架構早在20世紀下半葉就已經被提出,但因爲缺乏訓練它們的計算硬件,很多研究只能“紙上談兵”,發展長期停滯。
1999年10月的一聲炮響,給人工智能送來了GPU。深度學習的訓練過程是對每個輸入值根據神經網絡每層的函數和參數進行分層運算,最終得到一個輸出值,跟圖形渲染一樣都需要大量的矩陣運算——這恰巧就是GPU最擅長的東西。
一個典型的深度神經網絡架構;圖源:towards data science不過圖像顯示雖然數據處理量龐大,但大部分步驟是固定的,而深度神經網絡一旦運用至決策領域,會涉及到分支結構等複雜情況,每層的參數又需要基於海量數據正負反饋訓練來不斷修正。這些差別爲日後GPU對於AI的適應性埋下了隱患。
如今的亞馬遜AI/ML總經理Kumar Chellapilla是最早喫到GPU螃蟹的學者。2006年他使用英偉達的GeForce 7800顯卡第一次實現了卷積神經網絡(CNN),發現比使用CPU要快4倍。這是已知最早將GPU用於深度學習的嘗試[3]。
Kumar Chellapilla和英偉達Geforce 7800Kumar的工作並未引起廣泛的注意,很重要的原因是基於GPU編寫程序的複雜度很高。但恰在此時,英偉達於2007年推出了CUDA平臺,開發者利用GPU來訓練深度神經網絡的難度大幅度降低,這讓深度學習教徒們看到了更多希望。
隨後便是2009年,斯坦福的吳恩達等人發表了突破性的一篇論文[6],GPU憑藉超過CPU 70倍的算力將AI訓練時間從幾周縮短到了幾小時。這篇論文爲人工智能的硬件實現指明瞭方向。GPU大大加速了AI從論文走向現實的過程。
Andrew Ng(吳恩達)經過無數人的探索,接力棒終於交到了深度學習大師Hinton的手上,此時時間已經指向了2012年。
2012年,Hinton和Alex Krizhevsky、Ilya Sutskeverz這兩位學生一起設計了一個深度卷積神經網絡AlexNet,計劃參加這一年的ImageNet大賽。但問題是如果用CPU來訓練AlexNet可能需要幾個月的時間,於是他們把目光轉向了GPU。
這顆在深度學習的發展歷史中至關重要的GPU,便是著名的“核彈顯卡”GTX 580。作爲英偉達最新Fermi架構的旗艦產品,GTX 580被塞入512顆CUDA核心(上一代爲108顆),算力飛躍的同時,誇張的功耗和發熱問題也讓英偉達被賜名“核彈工廠”。
甲之砒霜,乙之蜜糖。跟用GPU訓練神經網絡時的“順滑”相比,散熱問題簡直不值一提。Hinton團隊用英偉達的CUDA平臺順利地完成了編程,在兩張GTX 580顯卡的支持下,1400萬張圖片的訓練只花了一個周,AlexNet順利奪冠。
由於ImageNet比賽和Hinton本人的影響力,所有人工智能學者都在一瞬間意識到了GPU的重要性。
兩年後,谷歌攜GoogLeNet模型參加ImageNet,以93%的準確率奪冠,採用的正是英偉達GPU,這一年所有參賽團隊GPU的使用數量飆升到了110塊。在比賽之外,GPU已經成爲深度學習的“必選消費”,給黃仁勳送來源源不斷的訂單。
這讓英偉達擺脫了移動端市場慘敗的陰影——2007年iPhone發佈後,智能手機芯片的蛋糕迅速膨脹,英偉達也試圖從三星、高通、聯發科等碗裏分一杯羹,但推出的Tegra處理器因爲散熱問題鎩羽而歸。最後反而是被GPU拯救的人工智能領域,反哺給了英偉達一條第二增長曲線。
但GPU畢竟不是爲了訓練神經網絡而生,人工智能發展得越快,這些問題暴露得就越多。
例如,雖然GPU跟CPU差異顯著,但兩者根子上都遵循馮·諾伊曼結構,存儲和運算是分離的。這種分離帶來的效率瓶頸,圖像處理畢竟步驟相對固定,可以通過更多的並行運算來解決,但在分支結構衆多的神經網絡中很是要命。
神經網絡每增加一層或一個分支,就要增加一次內存的訪問,存儲數據以供回溯,花費在這上面的時間不可避免。尤其在大模型時代,模型越大需要執行的內存訪問操作就越多——最後消耗在內存訪問上的能耗要遠比運算要高很多倍。
簡單比喻就是,GPU是一個肌肉發達(計算單元衆多)的猛男,但對於收到的每條指令,都得回過頭去翻指導手冊(內存),最後隨着模型大小和複雜度的提升,猛男真正幹活的時間很有限,反而被頻繁地翻手冊累到口吐白沫。
內存問題只是GPU在深度神經網絡應用中的諸多“不適”之一。英偉達從一開始就意識到這些問題,迅速着手“魔改”GPU,讓其更適應人工智能應用場景;而洞若觀火的AI玩家們也在暗渡陳倉,試圖利用GPU的缺陷來撬開黃仁勳帝國的牆角。
一場攻防戰就開始了。
02、Google和Nvidia的暗戰
面對排山倒海的AI算力需求和GPU的先天缺陷,黃仁勳祭出兩套應對方案,齊頭並進。
第一套,就是沿着“算力老仙,法力無邊”的路子,繼續暴力堆砌算力。在AI算力需求每隔3.5個月就翻倍的時代,算力就是吊在人工智能公司眼前的那根胡蘿蔔,讓他們一邊痛罵黃仁勳的刀法精湛,一邊像舔狗一樣搶光英偉達所有的產能。
第二套,則是通過“改良式創新”,來逐步解決GPU跟人工智能場景的不匹配問題。這些問題包括但不限於功耗、內存牆、帶寬瓶頸、低精度計算、高速連接、特定模型優化……從2012年開始,英偉達驟然加快了架構更新的速度。
英偉達發佈CUDA後,用統一的架構來支撐Graphics和Computing這兩大場景。2007年第一代架構登場,取名Tesla,這並非是黃仁勳想示好馬斯克,而是致敬物理學家尼古拉·特斯拉(最早還有一代是居里架構)。
之後,英偉達每一代GPU架構都以著名科學家來命名,如下圖所示。在每一次的架構迭代中,英偉達一邊繼續堆算力,一邊在不“傷筋動骨”的前提下改良。
比如2011年的第二代Fermi架構,缺點是散熱拉胯,而2012年的第三代架構Kepler就把整體設計思路從high-perfermance轉向power-efficient,改善散熱問題;而爲了解決前文提到的“肌肉傻瓜”的問題,2014年的第四代Maxwell架構又在內部增加更多的邏輯控制電路,便於精準控制。
爲了適應AI場景,英偉達“魔改”後的GPU某種程度上越來越像CPU——正如CPU優秀的調度能力是以犧牲算力爲代價一樣,英偉達不得不在計算核心的堆疊上剋制起來。但身背通用性包袱的GPU再怎麼改,在AI場景下也難敵專用芯片。
率先對英偉達發難的,是最早大規模採購GPU來進行AI計算的Google。
2014年憑藉GoogLeNet秀完肌肉後,Google就不再公開參加機器識別大賽,並密謀研發AI專用芯片。2016年Google憑藉AlphaGo先聲奪人,贏下李世石後旋即推出自研的AI芯片TPU,以“爲AI而生”的全新架構打了英偉達一個措手不及。
TPU是Tensor Processing Unit的首字母縮寫,中文名叫做“張量處理單元”。如果說英偉達對GPU的“魔改”是拆了東牆補西牆,那麼TPU便是通過從根本上大幅降低存儲和連接的需求,將芯片空間最大程度讓渡給了計算,具體來說兩大手段:
第一是量化技術。現代計算機運算通常使用高精度數據,佔用內存較多,但事實上在神經網絡計算大多不需要精度達到32位或16位浮點計算,量化技術的本質基本上是將32位/16位數字近似到8位整數,保持適當的準確度,降低對存儲的需求。
第二是脈動陣列,即矩陣乘法陣列,這也是TPU與GPU最關鍵的區別之一。簡單來說,神經網絡運算需要進行大量矩陣運算,GPU只能按部就班將矩陣計算拆解成多個向量的計算,每完成一組都需訪問內存,保存這一層的結果,直到完成所有向量計算,再將每層結果組合得到輸出值。
而在TPU中,成千上萬個計算單元被直接連接起來形成矩陣乘法陣列,作爲計算核心,可以直接進行矩陣計算,除了最開始從加載數據和函數外無需再訪問存儲單元,大大降低了訪問頻率,使得TPU的計算速度大大加快,能耗和物理空間佔用也大大降低。
CPU、GPU、TPU內存(memory)訪問次數對比Google搞TPU速度非常快,從設計、驗證、量產到最後部署進自家數據中心只花了15個月的時間。經過測試,TPU在CNN、LSTM、MLP等AI場景下的性能和功耗大大勝過了英偉達同期的GPU。壓力便一下子全部給到了英偉達。
被大客戶背刺的滋味不好受,但英偉達不會站着捱打,一場拉鋸戰開始了。
Google推出TPU的5個月後,英偉達也祭出了16nm工藝的Pascal架構。新架構一方面引入了著名的NVLink高速雙向互聯技術,大幅提升連接帶寬;一方面模仿TPU的量化技術,通過降低數據精度來提升神經網絡的計算效率。
2017年,英偉達又推出了首個專爲深度學習設計的架構Volta,裏面第一次引入了TensorCore,專門用於矩陣運算的——雖然4×4的乘法陣列跟TPU 256×256的脈動陣列相比略顯寒酸,但也是在保持靈活和通用性的基礎上作出的妥協。
在英偉達V100中TensorCore實現的4x4矩陣運算英偉達的高管對客戶宣稱:“Volta並不是Pascal的升級,而是一個全新的架構。”
Google也分秒必爭,2016年以後TPU在五年內更新了3代,2017年推出了TPUv2、2018年推出了TPUv3、2021年推出了TPUv4,並把數據懟到英偉達的臉上[4]:TPU v4比英偉達的A100計算速度快1.2~1.7倍,同時功耗降低1.3~1.9倍。
Google並不對外出售TPU芯片,同時繼續大批量採購英偉達的GPU,這讓兩者的AI芯片競賽停留在“暗鬥”而非“明爭”上。但畢竟Google把TPU其部署到自家的雲服務系統中,對外提供AI算力服務,這無疑壓縮了英偉達的潛在市場。
Google CEO Sundar Picha對外展示TPU v4在兩者“暗鬥”的同時,人工智能領域的進展也一日千里。2017年Google提出了革命性的Transformer模型,OpenAI隨即基於Transformer開發了GPT-1,大模型的軍備競賽爆發,AI算力需求自2012年AlexNet出現之後,迎來了第二次加速。
察覺到新的風向之後,英偉達在2022年推出Hopper架構,首次在硬件層面引入了Transformer加速引擎,宣稱可以將基於Transformer的大語言模型的訓練時間提升9倍。基於Hopper架構,英偉達推出了“地表最強GPU”——H100。
H100是英偉達的終極“縫合怪”,一方面引入了各種AI優化技術,如量化、矩陣計算(Tensor Core 4.0)和Transformer加速引擎;另一方面則堆滿了英偉達傳統強項,如7296個CUDA核、80GB的HBM2顯存以及高達900GB/s的NVLink 4.0連接技術。
手握H100,英偉達暫時鬆一口氣,市面上尚未出現比H100更能打的量產芯片。
Google和英偉達的暗中拉鋸,同樣也是是一種相互成就:英偉達從Google舶來了不少創新技術,Google的人工智能前沿研究也充分受益於英偉達GPU的推陳出新,兩者聯手把AI算力降低到大語言模型“踮着腳”能用得起的水平。風頭正勁者如OpenAI,也是站在這兩位的肩膀之上。
但情懷歸情懷,生意歸生意。圍繞GPU的攻防大戰,讓業界更加確定了一件事情:GPU不是AI的最優解,定製化專用芯片(ASIC)有破解英偉達壟斷地位的可能性。裂縫已開,循味而來的自然不會只有Google一家。
尤其是算力成爲AGI時代最確定的需求,誰都想喫飯的時候跟英偉達坐一桌。
3、一道正在擴大的裂縫
本輪AI熱潮除了OpenAI外,還有兩家出圈的公司,一家是AI繪圖公司Midjourney,其對各種畫風的駕馭能力讓無數碳基美工心驚膽戰;另外一家是Authropic,創始人來自OpenAI,其對話機器人Claude跟ChatGPT打得有來有回。
但這兩家公司都沒有購買英偉達GPU搭建超算,而是使用Google的算力服務。
爲了迎接AI算力的爆發,Google用4096塊TPU搭建了一套超算(TPU v4 Pod),芯片之間用自研的光電路開關(OCS)互連,不僅可以用來訓練自家的LaMDA、MUM和PaLM等大語言模型,還能給AI初創公司提供價廉物美的服務。
Google TPU v4 Pod超算自己DIY超算的還有特斯拉。在推出車載FSD芯片之後,特斯拉在2021年8月向外界展示了用3000塊自家D1芯片搭建的超算Dojo ExaPOD。其中D1芯片由臺積電代工,採用7nm工藝,3000塊D1芯片直接讓Dojo成爲全球第五大算力規模的計算機。
不過兩者加起來,都比不過微軟自研Athena芯片所帶來的衝擊。
微軟是英偉達最大的客戶之一,其自家的Azure雲服務至少購買了數萬張A100和H100高端GPU,未來不僅要支撐ChatGPT天量的對話消耗,還要供給Bing、Microsoft 365、Teams、Github、SwiftKey等一系列要使用AI的產品中去。
仔細算下來,微軟要繳納的“Nvidia稅”是一個天文數字,自研芯片幾乎是必然。就像阿里當年算了一下淘寶天貓未來對雲計算、數據庫、存儲的需求,發現也是一個天文數字,於是果斷開始扶持阿里雲,內部展開轟轟烈烈的“去IOE”運動。
節省成本是一方面,垂直整合打造差異化是另一方面。在手機時代,三星手機的CPU(AP)、內存和屏幕都是自產自銷,爲三星做到全球安卓霸主立下汗馬功勞。Google和微軟造芯,也是針對自家雲服務來進行芯片級優化,打造差異性。
所以,跟蘋果三星不對外出售芯片不同,Google和微軟的AI芯片雖然也不會對外出售,但會通過“AI算力雲服務”來消化掉英偉達一部分潛在客戶,Midjourney和Authropic就是例子,未來會有更多的小公司(尤其是AI應用層)選擇雲服務。
全球雲計算市場的集中度很高,前五大廠商(亞馬遜AWS、微軟Azure、Google Cloud、阿里雲和IBM)佔比超60%,都在做自己的AI芯片,其中Google的進度最快、IBM的儲備最強、微軟的衝擊最大、亞馬遜的保密做得最好、阿里做的困難最多。
國內大廠自研芯片,Oppo哲庫的結局會給每個入場的玩家投上陰影。但海外大廠做自研,人才技術供應鏈都可以用資金來構建出來,比如特斯拉當年搞FSD,挖來了硅谷大神Jim Keller,而Google研發TPU,直接請到了圖靈獎獲得者、RISC架構發明人David Patterson教授。
除了大廠外,一些中小公司也在試圖分走英偉達的蛋糕,如估值一度達到28億美金的Graphcore,國內的寒武紀也屬於此列。上表列舉了目前全球範圍內較爲知名的初創AI芯片設計公司。
AI芯片初創公司的困難在於:沒有大廠雄厚的財力持續投入,也不能像Google那樣自產自銷,除非技術路線獨闢蹊徑或者優勢特別強悍,否則在跟英偉達短兵相接時基本毫無勝算,後者的成本和生態優勢幾乎可以抹平客戶一切疑慮。
Start-up公司對英偉達的衝擊有限,黃仁勳的隱憂還是在那些身體不老實的大客戶身上。
當然,大廠現在還離不開英偉達。比如即使Google的TPU已經更新到了第4代,但仍然需要大批量採購GPU來跟TPU協同提供算力;特斯拉即使有了性能吹上天的Dojo超算,馬斯克在籌建AI新公司時仍然選擇向英偉達採購10000張GPU。
不過對於大廠的塑料友情,黃仁勳早就在馬斯克身上領略過。2018年馬斯克公開宣稱要自研車載芯片(當時用的是英偉達的DRIVE PX),黃仁勳在電話會議上被分析師當場質問,一度下不來臺。事後馬斯克發表了一番“澄清”,但一年之後特斯拉仍然頭也不回地離英偉達而去[5]。
大廠在省成本這方面,從來不會留情。PC機時代Intel的芯片雖然賣給B端,但消費者具有強烈的選擇自主性,廠商需要標榜“Intel Inside”;但在算力雲化時代,巨頭可以屏蔽掉一切底層硬件信息,未來同樣購買100TFlops算力,消費者能分得清哪部分來自TPU,哪部分來自GPU嗎?
因此,英偉達最終還是要直面那個問題:GPU的確不是爲AI而生,但GPU會不會是AI的最優解?
17年來,黃仁勳把GPU從單一的遊戲和圖像處理場景中剝離出來,使其成爲一種通用算力工具,礦潮來了抓礦潮,元宇宙火了跟元宇宙、AI來了抱AI,針對一個個新場景不斷“魔改”GPU,試圖在“通用性”和“專用性”之間找到一個平衡點。
復盤英偉達過去二十年,其推出了數不清的改變業界的新技術:CUDA平臺、TensorCore、RT Core(光線追蹤)、NVLink、cuLitho平臺(計算光刻)、混合精度、Omniverse、Transformer引擎……這些技術幫助英偉達從一個二線芯片公司變成了全行業市值的南波腕,不可謂不勵志。
但一個時代應該有一個時代的計算架構,人工智能的發展一日千里,技術突破快到以小時來計,如果想讓AI對人類生活的滲透像PC機/智能手機普及時那樣大幅提升,那麼算力成本可能需要下降99%,GPU的確可能不是唯一的答案。
歷史告訴我們,再如日中天的帝國,可能也要當心那道不起眼的裂縫。
參考資料
[1] ImageNet Classification with Deep Convolutional Neural Networks, Hinton
[2] Microsoft Readies AI Chip as Machine Learning Costs Surge, The Information
[3] High Performance Convolutional Neural Networks for Document Processing
[4] Google’s Cloud TPU v4 provides exaFLOPS-scale ML with industry-leading efficiency
[5] 特斯拉的AI野心,遠川研究所
[6] Large-scale Deep Unsupervised Learning using Graphics Processors
編輯/Corrine