发布于: Jul 22, 2022
ARM 处理器不仅仅统治了手机、嵌入式应用这些传统的优势领域,或将在桌面系统、高性能计算尤其是云计算领域扮演越来越重要的角色
ARM 与云计算的结合似乎是一个必然的趋势,最近 ARM 处理器迅速崛起。过去两个月的科技媒体上关于 ARM 芯片的新闻可谓是高潮迭起,不断的引起人们的关注。
首先是在 5 月 11 日,Amazon Web Services 宣布了基于自研的 Graviton2 处理器(使用了 ARM Neoverse N1 核心)的第六代 EC2 实例 – M6g 正式发布。这似乎揭开了云计算服务市场上 ARM 处理器大规模应用的的序幕。
紧接着,在今年 6 月 23 日的 WWDC 大会上,Apple 公司宣布了一个影响深远的决定:
- 计划从 2020 年年底开始,Mac 计算机将会从 Intel 芯片过渡到使用基于 ARM 的自研芯片。也许我们要问,ARM 处理器将将会在桌面设备上复制移动设备的成功吗?
- 第三则新闻是关于高性能计算。6 月 22 日发表的最新的一期 TOP500 榜单上,日本的 Fugaku系统以 415.5 千万亿次浮点运算的高性能 LINPAC 成绩成为 TOP500 的第一名。而令人惊讶的是这是第一个使用 ARM 处理器的高性能处理系统。
林林总总,即使我们是半导体行业的门外汉也不难得出一个结论 – ARM 处理器不仅仅统治了手机、嵌入式应用这些传统的优势领域,或将在桌面系统、高性能计算尤其是云计算领域扮演越来越重要的角色。
以往我们熟悉的 Amazon Web Services 所提供的的计算资源所使用的多为 Intel® Xeon® 处理器,例如 Skylake 、Ivy Bridge、Broadwell 以及 Haswell 等 Intel 的多个系列的 CPU。即使在 2018 年新出现的使用了 AMD EPYC 处理器的新的实例类型(M5a、R5a 以及 T3a 等),其 CPU 的架构体系与 Intel 的 CPU 也还同属 “x86-64” (也被称作 x64、AMD64 以及 Intel 64 等) 体系架构。抛开 Intel 与 AMD 半世纪的爱恨情仇,我们可以简单的把这些处理器视作一类。
而这一次 M6g 实例上的处理器却与以往大有不同,采用的是一款名为 Graviton2 处理器,是由 Amazon Web Services 使用 64 位 ARM Neoverse N1 内核定制而成。说起 ARM 处理器,我们所了解的是其在移动计算市场的所向披靡,却一直在桌面计算、服务器等对性能要求更高的市场中表现不佳。在过去数年中,ARM 不止一次对高性能处理器领域发起挑战,但多以惨淡的结果收场。而转机就出现在 2019 年初 ARM 发表的 Neoverse N1。对于这一次的发布,ARM 的设计目标就是使其成为一个高性能架构,并重新调校了微架构使其能够以更高的频率运行。在这一点上,ARM 与 AMD、Intel 的路线有所不同,后两家面向高性能平台的处理器产品受制于功耗、面积等因素,频率相比消费级产品要低。但是在 N1 的设计中却恰好相反,处理器的频率相对更高。不仅如此,Neoverse N1 还有一些独特设计,例如缓存的设计。N1 中的 L1 数据缓存和指令缓存部分都是 64KB、4-Way 设计。其中最重要的改变是整个缓存完全采用了一致性设计,它大幅度简化了虚拟环境的实现并且极大地提高了性能。而且这一设计对 ARM 在超大规模计算中保持竞争力也是必须的,因为这可以很方便地扩展核心数量。而这一点在 Graviton2 处理器上表现的淋漓尽致。与第一代 Amazon Web Services Graviton 处理器相比,Graviton2 处理器实现了性能和功能飞跃,性能提升 7 倍、计算内核数量增加 4 倍,缓存增加 2 倍,内存速度提升 5 倍。
总体来看,Graviton2 与 N1 平台差异不大,且采用了 TSMC 的 7nm 工艺。当然细微差异还是存在的。例如 Graviton2 的 CPU 内核的时钟频率较 N1 要低一些。我自己运行一个简单的测试程序得到的 Graviton2 时钟频率约为 2.5GHz,并且 L3 缓存为 32MB 而不是公版的 64MB。该系统由 8 通道 DDR-3200 内存控制器支持,并且 SoC 支持 64 个 PCIe4 通道用于 I/O。至于这款芯片的功耗,考虑到 ARM 宣称的 64 核 2.6GHz CPU 的功耗约为 105W,以及 Ampere 最近披露的其 80 核 3GHz N1 服务器芯片的功耗为 210W。ANANDTECH 对 Graviton2 给出的的估算结果是功耗大致位于 80 瓦至之 110 瓦之间。
现代的 CPU 存在着核心数量越来越多的趋势。随着系统中的核心数量的增多,服务器芯片中的内存性能成为了影响性能至关重要的因素。借助 8 个 DDR4-3200 内存控制器, Graviton2 芯片具有先进的内存功能,理论上可提供高达 204GB/s 的峰值带宽。在 ANANDTECH 的测试中, Graviton2 的单个 CPU 内核能够以高达 36GB/s 的速度传输写入数据。内存加载速度高达 18.3GB/s,内存复制达到了令人印象深刻的 29.57GB/s,这是测试中 AMD 系统的两倍以上,几乎是 Intel 系统的三倍。关于 ANANDTECH 的这份测试报告,可以访问这个链接来了解: https://www.anandtech.com/print/15578/cloud-clash-amazon-graviton2-arm-against-intel-and-amd
与一年前发布的第一代 Amazon Web Services Graviton 处理器相比,Graviton2 处理器不管在性能还是功能上都实现了一次巨大的飞跃。它们都支持 Amazon EC2 M6g、C6g 和 R6g 实例,而且与当前这一代基于 x86 的实例相比,这些实例为各种工作负载(包括应用程序服务器、微服务、高性能计算、电子设计自动化、游戏、开源数据库和内存中的缓存)提供高达 40% 的性价比提升。Amazon Web Services Graviton2 处理器也为视频编码工作负载提供增强的性能,为压缩工作负载提供硬件加速,并为基于 CPU 的机器学习推理提供支持。它们可以提供高 7 倍的性能、多 4 倍的计算核心、快 5 倍内存和大 2 倍缓存。
在 Amazon Web Services re:Invent 2019 大会上,EC2 产品团队分享的几组处理器 Benchmark 的结果就让人兴奋不已。
此外,在今年 3 月份 KeyDB 分享了它们针对 M6g vs M5 实例上的性能对比测试。众所周知,KeyDB 是 Redis 的多线程超集,由于其先进的体系结构,具备了很好的性能表现。
他们的测试结论是这样的——
“M5 实例使用 Intel Xeon Platinum 8175 处理器,与其他大多数可用实例类型相比,它们通常为我们带来非常好的效果。令我们震惊的是,在较小的使用 Amazon Web Services Graviton2 处理器的 M6g 实例上,与现有的 KeyDB M5 实例相比,获得了如此巨大的收益。
m6g.large 比 m5.large 快 1.65 倍,而 m6g.xlarge 则比 m5.xlarge 快 1.45 倍。随着内核数量的增加,两种产品之间的差距开始缩小。但是,我们仍在研究 m6g.2xlarge 和 m6g.4xlarge 的性能,因为我们相信可以将性能水平提高到相同的倍数。在此测试中,我们没有针对 M6g 进行任何调整,因此我们对即将到来的结果感到乐观。”
而在今年的 5 月 15 日,在测试工具市场久负盛名的 Phoronix 发表了一篇关于使用 Graviton2 CPU 的新 M6g 实例的性能测试的文章。他们使用 M6g 实例作为基准。然后将这些实例与较早的 A1Graviton 实例进行比较。在 Intel Xeon 方面,选择了 M5 实例,在 AMD EPYC 方面选择的是 M5a 实例。该测试报告的全文的链接在这里:https://www.phoronix.com/scan.php?page=article&item=amazon-graviton2-benchmarks&num=1
这里仅仅撷取其中的部分结果以供各位参考:
1. Linux Kernel (V5.4) 的编译时间,数字越小越好
2. Memcached mcperf v1.6.0, 数字越大越好