查看原文
其他

从苹果 M1 看芯片技术发展趋势

CSDN 2021-04-25

Editor's Note

对于开发者来说,今年频频登上科技版头条的新闻莫过于苹果发布的 M1 芯片了,业界首款使用领先的 5nm 技术的 PC 芯片。在苹果 M1 之前,作者从来没想过基于 ARM 的架构可能在性能上超越 X86。但为什么苹果之前没人这么做,或者说做不到呢?

The following article is from StarryHeavensAbove Author 唐杉

作者 | 唐杉  责编 | 张文
来源 | StarryHeavensAbove
头图 | CSDN 下载自东方 IC

今年我们看到很多芯片领域出现的“新现象”,也有不少会让你“陷入沉思”的时刻。对我个人来说,苹果 M1 可能是冲击最大的一个。

我从 04 年开始做手机 SoC,08 年开始接触 ARM,断断续续做到 16 年。在苹果 M1 之前,我从来没想过基于 ARM 的架构可能在性能上超越 X86。
当然,M1 并不是传统意义上的 CPU,而是一颗 SoC,所以直接的比较也许并不完全公平。但如果从应用程序的角度来看,运行速度加快,功耗降低,都是实实在在的。对 M1 的分析很多,细看下来,大部分架构优化的思路和获得的结果也都是非常自然的(可能也有一些我们不知道的苹果黑科技)。
但为什么苹果之前没人这么做,或者说做不到呢?
问题的关键在于苹果掌握了完整生态和供应链,在有充分的技术积累和丰厚利润之后,可以做更多的“纵向优化”。这个事件本身还不只是技术上的胜利,未来会给整个产业带来深远的影响。
当然,从这句话的限定词来看,能成功复制者可能寥寥无几。后面的新闻说微软也打算给 Surface 自研芯片来看,不知是不是有戏。
之前的文章对芯片架构和技术趋势有不少讨论,“通用”到“专用”、“同构”到“异构”、“先进工艺”到“先进封装”、“分而治之”到“跨边界优化”
为什么会有这些趋势,简单说就是被逼的,一方面摩尔定律放缓和 Dark Silicon 问题,另一方面特定算力需求激增。一句话,要求高了,只有精耕细作了。
但问题是,即使这些趋势大家都认可,具体该怎么做呢?真没那么简单。
先说说异构和专用的问题。
我们可以看看已经“精耕细作”了很多年的手机芯片。手机 SoC 是非常典型的异构系统,包括大量的专用处理器,发展到今天,已经极为复杂。下图是我随便找的一个高通手机芯片的框图,大家可以看一看,除了 CPU,GPU,各种 DSP 和硬件加速器,可以说把异构做到极致了。
source: anandtech
为什么手机的主处理器在智能手机刚出现的时候就是 SoC 的形式?
也是被手机尺寸,功耗,成本这些限制给逼的,它不可能照搬桌面 PC 独立 CPU 的架构。这种架构的优势是将整个系统都放在一颗芯片上,而不仅仅是通用的 CPU。其中很多硬件模块都是根据特定功能需求定制的,比如通信基带,ISP,Connectivity,多媒体,语音,定位,可能是基于 DSP,也可以是更专用的硬件加速器。这其实也就是我们今天常说的 Domain-Specific 的概念
另一方面,模块间的通信是在片上解决,效率要高很多。这种 SoC/DSA 架构的优势是硬件 PPA 可以极致优化;缺点除了架构复杂度和不同类型硬件的优化之外,异构编程和软件优化也会比较困难。
先不看苹果,由于安卓系统的出现,独立的手机芯片厂商可以把精力集中在底层,反正这些 DSP 和硬件加速器一般也不开放,都是芯片厂商自己来优化相关软件(常说的 firmware)。这样的架构和生态已经发展了十几年,现存已经不多的独立手机芯片厂商已经很有经验。即便如此,芯片厂商提供的一些新算法的加速库往往还不能令人满意,也从侧面说明了异构专用架构软件优化的难度。
再看苹果,其技术上的优势,很大程度得益于在“封闭”的系统(操作系统也是自己的),有可能实现“纵向优化”。在技术上的优势转化为巨大的利润之后,苹果的芯片就进入良性循环。实际上,在苹果开始自研芯片之后,可以说整个半导体供应链,从 Foundry 到 EDA/IP 都是按照苹果新机发布的节奏在进步。积累到今天,苹果已经具备了挑战传统桌面系统架构的能力。
对于传统的桌面和数据中心处理器,简单的说“不思进取”也不是很公平,CPU 本身还是芯片技术的高峰。在它能做到的范围内(主要是硬件),工艺演进、封装演进、架构优化,硬件性能继续提升还是可以预期的。但它多年形成的生态特征(包括历史包袱)和苹果(还包括其他一些巨头)这样的“封闭”生态大不相同,苹果们能做到的事情它还真做不到。
讨论到这里,我们也不难看出,未来在技术上的优化,传统的分而治之的策略已经越来越困难(或者并不经济),打破边界有可能会实现“降维打击”的效果。
虽然好处显而易见,但成功与否的决定因素可能不在技术,而是背后掌控生态和供应链的能力。另一方面,抛开技术原因,越来越复杂的竞争关系,也是推动产业链重新整合的动力
今年,我们看到 Nvidia 收购 ARM,AMD 收购 Xilinx,Intel 推 oneAPI,其实都是这方面的尝试。对于芯片厂商来说,尽量在自己的核心领域实现生态的“垄断”是最高目标。但是,对于复杂芯片来说,构建软件生态可能要比设计或实现出芯片本身更为复杂。特别是在一些专用领域,单芯片硬件架构趋向简化,但软件栈的实现和产品化挑战很大。
因此,从目前整体状况来看,相对传统芯片公司,科技巨头在软件和系统生态上具有先天的优势的。我之前分析过 Google 情况,有很多芯片厂商很难做的事情,在 Google 自己的生态里面相对容易(其实是和苹果 M1 的情况类似)。还有一个例子是这篇文章里 JAX 这个研究性框架可以很好的发挥 TPU 的性能。未来我们应该能看到更多由科技巨头发起的发自系统需求的跨层次优化。
回顾历史,分而治之(分层优化)是计算机系统和通信系统这样的复杂系统几十年快速发展的关键,未来实现彻底扁平或端到端的优化是不太可能的(这个超越人类能力的问题可能得留给 AI),但找到更合理的分层或分块方式是完全有可能的。比如,我们看到深度学习框架和编译器领域就有很多尝试,一方面打破传统的图和算子的层次进行统一优化是一个广泛关注的路径;另一方面,通过多层 IR 和编译工具来更合理的实现“分而治之”也很有前景。
苹果 M1 的例子再次给我们证明了现在确实是“架构的黄金时代”,芯片,软件,系统都还有很多优化空间。重新思考非常必要,甚至“重新设计轮子”有可能是非常合理且有效的选择。
最后说两句“先进封装”的问题。“Chiplet”是今年的热词,历史更久且更准确的技术词汇应该是异构集成(Heterogeneous Integration),有兴趣的朋友可以看看HIR(Heterogeneous Integration Roadmap),有这个领域非常完整的分析和预测。
总的来说,这个技术趋势是比较清晰明确的,而且第一阶段的 Chiplet 形态(比如 HBM)在技术上已经比较成熟,除了成本比较高,在很多高端芯片上已经使用。而且这个技术涉及的供应链比较简单,可以说是花钱就可以解决的问题。当然,这个方向还是有很多技术挑战的,最终是要走向 Monolithic 3D(如下图)。
source: ERI summit 2020
另外一个和异构集成关系很大的是光互联,这两件事要是解决了,芯片和系统架构可能发生产生根本性的变化。
注:以上文字,完全是个人观点,题图来自网络,版权归原作者所有

更多精彩推荐

拼多多就知乎不当评论致歉;谷歌员工成立首个工会;MySQL 迁移工具新版发布|极客头

如何用一句话证明你是程序员?

TIOBE 1 月编程语言:Python 摘得 2020 年度编程语言!

Linux之父新年首次“炮轰”:英特尔在扼杀整个ECC行业

公司使用 Qt 到底要不要付费?

Google DeepMind 团队发布新算法,下一个被 AI 虐哭的是谁?

点分享点收藏点点赞点在看

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存