AI芯片与GPU的争端:上世纪的故事重演

感觉这大半年参加芯片发布活动,观察一件很有意思的事:GPU 厂商说 AI 算力的时候,都喜欢拿自己跟 CPU 去比;AI 芯片厂商在说 AI 算力的时候,又很喜欢拿自己去跟 GPU 比。CPU 在 AI 时代成为了鄙视链最底层。看起来不仅绝对性能跑不过人家,而且能效比还差那么远。

好像只要参加 AI 芯片相关的会,一定会有人提 AlexNet 创世纪般的存在,也一定有人提 OpenAI 在 2018 年年中发布的《AI 与计算》分析报告[1]。因为里面说,从 2012 年至今,最大型的 AI training 计算量每 3.4 个月就会翻一倍——所以到 2018 年实际已经涨了超过 30 万倍。如果按照摩尔定律两年翻番来算,那么其实,2012-2018 年理论上芯片性能只能涨 7 倍。

看看,“只能”涨 7 倍,CPU 是应该哭一哭的——虽然实际上就摩尔定律,这里援引的数据都不准确,人家也不是说性能翻番不是?当然了,这些都不重要。重点在于,AI 算力需求这些年大幅攀升。

AI 芯片是某一类专用芯片

感觉这大半年我都在客观上探讨一件事,在刚进入 EE Times 不久,就看到 MIT 2018 年出的一篇 paper。这篇 paper 也在我这大半年写的文章里,被反复提及,题为《通用技术计算机的衰落:为何深度学习和摩尔定律的终结正致使计算碎片化》。在整体观点上,这篇 paper 其实还十分有趣。几个月前,我把这篇 paper 的观点做了浓缩和重构,再加了一些额外的料,构成了一篇《深度学习的兴起,是通用计算的挽歌?》[2]。

各位有兴趣可以去看一下,这篇文章真的细节动人、论据充分、观点鲜明、语句通顺……这里再总结一下,其实观点很简单,就是既然 CPU 现在性能涨幅这么小,工艺节点都难推进,那这条路差不多就快走完了;然鹅,还有专用计算这条路啊:就是针对不同的应用场景,咱们开发专门的芯片,量身定制、量体裁衣:这样的话就能做到性能持续大幅攀升,与此同时效率高、功耗还大幅降低。

其实论证这个观点的过程还是非常有趣的,比如说谷歌 TPU 出现了,就是专用芯片的最佳例证,它就真的只能做一件事。

这篇 paper 看起来美好而高级、优雅而低调。不过在随后工作的时间里,我基本上是在花全部的时间,尝试听取行业内的参与者们是否赞同这一点。很遗憾的是,几乎我听到的绝大部分声音,都在彻底否定这个论调。有关这一点,实际还可以从 1 月份即将发行的《观点》杂志,我的文章《AI芯片专用好还是通用好?遥想20年前GPU也面临这一抉择》中看到比较详细的论述。这里就不提太多了(下个月就和大家见面哟)。

绝对专用芯片也就是 ASIC,的确效率高、算力也高。但它实际受到两个巨大问题的影响:

第一是成本。这是个看起来非常废话的原因。像 CPU 这种全银河系通用、只在大麦哲伦星系不通用的芯片,你在上面干什么不行啊?都可以,装个 Windows,然后跑个虚拟机,还能装 macOS,写文档、做设计、修图、剪视频、炒股票,各种软件都能跑,医疗、交通、政府、金融,咱都能干。甚至,如果你一定要跑 AI 任务,CPU 其实也可以干。

所以 CPU 的特点,就决定了,这一类产品是全局适用的。它的销量非常大,渗透在人类生活的方方面面。所以即便新制程的设计和工艺成本都在指数级攀升,造个工厂花几十亿美金才可以——未来还要更多。不过这么昂贵的制造成本,实际能够消受得起的产品类型就不多。到最具体的产品上,手机、PC 都是可以承担这个成本的,因为它们每年的销量特别大,单 iPhone 一年就卖超过 2 亿台…每个手机、PC 至少都需要 CPU 才能跑得起来。CPU 有充足的量来摊薄设计与制造成本(实际情况比这还要复杂一些,还是推荐各位去看[2]这篇文章)。

而专用芯片是完全不具备这种成本摊薄特性的:因为它只针对某一个领域。绝大部分特定领域都不具备走量来摊薄最先进制程工艺成本的能力。比如汽车,这是个看起来十分庞大的市场了,但全球销量最好的车型,年销量也不过区区两三百万——这个量对一个车型就一颗专用芯片的设计和制造成本而言,实在不是个划算的数字——采用最先进制程则几乎是没有可能的。

当然,汽车专用芯片仍然可以考虑用成本更低、更早的制程来造芯片(以及某一颗芯片用在大量车型上)——这也是现在绝大部分专用芯片的常规方案。不过当“专用”芯片所覆盖的市场容量本身就不大,以及可能比汽车市场还要小很多的时候,尤其是很多 B 端市场——天花板是明摆着的,又靠什么来抵消芯片设计与制造成本?

这个问题在 MIT 的那篇 paper 中实则有着非常翔实的论述,其中详细列出了关乎特定市场容量、专用芯片产量、专用芯片相较通用处理器的性能与效率优势有多大,这些变量相互之间是什么样的关系。在满足怎样的条件时,专用芯片可以提供更高的成本效益。

在我更早期撰写的采访文章中,针对 ASIC 制造耗费成本这件事,我们有一个更准确地认识,即《摩尔定律失效,FPGA 迎来黄金时代?》[3]。不过这篇采访文章实则忽视了一个重要事实,就是 MIT 提到的上述这几个变量关系。而且专用芯片其实没有必要采用最新的制程,依然可以在性能和能效上碾压通用芯片(或 FPGA)。我在《深度学习的兴起,是通用计算的挽歌?》文中同样浓缩了这部分理论,在文章的第三部分“专用处理器市场过小?”章节内——不过当时为了理解方便,我没有将 MIT 提到的所有变量都放到我的这篇文章中,所以仍然建议去看 MIT 的原文。

第二是通用性差异。

双重标准:通用与性能

CPU 的通用属性就决定了,它在任何一个方面,其实都很难做到精通,或者说针对任何具体应用场景的算力和效率表现其实都一般。因为 CPU 需要耗费大量面积来做多层级 cache,微架构前端也很重要,真正的执行单元所占尺寸就那么点。因为 CPU 需要处理各种类型的工作,各种条件分支之类的东西。

但 CPU 的设计和工艺都是具备相当难度的,至少显著难于绝大部分专用芯片。用 GPU 去比 CPU 的 AI 算力,这种对比的价值显然是不大的。这其中的核心就在于,GPU 实际上本来就算是一种专用芯片。至少早年,GPU 就用于图形计算,它只做这一件事。而且实际在 GPU 诞生的更早期,它本来就以 ASIC 的面貌出现——它从骨子里是一种专用芯片。用 CPU 这样绝对通用的芯片,去比较 GPU 这种专用芯片,又有什么价值?尤其如果你还比较浮点运算能力,那就更奇特了。

不过 GPU 这个类型的芯片,在发展中后期发生了一些很显著的变化。它开始越来越具备通用属性(这个转变原因也可以从《观点》杂志中找),shader 核心这种非固定功能单元的地位越来越重要。即便 GPU 仍然没有 CPU 那么通用,但 cuda 编程这种东西是现如今人尽皆知的;GPU 的可编程性,或者叫灵活性变得越来越高。所以 GPU 现在早就不只用于图形计算了。

我们说将 GPU 应用于 AI 计算,不管是云端 training 还是终端 inferencing,其本质都是 GPU 通用属性的某一个方向;AI 计算在 GPGPU 世界里,不过是其中一个组成部分罢了。只不过是因为 AI 计算这个方向实在是潜力太大了,所以 GPU 厂商开始将 AI 计算作为一个着重发展的方向来对待,以及还针对 AI 计算特别加入了一些专用单元,比如张量核心。

然鹅这个时候,AI 专用芯片华丽丽地出现了,比如谷歌的 TPU、比如特斯拉的 FSD(Full Self-Driving Computer),以及一众国内外的 AI 芯片新品。

AI 专用芯片如果专用、固化到 TPU 那样的程度,只针对卷积神经网络,采用 Systolic Array 技术;前述第一个成本问题之外,它具有的第二个局限性就在于几乎没有灵活性可言。尤其在 AI 算法每个月甚至每周都可能发生变化的情况下,芯片 18 个月开发周期,当芯片问世的时候,这颗芯片就极有可能已经落后了。

但我们仍然不得不承认,AI 芯片在它所擅长的任务上,可能具备在效能与算力上大幅领先 GPU 的能力。所以 AI 芯片厂商几乎清一色地会在发布会上宣布,自家产品可以吊打某 N 字头企业的 GPU 某明星产品。

这件事,本质上约等于拿 GPU 去和 CPU 比浮点运算能力。而且实际上,AI 芯片比较的“AI 算力”大部分情况下是低精度的,比如很多终端 inferencing 芯片 INT8 计算能力很强——那你怎么不比比双精度?因为你不能做双精度运算?这种对比是将 GPU 放在通用计算的地位上,用专用计算的 AI 芯片——包括专门设计的 cache 或 HBM、低精度执行单元等——来吊打 GPU。这同样是件没有价值的事情。

不过更有意思的是,GPU 此刻为自己辩驳的方式,大部分是说:我能做的事情更多啊,比 TPU 之流的 AI 芯片能做的事情多太多了,它们那些 AI 芯片就只能做一件事。

这属于典型的双标,在和 CPU 比较时,宣称自己 AI 算力高出一大截;在和 AI 芯片比较时,宣称自己更通用。这不是双标吗?

是否存在第三类通用芯片?

其实我花了比较长的时间去理解,为什么 MIT 的这篇 paper 并不能成立;至少它成立的概率会很低。因为就历史经验来看,它是不对的:当我们参考 CPU 和 GPU 的兴衰史,其实就很容易发现,专用芯片在大部分历史条件下都不会成为主流,而只能成为某个历史时期的特定过渡产品。有关这一点仍然推荐去看 1 月份即将发布的《观点》杂志文章,这在前文已经提到了。

不过 AI 芯片是顺应时代潮流产生的一种芯片类型——除了前文提到的 TPU、FSD 这类相对极端的绝对专用 AI 芯片,当代越来越多的 AI 芯片都已经产生弱编程特性了,就跟当年的 GPU 一样。就连 Arm 的 NPU IP 实则都融入了一定的灵活性。也就是说,如今有一大批 AI 芯片实际是具备灵活性或通用性的,它们不只能做一件事,从结构上它还为未出现的算法做考量。

Graphcore IPU、华为昇腾都在其列。也就是说,AI 芯片在 AI 计算时,不仅效率相较 GPU 更出色,而且它还具备一定的通用性。这实则才是很多 AI 芯片企业在宣传中提到,在 CPU、GPU 之外,第三类芯片出现的原因,就是 AI 芯片。它可能将拥有自己的适用领域、迭代周期、开发生态。未来 CPU、GPU 和 AI 芯片就要成为三条并行的线了。

从应用场景来看,这个观念好像是成立的。至少我觉得,它比 MIT 说的专用芯片成为未来这一点要靠谱多了。

但我仍然觉得,这种畅想的实现概率也会比较低——至少在云端 AI training 这部分市场,GPU 可能将长期占据垄断地位,且难以撼动。因为 GPU 不仅具备制程优势(有能力采用最先进制程的少数派),而且具备开发生态优势——大量开发者都愿意投入其中,因为它相比 AI 芯片,具备了先天的生态基础,且发展多年。GPU 开发生态优势巨大的程度在从上至下、上天入地、贯彻电子科技行业,GPU 是无处不在的。

当开始拼开发软件栈的时候,一场全新的厮杀战就要上演了。某种芯片进入可编程时代,经营这类芯片的公司就不只是一家芯片公司了,它对软件人力物力的投入极有可能大于硬件,以 1:10 的硬件、软件工程师比例存在于世。这个时候,企业和行业都会变得越来越庞大。在行业整体价值的复合年增长率无法满足企业的成本投入攀升时,市场会逐渐步入寡头时代。GPU 市场就是如此发展至今的。

某 N 字头企业在如今的 AI training 市场已经占据了绝对统领地位,这种地位的不可撼动性就体现在开发生态的绝对优势上。且其发展经验积累,又令其具备了充足的资本优势可持续完善这个闭环生态,从软件到硬件。这就不是哪家 AI 芯片厂商随便对比一下性能、能效足以完事儿的了。生态优势可以彻底无视性能、能效的那点差别,尤其当这种性能、能效差别并没有数量级差别时。

所以,很多 AI 芯片初创企业畅想中的第三类芯片究竟能不能成立,或许要打一个问号。

好了,本文的 YY 差不多就到这里了。很多时候,历史经验是没有任何价值的,尤其我们说“具体问题具体分析”的时候,每一个事件的发展过程都有其特殊性,那些依据历史经验做推断的过程,本质上都是在胡说八道;在新事物面前,一切规律总结都只是在博君一笑——比如上面说的这么多东西。比如在终端小型 inferencing 现场,AI 芯片是能够长期发挥价值的,这仍然可以促成生态的持续反向完善。

不过至少,AI 芯片用自己的标准去和 GPU 比算力,GPU 又用自己的标准去和 CPU 比算力,同时还宣称自己比 AI 芯片能做更多的事,本质上都是耍流氓。

参考来源:
[1] AI and Compute – OpenAI
[2] 深度学习的兴起,是通用计算的挽歌?– 欧阳洋葱
[3] 摩尔定律失效,FPGA迎来黄金时代?– 欧阳洋葱

上一篇:
下一篇:

全部评论:

z进行回复 取消回复

电子邮件地址不会被公开。 必填项已用*标注