AMD对赛灵思的收购已经完成,最终成本接近490亿美元——这个数字远远高于2020年10月刚刚宣布交易时预估的350亿美元。多花的钱,自然就是过去一年半以来AMD优异市场表现带来的股价上涨。
如今,AMD的交易申请终于获得监管机构的批准、“钱”(更准确地说是市值,跟现金不完全等同,但也有相应的购买力)也顺利花了出去。那么斥巨资换来的品牌到底给AMD的CPU和GPU设计师们带来了哪些回报?除了作为赛灵思金字招牌的FPGA可编辑逻辑技术,还有其他多种常见于FPGA架构内的晶体管元件,包括DSP引擎、AI加速器、内存控制器、I/O控制器以及各类互连SerDes(串行器与解串器)。
可以肯定的是,AMD得花不少时间才能建立起一支新的工程师团队,确保成员们能够接过赛灵思多年来在可编程逻辑、航空航天、国防、电信/通信、工业及广播/媒体等业务领域积累下的专业知识。正是这一点再加上Vitis软件堆栈,使得收购赛灵思这样一家收入与利润来源跟AMD完全不同、核心业务几乎没有重叠的企业成为一笔划算的买卖。赛灵思的加入直接带来了广泛的潜在市场,AMD公司CEO Lisa Su初步认定这部分空间有1350亿美元之巨且增速迅猛,毕竟在双方宣布交易的六个月前,Su给出的潜在市场预判还只有790亿美元。
而技术接纳效果的好坏,也将直接决定AMD公司这家半导体设计厂商未来的市场命运,特别是能不能把赛灵思的收入与利润流(过去一年内分别为36.8亿美元和9.29亿美元)变成自家收益。相比之下,AMD公司在2021年的收入与利润分别是163.4亿美元和31.6亿美元。
但要实现这样的价值、达成当初决定收购时定下的发展目标,AMD公司必须不断增加投入以拉动收入。毕竟单靠业务合并带来的部分晶圆代工产能、后台职能与实体办公室远远值不上这个价格。
目前,恐怕连AMD的数据中心芯片设计师们自己都搞不清楚需要用到多少第三方IP模块许可。这些许可当然都是成本,那么如果赛灵思确实拥有自己的一整套内存控制器、I/O控制器、网络控制器、更加通用的SerDes以及片上互连方案,那么AMD当然可以逐渐把需求转移到赛灵思的技术储备这边,进而节约运营成本。与此同时,如果赛灵思的IP模块储备比AMD之前用的第三方技术更好、甚至能够全面替代,那么AMD的CPU与GPU无疑还有进一步升级的空间,没准还能再发展出一批全新IP。
例如,也许AMD和赛灵思的融合团队可以用基于赛灵思SerDes的数据中心级Inifinity Fabric交换结构建立起新的数据包处理引擎。也许双方能够设计出一套类似于IBM在Power10处理器中使用的内存区域网络,但又能让Epyc CPU与Instinct CPU加速行实现跨机架并行运作。也许我们未来根本不用在乎到底用的是以太网还是InfiniBand,而是直接接入集群入口点。这不香吗?
下面来看Versal家族“Everest”这代中的赛灵思FPGA混合器件:
这些用于机器学习推理的AI矩阵引擎,外加负责处理各类信号的DSP引擎,以往都是要靠可编辑逻辑实现的硬模块。赛灵思在Versal系列产品中将其称为“自适应引擎”——但考虑到空间、热量和性能等问题,把这些模块作为ASIC实现,并利用芯片上的高速互连机制将它们连接起来、再进一步接入可编辑逻辑,在效率上肯定是大有优势。
AMD的工程师们也可以随意选择包括Arm核心在内的合适硬模块来构建计算引擎、系统和集群。AMD设计的每一种计算设备,无论是单片芯片还是包含多个小芯片的封装集合,都可以在必要时引入一点可编程逻辑元素。
所以,在不过度干预赛灵思的固有业务运营之外,AMD到底该怎么运用刚刚买来的这批资产?这个问题目前还没有答案,唯一可以肯定的就是AMD在交易完成前就已经用到过一部分赛灵思IP,而且这部分IP(不一定是可编程逻辑)将会出现在明年年底推出的AMD新一代芯片当中。
接下来要谈的,是我个人对AMD携手赛灵思之后的一些发展可能性。如果大家有不同意见,也欢迎在评论区中多多指教。
首先,我认为把CPU跟一整个FPGA混合起来的可能性不大,相对靠谱的方式应该是把CPU跟FPGA混合进同一套封装当中。
早在2014年,英特尔就已经跟FPGA制造商Altera合作开发过这类解决方案;甚至在收购Altera之前,芯片巨头就已经在2018年宣布要把Skylake至强SP处理器跟Arria 10 FPGA混合进同一套封装之内。但即使如此,我也不相信这类新型芯片能在数据中心市场上掀起多大浪花,而具体理由类似于我们反对把CPU和GPU混合进单一数据中心芯片封装。除非是极端特殊的情况,例如需要让包含核显的PC芯片充当媒体处理服务器引擎,AMD和英特尔之前也曾经在嵌入式产品线中做过这类尝试,市场反响平平。
在这套复杂的CPU加GPU“缝合怪”上,英特尔塞进了一块功率125瓦的20核心至强SP-6138P,外加70瓦Arria 10 GX FPGA 1150。二者通过UltraPath互连(UPI)实现互通,借此让FPGA与CPU得以共享内存NUMA配置——换句话说,英特尔其实是把UPI控制器移植到了Arria 10之上。(这个UPI控制器的逻辑似乎不太可能在可编程控制器上直接实现,但好消息是UPI协议的实现基础可能是硬编码SerDes,而这种SerDes又能良好适配UPI时序,所以有机会借可编程逻辑实现。)另外,Arria 10 GX这款FPGA集合体也没有启用过Arm核心(这些核心也许客观存在,只是英特尔从未正确提及)。
在这只“缝合怪”身上,FPGA部分的作用是在可编程逻辑上运行Open vSwitch虚拟交换功能,借此将运行速度提高3倍以上。如此一来,至强CPU就能托管起2倍数量的虚拟机,从而弥补Open vSwitch无法在至强核心软件上运行的短板。我们估计这款组合式处理器的成本约为6500美元,因为当时单单至强部分的成本就高达2600美元。据我们所知,整套方案并没有得到市场认可,所以后续的研究重点开始转向如何把虚拟存储、虚拟网络与交换以及加密/解密功能移交给DPU处理(这是一种经过优化的SmartNIC,在不同的使用场景下可以发挥不同的作用)。
十多年来,AMD打造这类混合CPU-GPU计算方式以及相应异构系统架构的念头从未消除,甚至还在某些服务器部件中做出过实际尝试。很明显,PC和批量定制的游戏主机芯片中都有这项技术的身影。从某种程度上讲,Infinity Fabric互连也是异构系统架构的一种实现方案。
AMD倒是可以试试完整CPU加完整FPGA的这条集成封装路线,也就是把CPU计算插槽、实现FPGA可编程逻辑的小芯片以及由二者共享的内存与I/O集线器全部保留。这主意似乎有点搞头,毕竟它能够跨CPU插槽与FPGA提供连贯的共享内存。其中,Infinity Fabric将成为跨插槽能力的实现基础。Infinity Fabric真的非常强大,正如前文提到,它可是能够实现跨机架以及跨行连通,前途无量啊各位!
在这套架构中,唯一的问题就是每个插槽都面临着配置锁定。CPU与FPGA可编程逻辑的具体比例需要因应用场景、行业需求与客户用例而异。如果我们再把GPU加入进来,那需要排序的变量规模就太大了;实际上,每块芯片都会成为只适用于特定客户的定制化部件。对于超大规模运营商和云服务商群体来说,这么做当然没问题——毕竟他们的购买力够强,足以摊薄设计和制造成本。但如果AMD想把这类产品卖给其他体量较小的服务商和大型企业,那就得必须固定的SKU搭配,而一旦结构固定下来、就意味着其处理任何负载时都达不到最佳效果。
除了用于模拟自家芯片,英伟达对FPGA可以说是一点兴趣都没有(事实上,我们甚至怀疑就连芯片模拟也是在Selene超级计算机上进行的,那更没FPGA什么事了),而且公司联合创始人兼CEO黄仁勋觉得这才是正确的决策。不过从英特尔之前收购Altera、AMD此番买下赛灵思的举动来看,把FPGA加入现有CPU以定制运行某些编程语言、实现特定功能或软件堆栈的思路还是具有一定的吸引力。我们一直觉得,一套真正均衡的系统应该包含全部三大计算引擎,现代交换机就是这样。毕竟我们需要CPU来完成快速串行处理并提供大内存容量,需要GPU来完成高速并行处理并提供高内存带宽,FPGA则专门负责加速硬编码算法——也就是目前x86和Arm处理器软件难以实现的一类常用算法。唯一的障碍在于,这类算法往往变化太大,用户也不一定愿意承受定制化芯片带来的额外散热压力或者成本溢价,所以如果订购量达不到特定规模、这仍然是笔亏本的买卖。
在我们看来,不妨把FPGA可编程逻辑以暂存器的形式嵌入到各个CPU插槽甚至是GPU插槽当中,这样芯片就能快速拥有散列算法、加密算法、安全协议或虚拟交换等必要元素。相较于干扰CPU或GPU芯片上的逻辑模块,这种在CPU或GPU插槽中以独立小芯片形式存在的解决方案(也可以添加到CPU上运行的其他高级别软件)才是更有趣的探索方向。多年以来,IBM公司就在其System z及Power处理器中添加过此类暂存器(请注意,蓝色巨人并没有使用FPGA逻辑来实现),由此实现新指令或创建复合指令。这些调整可以在芯片流片完成后再进行,而且也不会占用太多芯片/插槽空间。
所以我们大胆作出预测,未来市场上很快就会出现Versal FPGA与Xen x86核心混搭的产品。届时,Vitis堆栈也将随之调整,确保可以将代码编译到x86核心,同时由Versal负责计算其他复杂元素。我们觉得,AMD公司不太可能把x86或者Arm核心跟GPU混搭起来,但融合FPGA与x86核心的SmartNIC和DPU倒是很可能出现——如果真的出现,甚至是在其中出现了GPU的身影,那绝对是架构发展史上的又一标志性里程碑。AMD自己在SmartNIC领域还是新手,但赛灵思早已经验丰富,还凭借着2019年4月对Solarflare的收购进一步增强了这方面实力。
这就让我们有了更大的想象空间,也是我们自从目前这条混合道路之初就一直希望计算引擎制造商们能够做出的尝试。几乎可以肯定,未来一定会出现插槽内或跨插槽的小芯片元件,各元件之间还具备某种形式的互连。对于AMD和赛思灵,答案当然就是Infinity Fabric。也许是多次升级之后的版本,甚至有可能支持CCIX或者CXL协议;如果Infinity Fabric真正成为PCI-Express的一个超集、并成功融入了AMD HyperTarnsport功能,那我们的想象完全有可能变成现实。而这还没完,把这么多元素封装进统一的混合计算引擎,必然会让插槽变得更大、延迟变得更高。但也许在后摩尔定律时代,把长期闲置的计算资源所对应的芯片空间腾出来实现定制计算没准才是可行之道。
总之,我们期待AMD的答卷。开发一款高性能Zen 4核心,剔除一切矢量引擎,然后要么像以往那样排放更多核心、要么布置少而精的高速核心。我们更倾向后者,因为这样我们才能在这块CPU上获得更惊人的串行性能。我们希望在这块芯片上见到HBM3内存,容量至少也要达到256 GB,这应该不成问题。接下来就是无数从单一插槽中延伸而出的Infinity Fabric连接。也许这样的设计方案会把单芯片功率推上500瓦甚至更高,但我们不在乎。现在来到系统板左侧,我们想要一块杀手级的“Aldebaran” Instinct GPU,再加半块MI200(Instinct MI200在单一封装中容纳有二个逻辑GPU,我们只取其一)或者一整块MI300就够了,到明年的下一代再考虑采用四Aldebaran引擎。具体就由客户来决定吧。GPU周围的空间同样要放上大量HBM3内存。在CPU右侧,可以放上Versal FPGA混合模块,其中包含更多Infinity Fabric连接、去掉Arm核心,同时继续保留DSP引擎、AI引擎以及全部硬模块互连元素。它的作用是充当集成化可编程逻辑引擎,在必要时可以承担起DPU的工作。Infinity Fabric通道一旦断开,就相当于创建了多个集群;当然,也可以从GPU或者CPU这边断开,但我个人更喜欢在DPU上实现Infinity Fabric交换机的想法。
现在,我们就能用这些计算引擎模块帮助客户在系统板上、机架内和各行之间配置自己需要的算力比率了。打个比方,某位客户打算让CPU和GPU保持1:4的比例,再让每套包含单一Infinity Fabric交换机的复杂系统包含2个DPU——没有任何问题。再换个使用场景,出于降低延迟的考虑,GPU可以更靠近DPU(类似于现代超级计算机),而CPU则布置在GPU的另一侧。或者,CPU和GPU都可以从DPU集线器处发出;也可以把CPU放进环形拓扑结构之内,GPU则位于机架内的胖树结构。一切都通过Infinity Fabric互连,同时保证可以在Infinity Fabric交换机上更改拓扑方案,保证不同工作负载总能找到合适的拓扑结构。每个组件都经过高度调优与精简,没有任何累赘的部分,最终实现硬件与软件设计的绝对协同。最后,就是把Infinity Fabric存储连接接入客户选定的持久内存,再轻松以此为基础运行CXL协议。
这就是我们设想中的未来AMD计算系统——没有InfiniBand,也没有以太网连接;除了集群中的头节点之外,一切都作为纯Epyc CPU服务器存在。
没错,如果我是AMD的老大,我就会这么干。
好文章,需要你的鼓励
临近年底,苹果公布了2024年App Store热门应用和游戏榜单,Temu再次成为美国下载量最多的免费应用。
云基础设施市场现在已经非常庞大,很难再有大的变化。但是,因为人们可以轻松地关闭服务器、存储和网络——就像开启它们那样,预测全球云基础设施开支可能非常困难。