作为Apple Silicon的第一代产品,M1对于苹果和业界都具有标志性的意义。如今,M1家族已经扩充到了第四个成员:M1 Ultra。
然而,也许是兄长们将市场的期待值抬得过高,M1 Ultra的问世并没有像前者一般受到众星捧月的荣光。相反的却出现了不少质疑:“不过是两个M1 Max的简单拼接罢了”,“并没有逆天的性能”、“除了做视频一无是处”、“能打游戏吗”……
所以,M1 Ultra究竟是拉胯还是引领了芯片设计的新趋势?苹果最强芯片的背后,体现了它们怎样的设计理念?这篇文章我们就来深入看看。
“1+1”:堆料背后的逻辑链
在芯片设计风格上,“舍得堆料”是苹果一贯的特色。
从微架构级别的堆内存,到更宏观一些的堆CPU、GPU核心,再到直接将两个完整的SoC堆在一起,苹果的设计理念并不是在随机地发展着,其背后是一条连贯的逻辑线。
因此,当两个M1 Max芯片堆砌而成的M1 Ultra呈现在我们面前时,一切是如此意料之外而又情理之中。
硬件参数直观地反映了堆料的效果,这也是M1 Ultra出乎我们意料的原因之一:20个CPU核心、64个GPU核心、32个神经网络引擎、128GB统一内存、800GBps内存带宽、1140亿个晶体管,再加上台积电5纳米制造工艺的加持——虽然苹果在硬件设计方面的出手阔绰已是人尽皆知,但是如此富裕的硬件资源仍然让人咋舌。
相比之下,英特尔的数据中心级超算GPU Ponte Vecchio、英伟达刚刚发布还热乎着的H100 GPU,晶体管数量也“仅有”区区1000亿和800亿。
所以问题是,为什么苹果这次选择的是“1+1”的方式,而不是从零开始、用一个全新的架构来整合以上的硬件资源呢?
之前我们聊到了“以芯粒(Chiplet)为基本单位”这种集成方式的优势所在、以及行业巨头们对它的推崇备至——UCIe标准的推出。
而M1 Ultra选择在此时登场,可算是把戏剧性拉满了:一方面,苹果用产品表明了自己力挺基于芯粒的技术方向的态度;另一方面,又叫板了UCIe:“芯粒的互联,我已经搞定了”。
当然,从芯粒的角度来说,身为SoC的M1 Max显然是太大了些。毕竟在大部分的语境中,一个芯粒更接近于一个IP的物理实现。即便如此,两者的出发点仍然有相当高的一致性,因此将M1 Ultra看成是一种较为极端的、芯粒互联的尝试也并无不妥。
使用芯粒的最大好处,就是能显著缩短芯片开发的周期。
这类似于模块化设计的概念,通过把一个复杂的设计任务拆分为多个功能特定的子任务,实现同一个公司中的不同组之间、乃至不同公司之间的分工合作,把每一个子任务交到擅长的人手里,开发效率自然能发生质变。
这一点对于M1 Ultra的设计工作而言同样是成立的。假设没有M1 Max这个子模块,如果要把如此丰富的硬件资源一股脑儿塞进一个全新的设计中,我们可能等到明年才能见到M1 Ultra。
芯粒的好处不仅局限于架构设计,而是遍布于芯片开发的各个阶段,比如后端的制造阶段。
在相同的制造条件下,越大的芯片面积往往意味着越低的良率。这有点像传说中的“不要把鸡蛋都放在一个篮子里”:打个比方,在平均每个晶圆出现一个坏点的情况下,如果每个晶圆的大小只能容纳一块芯片,那么几乎所有被制造出的都将是废片。但如果芯片面积没那么大、一个晶圆可以制造十块芯片,那么良率将直接拉升到接近90%。
通过基于芯粒的设计方式,一个大芯片可以分解成多个芯粒拼凑得到,而不是作为一个整体被制造出来,这就能有效地规避低良率造成的成本过高的风险。
芯粒已经成为近年来芯片设计和制造的热点,以至于几家大公司前不久刚刚推出了UCIe协议,目的就是统一芯粒的设计要求和规范。从此芯粒的玩法就有了游戏规则,在规则内大家可以任意发挥。
不过,不让人意外的是,UCIe的初始成员名单里并没有苹果。
多年以来,苹果一直用实际行动宣告着:尽管自己有着设计一流的芯片的能力,但却完全无意通过将自己的设计贩卖给其他厂商的方式来获利。因此,成为制定UCIe标准的一员对于苹果而言显然不是一个多有吸引力的选项。
但是,这不表示苹果对于基于芯粒的设计理念是不屑一顾的。正如我们所看到的,通过以“1+1”的方式开发出M1 Ultra,苹果选择用产品这一最有说服力的载体来宣布:“芯片互联,我是极为支持的,并且又一次走在了行业的前沿。”
UltraFusion:实现“1+1=2”的胜负手
从硬件参数的角度来看,两块芯片的互联自然意味着硬件资源的直接叠加。
但要是说到性能释放,这道加法便没那么简单了:“1+1”等于2并不是必然,结果可能是1.2、1.5...甚至后者们才是常态。
这道看似简单的加法题该如何解?苹果的答题思路才是重头戏。
事实上,基于芯片互联的多CPU系统目前已经得到了非常广泛的应用,尤其是在工作站等应用场景下;但是与之相对的,多GPU系统却还有着不小的技术进步的空间。
有的读者朋友可能有异议:“这不是睁眼说瞎话吗?苹果自家的Mac Pro不就属于这一范畴?”
诚然,应用早已经不在少数,但是效果上还只能说是差强人意。究其原因,在于GPU对于带宽的要求实在是太高了,而导致的结果就是“1+1<2”:GPU们尽管被连在了一起,但是在面对计算任务时却依然是各自为战、跟一个个独立的GPU没什么差别。
这样的现象在面对单一任务时会被最大程度地放大。由于无法协同完成计算,最常见的情况就是:系统中的一个GPU大包大揽、而其余的激情围观。这种对硬件资源的浪费,显然有悖于我们搭建多GPU系统的初衷。
对此,坐拥来自两个M1 Max的、共计64个GPU核心,M1 Ultra给出的解题思路是一种名为UltraFusion的封装架构。
UltraFusion利用额外的硅中介层连接起两块M1 Max,而这个连接的超高速接口早在M1 Max上就已经存在了。这进一步印证了:苹果选择以“1+1”的方式设计M1 Ultra早已埋下了伏笔,而不是心血来潮。
而硅中介层的应用,使得整个封装架构呈现出典型的“2.5D”的特征。作为应对逐渐放缓脚步的摩尔定律的手段之一,从平面的2D走向立体的3D一直被认为是芯片封装技术重要的发展方向,2.5D便是过渡阶段中一种典型的技术手段。它并不是直接把两个芯片叠加起来的那种真3D结构,而是将多个芯片通过额外的中介层或者桥接进行互联和集成。
关于苹果的UltraFusion,有些人认为它的实现方式基于台积电的CoWoS-S(Chip-on-Wafer-on-Substrate with Si interposer)技术,并做了一系列的优化,比如用可关闭的缓冲器来有效降低互连线的功耗,引入短且密集金属互连从而提高性能等等。
在UltraFusion的加持下,两块M1 Max间的带宽来到了恐怖的2.5TB/s,这是M1 Ultra很有潜力在实际性能上也能实现“1+1=2”的关键 :对于某一具体的应用场景来说,只要两块M1 Max间的数据传输速度能够满足其需求,那么两块芯片中的硬件资源对于该应用而言便是一个合二为一、可以任意调度的整体。
PK环节常常是苹果发布会上最让人津津乐道的部分之一,而这一回成为了背景板的是英伟达家的GeForce RTX 3090。
3090应该可以说是目前桌面级显卡产品中的一哥,而根据苹果给出的数据,在相同的性能下,M1 Ultra的功耗比前者低了200瓦,因此,这个数据乍一看颇为震撼。
但是,我觉得并没有必要对于这一对比结果做过度的解读。
首先,两者的晶体管数量上就有着较为明显的差距:M1 Ultra约为3090的四倍,堆料对于性能的贡献自然不容忽视;并且两者的目标市场的重合度也不高,这决定了3090的架构设计中很少将“低功耗”作为一个重要指标 ;何况M1 Ultra基于业内最为先进的台积电5纳米制造工艺,而3090采用的则是三星的8纳米工艺,由制造工艺上的差距造成的性能差异同样是有决定性意义的。更重要的是,当系统给到满血功率的时候,3090的性能实际是超过M1 Ultra的,已经有不少国内外的博主证实了这一点。
比起花式地作出“震惊!M1 Ultra吊打了…”这样的惊呼,我对于M1 Ultra最大的期待仍然执着于那道简单的难题:它究竟能不能在实际的应用场景中实现“1+1=2”?
从硬件角度来说:2.5TB/s的片间带宽能够满足具体计算任务的需求?片间的延迟会不会依旧是难以攻克的瓶颈?而在软件方面,能否灵活地调度两个M1 Max中丰富的硬件资源来高效地完成各种处理任务 ?我觉得这才是M1 Ultra真正需要证明自己的地方。
我很期待苹果用M1 Ultra交出的这份答卷,因为一旦它成功了,这对于基于芯粒的设计理念来说、对于基于芯片互联的多GPU系统来说,都将是具有划时代的重大意义。
小结
利用UltraFushion技术,苹果选择用两块M1 Max拼接组成M1家族的最后、同时也是最强的一员M1 Ultra——这一选择看似简约,但绝对不简单。
随着制定UCIe标准一事被提上日程,基于芯粒的芯片设计理念从幕后走向了台前。通过M1 Ultra的发布,苹果向我们传达了自己对于这一理念的理解与支持,或者说展示了一种具有苹果特色的、对于这一理念的打开方式:芯片互联能带给我们的不仅仅是更便捷的芯片开发流程、开发效率,还可以是更为强大的计算能力——在半导体制程逐渐逼近物理极限的此时此刻,这一点至关重要。
M1 Ultra是否是一款成功的设计?这个问题的答案可能并不重要,但苹果用M1 Ultra指明了一个可行的技术方向,因此其存在本身便为行业提供了指导意义。
(注:本文不代表老石任职单位的观点。)