其实“快 2 倍”这个说法,好像也是当年乔布斯在发布会上吹出来的(也可能是当年某本苹果杂志的编辑写出来的)。最早苹果在宣传广告中提到,PowerPC G3 比当时的奔腾 II 要快 2 倍;后续说 G4 比奔腾 III 快很多;G5 比奔腾 4 快很多。差不多就是这样。(我高中时期,时代一脚刚刚跨入到奔腾 4 等灯等灯)
当年乔布斯曾经公开对比过 Mac 和 Windows PC,对比的方式是双方自动执行一组 Photoshop 任务。当时 Mac 以快得多的速度完成工作,碾压奔腾处理器的 Windows PC……当年奔腾正在搞超长流水线,处理器主频不知道飞跃到哪里去了。PowerPC 那会儿走的线路更偏宽核心,频率是低很多的。苹果那一时期还做过一个叫“The Megahertz Myth”的宣传,主要就是教育公众,别迷信时钟频率。
拿某些固定工作单元去比性能的意义,其实没那么大,尤其是对通用性很重要的 CPU 而言。这一例中,且不说究竟有多少程序代码能用上 AltiVec 单元(就像现在很多人质疑 AVX512,说用不到它);应该要比的还是日常消费用户比较频繁的操作,在效率上怎么样。苹果日常就非常善于呈现一些他想让你看到的数字,虽然没在说谎,但也未展示事物全貌。
我觉得,在 CPU 通用计算发展思路,该用的技术基本上都用过一遍以后(比如乱序执行、分支预测、超线程等近代技术),CPU 单线程性能推进本来就遇上了瓶颈。这时候是需要引入专用处理单元的,这也是一个常规思路——典型的像是在 GPU 领域,NVIDIA 为光线追踪引入了专用处理单元,这是提升性能和效率明显收益更高的方案。
苹果面向消费用户,或者目标群体时,一向都十分清楚自己需要针对硬件(或软件)做什么样的强化。所以事实上,苹果自己掌控处理器的设计,对目标群体的确是一件好事——就像它也掌控操作系统和软件一样。比如历史经验告诉我们,大量 Mac 用户用苹果电脑来剪片子,而 Final Cut Pro 在软件优化上的苹果平台加成,就是 Premiere 和 Davinci 都望尘莫及的,不管是视频编辑时的实时渲染、编码预览,还是输出速度。硬件层面为此若进一步做加成,还能再度提升效率。
iPad Pro 实现一些简单视频后期,效率明显比 x86 的 MacBook 更高,即是这一思路的集中体现。不过我也始终觉得,这种思路是有明确目标用户定位的。大部分人,并没有这些需求,如果我压根儿不用 Photoshop,那么像 AltiVec 这样的专用单元只能成为一种资源浪费。至于很多人,把这类思路解读为苹果在芯片设计上的黑科技,那也大可不必;毕竟 Intel 在服务人群的思路上和苹果是大相径庭的;就像高通也不可能面向 Android 阵营极为草率地,推出一颗性能与苹果 Ax SoC 相当的产品一样。
Arm 效率真的高过 x86 吗?
自从苹果宣布 Mac 要开始用 Apple Silicon,就一大堆媒体说了,看那个 iPad Pro 牛逼坏了——A12Z,一个功耗那么一点点的处理器,性能那么彪悍了,要是苹果给它提个主频、核心数,那岂不是立马把 Intel/AMD 之流轰出地球了吗?
有关这一点,早前的文章《MacBook 要采用 Arm 处理器,难度有多大?》我也用一个段落提到过,即 A12/A13 这些芯片的能效比,似乎还挺美好的。但实际上,如果苹果给这些芯片暴力提频,提到桌面处理器的程度,则其功耗和能效也会立马崩边——因为频率提升,越往后,给功耗带来的压力就会显著更大,而不是平缓变化的。当然我觉得这种描述略有些片面了。
我们还可以来看看 Cortex-X1 的设计——就是前不久 Arm 发布的一个微架构 IP。这个微架构被 Arm 设计出来的初衷,很大程度上就是面向高性能的。而且需要注意的是,它是以一定程度牺牲功耗和能效,来提升性能的——这跟 Cortex A78 的设计就很不一样。Cortex A78 是纯面向移动平台的那种传统核心,就是必须在 PPA 上做权衡,面积、性能、功耗都必须考虑在内,做到针对手机这类设备尽可能的最优解。
但这至少表明了 Arm 并没有什么黑科技,像很多人想象的那样,跟 Intel x86 比起来效率高到天上去——上面这些数据还是在台积电的 5nm 工艺不要出什么大纰漏的情况下;Arm 要做高性能,牺牲效率和功耗也是必须的,这事情真不像很多人想的那么简单,苹果做个高性能处理器就等比放大下 A 系列处理器就可以的。
之前我写 Mac 要用 Arm 处理器有多难的时候就提到过了,性能提升和功耗提升,这不是线性的关系。把 A12Z 提到 3GHz 频率,你看它功耗会崩到哪里去…
所以针对以上段落的总结是:苹果给 Mac 上自家芯片自然是好事——这里的“好”,体现在苹果收拢自家生态,Mac 迭代节奏也能完全掌握在自己手里;更重要的是,面向目标群体(比如做设计的、vlogger、搞摄影的等等)实现硬件层面更高效的支持,因为苹果可以更具针对性地去做硬件和芯片,Mac 设备的体验也因此可以更好。这也是苹果一直以来,对生态掌控力的固有经验——iPhone 即是这个思路下的产物。之所以等到现在,Mac 才使用 Apple Silicon,也是因为苹果现有的技术储备已经足够。
但这并不意味着,其芯片技术领先到了哪里去,更不表示 Arm 现如今在桌面市场比 x86 平台已经表现出了多大的技术优势。
番外:苹果需要做几颗处理器?
苹果用自家处理器,另一个我觉得挺现实的问题是,Mac 产品线有那么多不同的产品,比如 MacBook Air/Pro、iMac、Mac Pro 之类。如果要全线用自家芯片,那是不是要做一堆不同型号的处理器出来?
好吧,就算苹果能通过芯片体质的 binning 来自己划分个 A14-a,A14-b,A14-c 几个档位的 SoC 出来(比如针对较弱体质的就屏蔽掉两个核心之类的,或者用更低的频率,用在低端产品线上,那这样还节约了设计成本,桌面 CPU 本来也是这么搞的嘛)。问题是,Mac 一年的销量才多少(而且还要划分不同设备类型的不同芯片)?
Mac 年销量才多少?开一个 5nm 的产线要多少钱?如果走不起量,就不可能用得起最先进的制程。去年 Mac 全产品线的销量是 1800 万台左右;iPhone 预期是在 1.9 亿部上下。这个就有 10 倍出货量差距。
如果给 Mac 重新设计高性能处理器,这里面的设计成本负担其实也非常高,尤其是配合每年的最先进制程——每年还要迭代,苹果又不是专门做芯片的,没有客户摊薄成本(这一点和 Intel、高通这些厂商就显著不同);生产成本已经说了,走不走得起这个量,我觉得有兴趣的同学可以算一下(苹果肯定也算过这笔账了,或者苹果有某种高端的解决方案,衰 O_o)。
当然苹果也可以不去刻意设计高性能处理器,比如跟 iPad 用一样的处理器,或者也就改个款,或者可能有什么黑科技,规模化放大设计(有了解芯片设计的朋友跟我说,有这样的可行性)…那我觉得这样的话,至少就现在来看,苹果的 A 系列芯片起码在通用性上,日常操作在 Intel 面前真没什么特别的效率、性能优势(虽然 Intel 现如今正在渡过自己非常难堪的一段时间)。
另外,在 GPU 方面——看很多分析文章提到,未来苹果极有可能完全采用自家集成在 SoC 内部的 GPU,放弃 AMD 家的独立 GPU 设计——这一点从苹果现在的开发者文档能看出些端倪,AMD、NVIDIA 统统被苹果归到旧款 Mac 设备行列了,这也符合苹果一贯以来的尿性;毕竟苹果的 Metal API 也搞这么久了。如果是这样的话,Radeon GPU 还真是做了这么长时间的嫁衣——可见老黄不愿意支持苹果 Metal API 的决策是正确的…(逃
这篇文章谈的比较散了,真像 Intel 的软文——实际上,我的确不希望 Intel 在 PC 市场没落。
我有一台低配版的 Surface Pro 6,128GB + Intel 酷睿 i5 第八代 CPU。对 Intel 低压版酷睿产品线熟的同学应该知道,Intel 第一次在酷睿第八代低压处理器(也就是型号末尾都带 U 字母的)上将核心数目升级到了四核,以前都是双核。而酷睿八代 CPU 的问世,很大程度上似乎是为了应对 AMD Zen 的来袭。
在市场宣传上,酷睿八代还是相当成功的。基本上酷睿八代超级本(本文只讨论低压版酷睿八代)都获得了不错的名声,也包括 Surface Pro 6。网上的绝大部分基准测试成绩,八代酷睿都比七代有着质的飞跃,毕竟核心数目都翻番了——也算是“一屁股坐在牙膏管上”的操作了,这好像还是要感谢 AMD 的。
不过讲真的,Surface Pro 6 酷睿 i5 版的使用体验并不算好——一般在低压超级本上,我以前始终觉得酷睿 i5/i7 在性能表现上差不到哪儿去,尤其在低压 i5、i7 超级本的价格差别还那么大的情况下。如果我们不算 binning process 导致 i5/i7 有着体质上的差异,以及一些看起来对一般人并没有什么用的“高级”特性,针对超级本的低压版i7 似乎也就比 i5 略高点儿频率(cache 差别什么的也并不大)。现在看来,我这个观念是错误的,至少在微软这里是完全错误的。
实际情况是,Surface Pro 5、6、7 这三代产品的酷睿 i5 版(分别对应 Intel 酷睿七代、八代、十代),都采用被动散热,也就是无风扇的设计(i7 版是有风扇的)。我觉得在行业内也就微软有这种“魄力”了。不过至少通过对它们的了解和研究,可发现无风扇酷睿低压本(非超低压)的实际性能情况,大致是什么样。因为温控、散热设计对性能有着很直接、显著的影响。
不想看这么多文字的同学,可以直接转到本文最末看结论。
主观体验
聊主观体验的话,其实就不光是处理器的问题了,理论上我应该谈“系统性能”。比如说 Surface Pro 6 低配版选择的闪存比较寒碜,加上 LPDDR3,其存储性能本身就不会很好看,这些实际上都对系统性能成绩造成了比较大的影响。就 NoteBookCheck 的 PCMark 系统性能来看,低配版 Surface Pro 6 的系统性能得分和 Pro 5 差不多[1],主要源于其存储性能实在太烂。不过我不想聊系统性能,我们就单纯说说 CPU。所以主观体验这部分其实不靠谱,各位权当看看。
貌似看这个配置表,我这“主观体验”对比未免也太不客观了。的确,这两个超级本的处理器架构代号都不一样。不过 Whiskey Lake 相比 Kaby Lake Refresh 的主要差别在于,Whiskey Lake 采用改良版的 14nm++ 制造工艺,提供了更高的频率,其余各部分其实是差不多的,貌似还有外围支持的一些小差异。
似乎就存储性能表现,以及处理器频率、L3 Cache 来看,ThinkPad X390 更优的软件使用体验也算必然。只是我没想到两者的差距会这么大,毕竟也算是同期的八代超级本。就我自己看来,这种差异可以认为是散热机制造成的,Surface Pro 6 的无风扇设计导致其性能孱弱,并影响到了用户体验。散热机制差异对性能的影响,超过了上述配置参数差异的影响。下面我们来“片面”地看看,无风扇设计究竟造成了多大的影响。
这三代无风扇设计的 Surface
前文就提到了,Surface Pro 5、6、7 这三代的酷睿 i5 版都采用无风扇设计。就我的理解来看,这应该并非是微软对自己系统设计有多自信,而是在理念上期望打造一款安静的无风扇平板电脑(或许平板模式下,DPTF 动态温度功耗控制需要比一般笔电更严格,毕竟身兼“平板”属性,需要经常与手亲密接触)。它在定位上更偏向便携、轻薄、移动、安静。只不过 Surface Pro 就平板定位来看,真的不轻,且发热不低,我自己觉得就现阶段来看,它完全没有追求“便携、轻薄”的资格。
而且主观体验可补充的是,Surface Pro 6 的温控机制虽然在笔记本中算是比较保守的,但如果你有用 Surface Pen 作图的习惯,在 Photoshop 里面作图,手指和屏幕亲密接触,依然能十分明确地感受到这设备“温暖”得可以:时刻提醒你,这根本就不是一台平板,哪有这么“温暖”的平板啊?所以我觉得,在这一点追求上,Surface 是失败的。或者说,我觉得 Surface Pro 没必要追求这个。
我们来看下,如果只对比这三代产品,其 CPU 性能表现的差异。这里援引 NoteBookCheck 的 CineBench R15 多轮跑分,如下图所示。我将 Surface Pro 5、6、7 的酷睿 i5 版跑分标识出来了。
首先简单谈一谈 CineBench R15 是个什么测试:这个测试基于动画软件 CINEMA 4D 3D 内容创作,可用于衡量 CPU 和 GPU 性能。CPU 测试场景包含 28 万个多边形,GPU 测试基于 OpenGL ——渲染大约 100 万多边形、高分辨率纹理和各种特效。测试中,CineBench 会动用全部系统处理能力,来渲染一个 3D 场景,该场景由各种算法构成,对所有可用处理器核心构成压力测试。CPU 测试场景包含大约 2000 个对象,采用形状、模糊反射、面积光源、阴影、反锯齿等效果。GPU 测试部分就不说了,也不是本文要探讨的重点。
如果我们只用 Surface Pro 自家产品对比,这三代的性能提升还是显著的。而且同样是无风扇,Surface Pro 的性能还是比 Surface Go 高出一大截的——这里没有给出 Surface Go 的成绩,这款设备的 CineBench R15(多线程)跑分稳定在 160 分左右。Surface Pro 6 的酷睿 i5 CPU(酷睿 i5-8250U)性能提升相比 5 还是相当显著的,就 CineBench 来看,其成绩在长时间跑分后的稳定状态位于 440 分上下;而 Surface Pro 5 (酷睿 i5-7300U)是不到 230 分——持续性能提升超过 90%(相比 Surface Pro 5 有风扇的 i7 版提升约 27%)。Surface Pro 7 的酷睿 i5 版(酷睿 i5-1035G4)持续性能跑在 500 分上下,这个提升幅度算是尚可,不过比我想象得要差。
实际上,从这个曲线也反映了这三代设备的一个共性,最初几轮跑分成绩明显比较高,尤其是第一轮跑分成绩,完全不输给那些带风扇同配的超级本,但在跑到大约第五、第六轮的时候,性能开始直线下滑。主要是因为功耗与温控限制,致设备可持续的频率比峰值状态下的频率低很多。Surface Pro 6、7 这两台四核设备的性能损失尤为显著。
留意到 NoteBookCheck 在评测中也提到,”A laptop with ideal cooling is way out of the Surface Pro 6 (2018) i5’s league as the latter was only around 65% as fast.” 比如说,ThinkPad T480s(14 寸超级本,酷睿 i5-8250U)在持续负载中就比无风扇的 Surface Pro 快了 35%;即便是更小 12 寸的 ThinkPad X280(酷睿 i5-8250U)在持续性能上也高出约 20%。
没风扇果然是不行的。不过这里还是再次提醒一下,我没有研究过 CineBench R15 内部的具体测试流程,及其测试数据规模,虽然网上说它是个偏 CPU 的测试,但既然作为软件跑在最上层,它一定和整个系统相关;所以还是需要考虑 CPU 以外的其他配置。这样一来,整个系统的对比会比较复杂。
针对本文开头部分所说,我用的这两台笔记本(ThinkPad X390 i7版/Surface Pro 6 i5版),用 AIDA64 看下这两台设备的 CPU 相关信息。这里我比较关注的是 CPU PL1、PL2 参数(下图中的 CPU Power Limit 1/2)。这两个值表示的是长时睿频功耗上限、短时睿频功耗上限,及其相应的持续时间。这个值与 OEM 厂商自己的设计相关。
ThinkPad X390 这台设备(接 AC 电源、高性能模式下)的 PL2 短时睿频 TDP 设定在 51W,睿频可持续时间 28 秒;长时也有 25W。好像很多酷睿 i7-8565U 都采用类似的设定。这在低压本中仍是十分激进的值,虽然前文也把 X390 归类在超级本中,但实际上这台设备在厚度等 ID 设计上都算不上轻薄。可类比小米 Pro 这种八代本短时睿频 TDP 设定在 44W。
这种本子在一个较短时间内允许 CPU 不受性能约束,尔后便会做限制;44W、51W 这种值都是短时间内当标压设备在用了。这个“短时间”在很多场景下,仍对体验十分有帮助。
就这方面的表现来说,Comet Lake 似乎是对 14nm 四核低压处理器的一次完善和补足,或者说可能在八代酷睿低压 CPU 核心和线程数目翻番显得过于匆忙时,在十代 Comet Lake 身上完成了一次比较出色的修正,让四核低压 CPU 真正步入成熟。(本文未探讨六核低压 CPU)
不过去年更新的 Surface 系列采用的十代酷睿并非 Comet Lake 版,而是 Ice Lake 版——也就是新工艺、新架构的版本,听起来好像更美好了。但前文就提到了,可能是 Intel 的 10nm 制程还没有那么成熟(后续我打算把 WikiChip Fuse 针对 Intel 10nm 工艺的文章翻译过来),虽然 Intel 宣称 Ice Lake 有 18% 的 IPC 提升,但市面上的 Ice Lake CPU 在最高频率方面不及 Comet Lake。
从笔吧评测室的测试数据来看[6],3.5GHz 的 Ice Lake-U 差不多等于 4GHz 的 Comet Lake-U。实际上如果对比同频功耗,Ice Lake 是略高一点的,但 Ice Lake 的同频性能也更高。按照同性能来比较功耗,Ice Lake 还是胜出的(Uncore 以及核显的功耗会明显更高,此处 Uncore 也因为有了四个 Thunderbolt 3 原生支持故功耗更高)。
以功耗为尺度做衡量,则在 PL1/PL2 为 15W/25W 的超级本上,Ice Lake 的性能会略低于 Comet Lake;但达到 35W 及更高时就会超越。就这个角度来看,Surface Laptop 3 采用 Ice Lake 应该还是个相当不错的选择;但 Surface Pro 7 的无风扇酷睿 i5 版也选择 Ice Lake,实际就有那么点小问题了。
但就上面我援引的各种数据来说,Surface Pro 7 无风扇酷睿 i5 版在 CPU 性能方面比 Surface Pro 6 高出 14-17% 之间(峰值和持续性能),这实际完全符合在相同散热设计下,十代酷睿(Comet Lake-U)比八代酷睿(Whiskey Lake-U)强约 15% 的预期,而 Ice Lake 在较低功耗设定下的性能相较 Comet Lake 没有优势,所以 Surface Pro 7 的表现完全符合预期。或者说 Surface Pro 6 可能已经在12寸设备上做到了被动散热的最优设计,Surface Pro 7 则延续了这一传统。
当然,在 Surface Pro 体系内,无风扇的被动散热大概的确做得不错,只是被动散热一定意味着性能会打折扣。
另外这里再分享一篇我觉得很有意思的文章,AnandTech 前不久参加 CES 2020 的 Intel 的主题演讲[2]。Intel 在会上对比了自家低压 Comet Lake/Ice Lake 与 AMD Ryzen Mobile 3000 系列,表明自家产品性能、特性领先多少。不过这不是重点,实际上这个对比结果也没什么奇怪的,从 Surface Laptop 3 的酷睿版和锐龙版比较,就能看出在低压版 CPU 的这一局,Intel 还是有相当优势的。
不过在这个对比中, AnandTech 发现,Intel 分别发布了两张 PPT,一张对比 Comet Lake 与 Ryzen Mobile 3000,另一张对比 Ice Lake 与 Ryzen Mobile 3000。三个对比对象分别是酷睿 i7-10710U、酷睿 i7-1065G7,以及 AMD Ryzen 7 3700U。而自家 Comet Lake 与 Ryzen Lake 却没有直观对比。AnandTech 觉得十分好奇,于是他们将两张 PPT 上的成绩放到了一起,一次来比较十代酷睿的两个版本究竟表现如何,如下图所示。
Intel 宣称这些测试项是最能代表“真实环境的测试”。不过在包括 PCMark 10、WebXPRT 在内的测试中,Comet Lake 在前四项测试中都胜出,浏览器测试(PCMark10 Edge)基本是平手;WebXPRT 浏览器测试两者得分也相近,Ice Lake略胜。Office 真实测试也是对半开,Word 测试互有胜负(PPT PDF 导出测试,Comet Lake 的优势似乎还不小)——比较奇特的是这里的 Powerpoint 转为 1080p 视频测试,日常不知道有谁会这样操作;Photoshop 测试完全打平;至于 Topaz Labs AI 测试,这应该属于小众测试——而且 Intel 还和这家软件供应商合作进行了 GPU 加速(说好的真实环境测试呢?)。
所以就现阶段来看,如果单论性能,则在具体的 CPU 产品上,Comet Lake 仍是更加成熟的选择——即便它采用的是旧架构和旧工艺。另外 Ice Lake 引入了一些消费用户暂时不怎么用得到的东西,比如说 AVX-512 指令原生支持——在现有某些特定冷门项目上,Ice Lake 估计可以获得更好的成绩。这么看来,如果真的说“真实环境测试”,则 Comet Lake 也是优选。虽然这种局面大概是 Intel 不怎么愿意看到的。
最后展望一下今年的 Surface Pro:其实去年发布的 Surface Pro X 真的挺好看,我倒是不在意设备厚不厚,而在意 Surface Pro 的屏幕太小了;Surface Pro X 就弥补了这个短板,屏占比增大了,屏幕变大了。无奈 Surface Pro X 是台 Arm 设备,知乎有几篇谈 Pro X 使用体验,以及 x86/x64 转 Arm64 效率的测试文章,至少现在 Arm 平台的 Windows 本体验是真的不好的。
我觉得很有理由相信,x86 平台的 Surface Pro 在屏幕、外观方面也会有类似 Surface Pro X 这样的升级,或许 Surface Pro 8 身上就能看到。还有一点,AMD 在前不久的 CES 大会上发布了 Ryzen 4000 系列 APU,这仍然会对低压超级本市场产生一次性能、效率上的冲击。Intel 计划中的 Tiger Lake 在路上。不确定 Surface Pro 8 能否赶得上。其实感觉这两年由于 AMD 的搅动,即便“摩尔定律放缓”,桌面 CPU 市场也焕发了一波生机。2020 年的 Surface Pro 或许会具有极大的吸引力。
最后的最后,总结一下本文的一些推论:
无风扇设计的 Surface Pro 在持续性能上,会明显弱于同时代同配置的其他主动散热超级本;持续性能差距可以达到 20-35%。
Surface Pro 的酷睿 i5 版与 i7 版性能差别会比较大,这和其他品牌超级本的情况很不一样;
微软可能已经在 Surface Pro 被动散热设计上做到了最优化;
Surface Pro 6 相比 Pro 5 实现了一次性能飞跃;
Surface Pro 7 无风扇酷睿 i5 版的升级还是值得的,即便其 CPU 性能变化不算太大,但其系统性能提升比较大;
即便十代酷睿的 Ice Lake 用上了更好的工艺、更新的架构,但目前 Comet Lake 仍然拥有更出色的成熟性,和更实用的性能;
未来的 Surface Pro 8 可能相当值得期待,或许 Surface Pro 8 可以实现性能与外观(屏幕尺寸)的双重飞跃。
这里再多说一句,虽然本文花了比较多的篇幅在说被动散热的 Surface Pro 相比同配置超级本性能更孱弱,但我从未对于购买 Surface Pro 无风扇版的设备后悔——只不过我更加认识到 Surface Pro 的 i5 和 i7 版价格差别较大还是有原因的。对于无风扇设计,微软大约也有自己的想法。毕竟移动、安静本身就需要付出代价,就好像超级本的性能远弱于游戏本——但价格却依然可能很高,这是一样的道理,看你愿意为何种元素买单罢了。
感觉这大半年我都在客观上探讨一件事,在刚进入 EE Times 不久,就看到 MIT 2018 年出的一篇 paper。这篇 paper 也在我这大半年写的文章里,被反复提及,题为《通用技术计算机的衰落:为何深度学习和摩尔定律的终结正致使计算碎片化》。在整体观点上,这篇 paper 其实还十分有趣。几个月前,我把这篇 paper 的观点做了浓缩和重构,再加了一些额外的料,构成了一篇《深度学习的兴起,是通用计算的挽歌?》[2]。
各位有兴趣可以去看一下,这篇文章真的细节动人、论据充分、观点鲜明、语句通顺……这里再总结一下,其实观点很简单,就是既然 CPU 现在性能涨幅这么小,工艺节点都难推进,那这条路差不多就快走完了;然鹅,还有专用计算这条路啊:就是针对不同的应用场景,咱们开发专门的芯片,量身定制、量体裁衣:这样的话就能做到性能持续大幅攀升,与此同时效率高、功耗还大幅降低。
这篇 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 是无处不在的。
某 N 字头企业在如今的 AI training 市场已经占据了绝对统领地位,这种地位的不可撼动性就体现在开发生态的绝对优势上。且其发展经验积累,又令其具备了充足的资本优势可持续完善这个闭环生态,从软件到硬件。这就不是哪家 AI 芯片厂商随便对比一下性能、能效足以完事儿的了。生态优势可以彻底无视性能、能效的那点差别,尤其当这种性能、能效差别并没有数量级差别时。