一个月前,在亚马逊云科技(AWS)举办的芯片创新日上,AWS副总裁James Hamilton在讲述公司的定制芯片之旅时提出了两个观点:一是鉴于当前使用Arm架构的芯片出货数量,他确信Arm最终一定能设计出优异的服务器CPU;二是随着时间的推移,越来越多的功能正逐渐从主板迁移到SoC上,手机领域已现端倪,服务器领域自然也会效仿。这促使AWS下定决心开始打造属于自己的芯片,于是他们在2015年收购了Annapurna Labs,并诞生了基于Arm Neoverse架构的AWS Graviton系列CPU。
然而这只是故事的开始。除了AWS外,今年内,Arm Neoverse还得到了微软、谷歌、阿里巴巴、甲骨文等科技巨头,以及Ampere Computing、英伟达等独立芯片设计公司的强力支持,这被Arm高级副总裁兼基础设施事业部总经理Chris Bergey视作Arm Neoverse在今年取得的若干具有里程碑意义的成就之一。
此外,在5G RAN、高性能计算(HPC),甚至更为传统的“企业”领域,Arm Neoverse也斩获颇多。包括VMware运用DPU开展Monterrey项目;RedHat的OpenShift支持Arm 架构;SAP HANA正将其云基础设施迁移到AWS Graviton上;6月,HPE推出了ProLiant第11代平台,搭载了基于Arm Neoverse的Ampere Altra处理器。
改头换面的云基础设施
“如今的基础设施是定制化打造——从SSD到HDD,从DPU到视频加速器,服务器CPU算是最后的标准产品,它将不会作为通用型产品继续发展。”Chris Bergey指出,当前大型互联网公司的电力支出占到总拥有成本(TCO)的30-40%,仅微次于电信网络运营商,功耗问题不容小觑。同时,数据速率发展太过迅猛,导致计算工作负载急速增长,而且愈加复杂,机器学习(ML)和人工智能(AI)正在发挥取代作用。
也就是说,规模、性能和能耗正成为当前基础设施面临的核心挑战,未来,基础设施将更倾向于可加速、高能效和易于部署,愈发需要高性能、高能效的计算基础,以及专用处理和工作负载加速能力。
为此,2018年10月,Arm首次宣布推出面向云到边缘基础设施产品Neoverse及其初步路线图,并承诺平台效能30%的年增长率指标将持续到2022年及以后。两年后,也就是2020年9月,Neoverse家族宣布再度进阶,新增两个全新的平台—Neoverse V1平台以及第二代N系列平台Neoverse N2。
根据Neoverse平台PPA设计原则,N系列强调性能、功率、面积得到同等考量,擅长可扩展;E系列主要关注效率,对于网络流量和数据应用程序非常有效,在功耗和面积的缩减上进行优化;V系列旨在提供最佳性能,需要添加更大的缓存、窗口和队列,相对来说会消耗更多面积和功耗。
技术领先当然是Chris Bergey强调的重点。他用下图展示了Arm生态系统伙伴取得的多项行业第一:
• 第一个总内存带宽超过每秒1TB的CPU
• 第一个单块裸片上能配置超过100个核心的CPU,核心数达到128个
• 第一个将DDR5和PCIe Gen5.0推向市场的CPU
• 第一个在SPEC CPU 2017基准测试中打破500整型跑分的CPU
同时,得益于对AMBA CHI、UCIe、CXL等关键芯片互联技术的持续开发和投入,Arm合作伙伴产品的计算性能和效率也得到了快速发展。例如NXP Layerscape虽然只有8个核心和8MB缓存,却拥有每秒100GB的网络带宽和安全加密、PCIe扩展等功能;NVIDIA Grace配备144个高性能核心,并使用低功耗DDR5,达到每秒1TB的内存带宽。
软件方面,Arm希望能够为软件开发者提供流畅的体验,通过标准、平台安全性与参考实施,让行业伙伴对在Arm平台上部署“装机即用”的软件充满信心。Chris Bergey透露称,目前Linux操作系统、云原生软件、多个CI/CD工具都已运行于Arm架构之上,并得到了所有领先编程语言、运行库、关键技术库和编译器的认可与优化。最新的数据显示,排名前50位的Amazon EC2客户中,有48家现在运行基于Arm Neoverse的AWS Graviton处理器,其中就包括Twitter Feed、Snap和AirBnB等公司;Epic Games在短短数周内就将数百万行C++代码移植到Arm上,等等。
打造云原生软件的基石
在云基础设施市场,单芯片性能和单线程性能是云决策者最为看重的两大关键指标。单线程性能使其了解,对“扩展”要求最高且性能需求大的工作负载能否迁移到 Arm。同时,高单芯片性能则使其可以通过大量运行在平台上的 “横向扩展”工作负载,来实现投资价值的最大化。
Arm基础设施事业部产品解决方案副总裁 Dermot O’Driscoll指出,超大型互联网公司十分关心TCO支出所能带来的性能,因为这是他们盈利的关键。“现在的市场上,使用Arm Neoverse V1核心的AWS Graviton3可提供最高的单线程性能,即便是即将上市的竞品CPU也无法动摇它的领先地位。而Ampere Altra Max和阿里的倚天710能在所有CPU中提供最佳的单芯片吞吐量。“他说。
但光有硬件还远远不够,如前文所述,Arm一直在努力优化运行在Arm架构上的全栈解决方案,包括架构、IP、技术库、运行环境和编译器,以获得最大性能。以主流数据存储MongoDB的应用程序栈为例,可以看出,基于Graviton2和Intel Xeon的对比实例,测得前者性能高出后者117%。
这归功于Armv8.1架构中引入的大型系统扩展(LSE)。该功能旨在为“大型虚拟化工作负载”,即在服务器上运行的应用程序提供更出色的性能。同时,MongoDB还利用了 OpenJDK运行时间,所以在OpenJDK中,必须确保LSE能被识别、启用和优化。当然,前提是先得确保Java的正常运行。在GCC和Clang编译器中也是同样操作,这二者均用于构建MongoDB。
考虑到机器学习正逐渐成为未来的首选工作负载。Arm在V1核心中专门新增了一组用于增强ML应用程序性能的功能:
- 在架构方面,添加了Bfloat16 (BF16)
- 调整了V1、N2以及后续设计的微架构,旨在通过BERT提高BF16的执行
- 为Arm计算库(ACL)增加BF16支持
- 将ACL集成到oneDNN ML框架中
- oneDNN框架与Tensorflow搭配使用以运行BERT
通过对比测试可以发现,在基于V1核心的AWS EC2 C7g上运行BERT,并将其与使用最新Xeon核心的C6i进行对比,会发现在Arm架构上经BF16优化的堆栈性能比英特尔高出80%。即便在纵向对比中也能发现,在V1中添加BF16和Int8 MatMul意味着ML模型可以更紧凑地植入内存,因此它们需要更少的内存带宽,从而使Graviton3的ML性能达到 Graviton2的3倍。
新产品,按需打造
Neoverse V2平台(代号“Demeter”)配备最新的V系列核心和产业广泛部署的Arm CMN-700 mesh互连技术,将为云和HPC工作负载提供市场领先的整型性能,并引入若干Armv9架构安全增强功能。
目前,已经有多家合作伙伴在Neoverse V2的基础上进行设计。其中,NVIDIA正利用Neoverse V2作为其Grace数据中心CPU的计算基础。Grace将结合Neoverse V2的能效与LPDDR5X内存的能效,带来高出传统架构的服务器2倍的每瓦性能表现。
Dermot O’Driscoll说对于V2,Arm方面收到的反馈来自三方面:“希望提升云工作负载的性能”、“在平衡功耗和面积的同时,继续推进单线程性能”、以及“尽早发货,帮助我们快速开拓市场!”。
因此在设计中,Arm将Neoverse V2的专用L2缓存增加到了2MB,这比V1中的L2缓存大了一倍,且使用延迟的负载不变,能让MySQL和Memcached等云应用获得显著的性能提升。同时,对于像HPC之类正快速迁移到云端的工作负载而言,矢量性能依然很重要,因此Neoverse V2完成了从SVE到SVE2的过渡,添加了更多加密指令,并将矢量引擎重构为4通道128位,以提高其有效吞吐量。
CMN-700 mesh互连支持每块裸片最高512MB的系统级缓存和每秒4TB的mesh 带宽,并且在设计中增加了每个核心的系统级缓存,从而提升了云原生工作负载性能。CMN-700支持2.5D设计,并可随时过渡到3D架构,从而将每个核心的缓存水平推向新高。
Neoverse E系列CPU正广泛应用于数据平面处理、5G RAN、边缘网络和加速器等领域。为助力这一多样性,Arm推出Neoverse E2平台,结合Arm Cortex-A510 CPU 与可扩展的Neoverse CMN-700和N2系统背板,如此一来,条件相对受限的应用也能充分利用诸如可扩展的核心数量范围、Arm SystemReady兼容性以及PCIe、CXL、IO和接口等云技术。
此外,作为Arm持续投入于高效的性能和高效的吞吐量的一部分,新一代N系列产品正在开发中,并将于2023年推出。与N2的市场领先效率相比,新一代N系列CPU 将在性能和效率方面实现代际提升。
Arm基础设施事业部产品管理高级总监Brian Jeff对《电子工程专辑》表示,云原生是一种开发方式,会优先考量基于容器的软件和微服务,Arm发现这一模式很适合于高核心数的设计,配有大型专用的单核L2缓存和专用内核,而非虚拟线程。因此,Arm Neoverse核心的设计实际上考虑到了这些目标。在云原生设计的其他元素方面,Arm关注的是基础设施的云工作负载,Arm为此调整了Neoverse产品线中的流水线,使其在这些特定的云原生工作负载中能展现更优异的表现。