《考察报告》连载八|云计算大厂的Arm CPU
V1 与 N2:纵横兼顾
在 Armv9 发布一个月之后,Neoverse 系列数据中心和服务器级处理器平台新增了两个核心 IP:基于 Armv8.x 的性能巅峰之作 Neoverse V1,和首个基于 Armv9 设计的 Neoverse N2。Armv8 和 Armv9 并存,分别加强单核(纵向扩展)与多核(横向扩展)方向。
根据侧重点的不同,Arm 将 Neoverse 平台设计分为三大产品系列:
E 系列主要关注效率,在功耗和(芯片)面积的缩减上进行优化;N 系列兼顾性能、功率、面积(PPA),性能与能耗横向扩展,可覆盖从 5G 边缘到云数据中心的广大市场;V 系列旨在提供最佳(单核)性能,每个核心更为复杂,相对而言也会消耗更多面积和功耗。
作为 V 系列的开山之作,Neoverse V1 基于 Armv8.4,同时还为面向高性能计算(HPC)的工作负载引入了 v8.5 和 v8.6 中的一些功能。在制程上,5 ~ 7nm 均可,便于用户过渡。
既然是面向强算力应用场景,Neoverse V1 的最大亮点就是性能得到了大幅度提升,IPC 比早两年推出的 Neoverse N1 增长高达 50%。相关的改进包括取指带宽加倍、加宽的指令解码,更大的 L2 和 L0 BTB,最多可缓存 3K 指令的宏操作 cache,更多的加载 / 存储(Load / Store)单元等等,而这些也都会反映到芯片面积的开销上。
Neoverse V1 还是 Arm 首个支持 SVE 的微架构,具有 2 个 256b SIMD(单指令多数据)流水线,加上对 bFloat16、INT8 数据格式的支持,可以更好地满足 HPC 和人工智能应用的需求。
看名字就知道,Neoverse N2 才是 N1 的继任者。作为三大系列中的第一个“二代”,Neoverse N2 在很多方面都是新的,包括 Armv9-A 架 构、5nm 制程。支持 Armv9 意味着引入 SVE2,不过 Neoverse N2 的 SVE2 数据宽度只有 V1 的一半(2×128b),毕竟 N2 还要兼顾功耗和面积。
借助 5nm 的加成,在保持相同水平的功率和面积效率的基础上,Neoverse N2 的单线程性能比 N1 提升 40%,云端应用的 NGINX 性能提升 30%,5G 和边缘应用的 DPDK 数据包处理能力提升 20%。
△ Neoverse N2 架构示意图
总体而言,Neoverse V1 的性能更强,Neoverse N2 的规格更新更全,面向未来,通用性也更广。以扩展能力为例,两者都支持 PCIe 5.0、 DDR5 和高带宽内存(High-Bandwidth Memory,HBM),区别在于 V1 支持 HBM2e,N2 支持 HBM3,还有基于 PCIe 5.0 的 CXL 2.0,CCIX 版本也从 1.1 升为 2.0。
在同样或相近的晶体管数开支下,是做大单个核,还是增加更多核,Neoverse V1 和 N2 给出了不同的选择。
倚天 710 与 Graviton3
发布仅仅半年之后,基于 Neoverse N2 和 V1 的服务器 CPU 就开始涌向市场。
2021 年 10 月 19 日,2021 杭州·云栖大会上,阿里巴巴正式发布旗下平头哥自研服务器 CPU 倚天 710:率先采用 Armv9 和 5nm 制程,128 个核心,多达 600 亿个晶体管;最高频率 3.2GHz,有 8 个 DDR5 内存通道和 96 个 PCIe 5.0 通道。
从会场展出的阿里云磐久服务器来看,倚天 710 支持双路配置。种种迹象表明,倚天 710 应该是基于 Arm Neoverse N2 核心的产品,兼顾性能和能效。
阿里云第一款使用自研倚天 710 CPU 的实例是通用型实例规格族g8m,从 2022 年 2 月 20 日起开始邀测。g8m 是阿里云第八代 ECS 云服务器的首个成员,“依托第三代神龙架构,提供稳定可预期的超高性能。同时通过芯片快速路径加速手段,完成存储、网络性能以及计算稳定性的数量级提升。”主要针对通用计算、云原生以及Android in Cloud 等场景,主频 2.75GHz,最大的实例规格为 128 个 vCPU、512GB 内存和 64Gbps 网络带宽。
2021 年 12 月 初召开的 AWS re:Invent 大会上,AWS 隆重推出 Graviton3,也采用 5nm 制程,不过基于 Neoverse V1 的可能性更大。
很重要的一个依据是,Graviton3 的晶体管数达到 550 亿,接近 Graviton2 的两倍,核数却保持在 64 个,这些多出的晶体管主要用来增强每一个 CPU 核心。按照 AWS 提供的数据,基于 Graviton3 的 C7g 实例(尚处于预览 阶段)性能比基于 Graviton2 的 C6g 实例高 25%。
AWS 选择让 Graviton3 的核心更“宽”,而不是增加核心数量或显著提高运行频率,来获得更高的性能。从指令获取、解码、发射和指令窗口到 SIMD 和加载 / 存储单元,与 Graviton2 相比基本都达到了翻倍,Graviton3 的上述改进非常符合 Neoverse V1 的特征,而不像是 N2。
Graviton3 对 PCIe 5.0 和 DDR5 内存的支持是 Neoverse V1 和 N2 共有的特性,N2 的其他特性如 CCIX 1.1 升级到 2.0,对 Graviton3 来说似乎意义不大,因为其采用单路设计,3 个 CPU 连接到 1 个 Nitro 扩展卡上,CPU 之间并不直接互连。
值得探究的,是 Graviton3 CPU 内部的互连。
CMN、多核与单核
从前面的介绍中可以看出,Neoverse 平台主要提供 CPU 核心的设计, 要实现服务器 CPU 所需的大量核心,还需要另一个大 IP 的配合,这就是简写为 CMN(Coherent Mesh Network,一致性网格网络)的 SoC 互联 IP。
以 Neoverse N1 来说,配套的互连方案是 2016 年 9 月底推出的 CMN-600,支持 8×8 的网格拓扑,最多 64 个节点(Cross Point,交叉点),每个节点可以有 2 个 N1 核心及其 L2 Cache,理论上这个架构可以支持 128 个核心。
在实现上,网格结构边角上的节点要分出几个用于挂载内存控制器、PCIe 控制器等 I/O 设备,因此留给 CPU 核心的节点数会减少一些。以同样支持双路配置的英特尔第三代至强可扩展处理器(代号 Ice Lake-SP)和 Ampere Altra 系列处理器为例,两者都采用 8×7 的网格结构,具体布局虽有所差异,但留给 CPU 核心的节点均为 40 个。主要的区别在于,CMN 的每个节点上是 2 个核心,至强可扩展处理器则是 1 个核心 2 个线程,结果就是——
- 第三代至强可扩展处理器:40 个核心,80 个线程;
- Ampere Altra 系列处理器:80 个核心,80 个线程。
英特尔和 Ampere 的做法很有代表性,即 x86 处理器的每个核心可以通过超线程技术提供 2 个线程;而对基于 Arm 的处理器来说,单核就是单线程,通过增加更多的核心来提供可以匹敌的线程数。
超线程设计最初是为了物理核数不增加的情况下,在一个芯片上为软件用多线程添加虚拟 CPU 核。超线程 CPU 核心需要为增加的线程提供额外的寄存器集,才可以快速地从一个线程切换到另一个线程。(x86 的)超线程 CPU 核心在软件看起来像 2 个核心,每个核心执行一个线程。超线程与多核相结合,产生具有很多虚拟 CPU(vCPU)的处理器芯片。在云计算中,一个 vCPU 通常对应的就是一个线程。
由此,对于虚拟化的云实例来说,(x86 的)超线程就实现了单个 CPU 上翻倍的虚拟化密度,继而实现更高的可售卖核数。然而,超线程 CPU 核心中的 2 个 vCPU 毕竟不是独立的物理核心,存在资源争用和隔离导致的一系列问题:
- 性能:(同一个物理核心中的)2 个 vCPU 共享 L1 和 L2 Cache 等资源,在多数情况下都不可能达到 2 个物理核心的性能,在某些应用场景下,打开超线程反而会导致性能下降;
- 安全:两个线程之间的共享资源有可能导致数据泄露,这在前几年 Meltdown 与 Spectre 引发的一轮轮漏洞危机中已有体现。所以 AWS 一直坚持任何一个(物理)核心不能共享给两个客户,vCPU 都 是双数;
- 能耗:关掉超线程,闲置的晶体管仍会继续耗电。
对于有无超线程的区别,OCI(Oracle Cloud Infrastructure)在网页上提醒用户,其计算实例的计量单位 OCPU(Oracle CPU)是不同的,即:
- 在 x86 CPU 架构(AMD 和英特尔)上,1 OCPU = 2 vCPU;
- 在 Arm CPU 架构(Ampere)上,1 OCPU = 1 vCPU。
超线程可以说是 CPU 发展过程中积累的衍生资产,譬如传统的 RISC 服务器 CPU 甚至每核能提供多达 4 ~ 8 线程。在这方面,作为数据中心和服务器市场上的后起之秀,Arm 阵营既没有遗产也没有包袱,Ampere 和 AWS 的产品都采用单核单线程的设计,为的是能提供更好的安全隔离以及所有核更为一致的性能表现,系统能随着运行核数的增加而呈现线性扩展。
Chiplet 期待更多
2021 年,在 Altra 系列的基础上,Ampere 推出了代号 Mystique 的 Altra Max 系列,核数大增 60%,来到 128 核,提高了 Mesh 的工作频率以支持更多的核心,但最高的频率组合下降到 2.8/3.0GHz(M128-30),保持 TDP 不超过 250 瓦。Altra Max 系列的一大优势是与 Altra 系列兼容,也支持双路配置,可以沿用之前的服务器平台。
与 Neoverse V1 和 N2 配套的互联 IP 升级到了 CMN-700,网格规模扩展至 12 × 12,是 CMN-600 的 2.25 倍(144 ÷ 64),单个 CPU 的核数可以多达 256 个,也支持更大的系统级 Cache(SLC)、CCIX 2.0 和 CXL 2.0。
如果说 CMN-700 为多核 CPU 的设计提供了更好的支持,那么 Chiplet 就是为多核 CPU 的制造提供了帮助。以 Graviton3 为例,虽然还是 64 核,但每个核心的复杂度明显上升,总的晶体管数相当接近 128 核的倚天 710,分成多个小芯片,有助于保证制造的良率。
△左:Ampere Altra 宣传图片;中:AWS Graviton3 逻辑布局;右:Graviton3 实物图
网格架构 CPU 核心居中、I/O 控制器在边角的特征,对 Chiplet 拆分芯片还是有一定影响的,Graviton3 的布局就反映了这一点:一共 7 个晶片(die),64 个核心在最大的晶片上,外围的三面各 2 个较小的晶片——左右 4 个 DDR(控制器)晶片、下方 2 个 PCIe(控制器)晶片。这种做法同样体现了 CPU 核心与 I/O 器件相分离的思想,需要的话也可以单独调整 CPU 核心的数量。
飞腾腾云
这两年国产 CPU 的话题热度持续走高,说起国产,许多人第一个想到的就是飞腾(Phytium),这也是很早就启动 Arm 处理器研发的中国企业。2014 ~ 2019 年的这 5 年中,飞腾相继推出基于 Arm 架构的 FT-1500A、FT-2000、FT-2000A/2、FT-2000+/64、FT-2000/4。到了 2020 年,飞腾以“芯算力·新基建·新引擎”为主题推出了新一代的多路服务器 CPU,也吹响了向数据中心前进的冲锋号。
作为目前国内能够提供最全 CPU 体系的厂家,飞腾的产品线包含了高性能服务器 CPU、高能效桌面 CPU 以及高端嵌入式 CPU 三个产品谱系。不同于以往字母缩写“FT”的命名方式,全新的产品线分为腾云 S 系列、腾锐 D 系列和腾珑 E 系列三种。其中,腾云 S 系列寓意“腾云驾数,乘风破浪”,为服务器和数据中心应用提供强算力、 高并发的计算能力;腾锐 D 系列寓意“腾锐披坚,追风逐电”,打造高性能、高安全的单用户极致体验;腾珑 E 系列寓意“腾珑灵动,烈风迅雷”,提供定制化的、契合各行各业嵌入式应用的解决方案。
△ 腾云 S2500 数据亲和多核处理器体系结构
面向数据中心应用的多路服务器芯片腾云 S2500 是一款继承自上代产品 FT-2000+/64 的全新处理器,集成 64 个自主研发的 ARMv8 指令集兼容处理器核心 FTC663,采用 16nm 制程,主频 2.1GHz,典型功耗 136W,TDP 达 200W。腾云 S2500 有 32MiB L2 和 64MiB L3 Cache,支持 8 通道 DDR4-3200 内存,1 个 x1 和 2 个 x16 PCIe 3.0。
由于面向多路互联市场,腾云 S2500 重点改进的就是体系架构,增 加了 4 个直连接口,总带宽 800Gbps,支持 2 路、4 路及 8 路直连,缓存一致性协议从单路 64 核扩展到了 8 路 512 核。这也就意味着基于腾云 S2500 的服务器也可以包括双路、四路及八路服务器,可支持 4TB 内存、8 路 PCIe 3.0 加速卡等配置。这个规格在业界算是 达到了主流水平,可以应对云计算需求。当然作为国产平台,飞腾 S2500 也有自己的“独门秘籍”,比如支持内存镜像存储可靠性增强及面向应用的安全增强技术,还可以避免幽灵(Spectre)、熔断(Meltdown)等漏洞的影响。
相比上一代产品 FT-2000+ 单路服务器 CPU,腾云 S2500 的性能提升明显。根据飞腾研究院的测试数据:在整机性能方面,双路的 SPECint 分值为原来的 2 倍,四路的 SPECint 值为原来的 3.5 倍;在分布式数据库性能方面,双路服务器的 tpmC 值线性提升至原来的 2 倍,四路的 tpmC 值增长至原来的 4 倍。在云桌面支持方面,双路服务器支持虚拟机 70 个,增长至原来的 2.5 倍,四路服务器支持虚 拟机 140 个,增长至原来的 5 倍。
飞腾方面宣称,腾云 S2500 将依托高可扩展、高性能、高安全、高可靠、高能效这五大核心能力,大幅提升政务云和大数据基础设施底座的算力,还使飞腾平台逐步具备了对算力要求更高的电信、金融等新基建核心行业核心业务的支撑能力。通过赋能云计算、大数据、边缘计算、5G、AI、区块链等技术,腾云 S2500 将在政务、数字城市、电信、金融、能源、交通、工业制造等众多行业获得广泛应用。
按照规划,飞腾后续还将推出腾云 S5000 等更高阶的产品。