11

麦斯科技 · 2022年01月15日

深入Amazon GRAVITON3 ARM 服务器处理器

https://www.nextplatform.com/2022/01/04/inside-amazons-graviton3-arm-server-processor/

2022年1月4日 Timothy Prickett Morgan

aws-graviton3-package-logo.jpg

Amazon Web Services的Annapurna实验室部门设计的Graviton系列Arm服务器芯片可以说是当今数据中心市场上容量最高的Arm服务器芯片,而且它们只有一个客户。好吧,直接顾客。

这两个事实说明了Annapurna实验室为创造更强大的Arm服务器处理器而做出的设计选择,它们与目前市场上针对服务器的另外两个相当大容量的Arm服务器CPU有所不同,即富士通公司的A64FX处理器(https://www.nextplatform.com/2018/08/24/fujitsus-a64fx-arm-chip-waves-the-hpc-banner-high/)和安培计算公司的Altra系列处理器(https://www.nextplatform.com/2021/05/24/the-ampere-arm-server-chip-roadmap-may-lead-beyond-hyperscalers/)。还有其他Arm服务器芯片在为特定的地理位置和使用案例开发,这似乎不鲜见,但它们中没有一个看起来会像Graviton和Altra系列那样成为批量产品;富士通A64FX是一款批量产品,因为使用它的主机,日本RIKEN实验室的“Fugaku”超级计算机,有158976个单插座节点,432个机架。

AWS在拉斯维加斯的re:Invent大会上发布了其第三代Graviton3服务器芯片,但我们未能出席,我们在12月根据当时可用的摘要信息对处理器进行了概述,承诺在技术会议提供更多信息后,返回并进行更深入的信息披露。这一信息现在可以通过Ali Saidi的演讲获得。Ali Saidi是cloud giant负责Graviton实例的高级首席工程师。Saidi更详细地介绍了预览中的64核550亿晶体管Graviton3与之前版本的不同之处,2018年11月预览的16核50亿晶体管Graviton和2019年11月预览的64核300亿晶体管Graviton2。AWS需要几个月的时间才能将Graviton芯片投入全面生产,一旦EC2服务上使用Graviton3芯片的C7g实例投入全面生产并推出预览,我们将了解更多。

首先,Saidi谈到了为什么AWS甚至要费心制造自己的服务器CPU,而制造自己的“Nitro”DPU来减负载虚拟机监控程序以及安全处理和存储,以及X86服务器处理器的网络虚拟化似乎已经足够了。

Saidi解释说:“构建我们自己的芯片确实让我们能够在各种层面上进行创新,更快地创新,提高安全标准,并提供更多价值。”。“在创新方面,能够制造硅片和它所使用的服务器,并让为其编写软件的团队在一个屋檐下,这意味着有更快的创新,我们可以跨越传统的界限。我们还可以为我们的需要制造芯片。我们可以专门为我们正在尝试做的事情而设计,而我们没有添加其他人想要的功能。我们可以只为那些我们认为能够为客户提供最大价值的东西而构建它们,而忽略那些真正没有价值的东西。我们得到的第三个东西是速度。我们可以控制项目的开始、进度和交付。我们可以将硬件和软件开发并行化,并利用我们庞大的云计算规模来完成构建芯片所需的所有模拟。最后是业务。通过运行EC2,我们对操作有很多深入的了解,我们可以在芯片中加入一些功能,比如刷新固件以解决问题或增强功能,而不会干扰机器上运行的客户。”

显然,Graviton的努力不仅仅是为了从Intel和AMD那里获得更便宜的X86服务器芯片价格——尽管Saidi没有提到这一点,但事实也是如此。但只要AWS在其云端托管大量X86客户,它将为其云客户购买Xeon SP和Epyc处理器,用于他们创建的那些不容易移植到Arm体系结构的应用程序,从而受益于Graviton系列在EC2上通过X86实例在各种工作负载和性能上显示的20%到40%的性价比优势情节。

没有人确切知道AWS中有多少Graviton处理器,但我们知道的是,Graviton处理器以某种方式在23个不同的AWS地区和十几个不同的EC2实例类型中可用。

aws-graviton-ec2-instances.jpg

AWS有超过475种不同的EC2实例类型,它们在CPU、内存、存储、网络和加速器配置方面都运行,而Graviton实例显然只是EC2实例中的一小部分。24个地区中有23个地区至少有一些Graviton处理器,这或许是AWS中重力子流行的一个更好的指示——但不一定。我们认为可以诚实地说,与运行web风格工作负载的X86处理器相比,价格/性能提高了30%到40%,并且随着生产线的发展,Graviton芯片的功能越来越强大,我们认为越来越多的AWS软件工作负载与在运行Windows Server或Linux的X86处理器上运行其他人的应用程序无关——想想无数的数据库和SageMaker AI服务,例如–最终将使用Graviton,从而降低这些服务的总体成本,同时保持AWS的利润。

aws-graviton-services.jpg

事实上,Saidi说,对于AWS销售的PaaS和SaaS服务,如果客户在注册该服务时没有明确指定实例类型,他们将在该服务下获得一个Graviton实例。这表明AWS机群中的Graviton服务器数量相当高。今年黄金时段,安装在EC2服务下的Graviron2实例支撑着亚马逊在线零售业务使用的十几项核心零售服务,这一事实也是如此。一个名为Datapath的关键服务,支持亚马逊内部零售数据服务的查找、查询和连接,从X86服务器移植到一个由53000多个基于Graviron2的C6g实例组成的三区域集群。

这就是游戏,这可能就是为什么Intel和AMD在十五年前需要构建自己的云,而不是让Dell、Hewlett-Packard Enterprise和VMware尝试失败的原因。CPU的将在不远的将来深刻影响数据中心的业务。

这也是为什么NVIDIA正在与AWS合作,在今年基于Graviton处理器的并行集群超级计算服务上运行HPC SDK,这将允许使用OpenMP的C、C++和FORTRAN程序并行应用程序在重力实例上运行,这也是为什么SAP正在与AWS合作,将其HANA内存数据库移植到Graviton实例,并将这些实例用作SAP自己的HANA云服务的基础,该服务托管在AWS上。

深入GRAVITON3

Saidi的演示比re:Invent的简介要详细得多,实际上展示了Graviton3封装的一张照片,正如我们所听说的,它是一种芯片设计。这张幻灯片展示了Graviton3 封装:

aws-graviton3-package.jpg

这个芯片的顶部图片放大了一点,但是原始图片很模糊,所以不要责怪我们。这毕竟是一个良好的关于Graviton3封装的图像展示。

下面的示意图更清楚地说明了Graviton3上的芯片是如何分解其功能的:

aws-graviton3-package-schematic.jpg

而不是像AMD在“Rome”Epyc 7002和“Milan”Epyc 7003 X86服务器芯片上所做的那样,将中央I/O和内存芯片以及芯片核心包裹在其周围,Annapurna实验室团队将Graviton3上的所有64个核心都放在中心,然后将DDR5内存控制器(具有内存加密)和PCI Express 5.0外围控制器与这些核心分开。在封装的底部有两个PCI Express 5.0控制器和四个DDR5内存控制器,封装的每侧各有两个。(这是第一款支持DDR5内存的服务器芯片,其带宽比目前服务器中常用的DDR4内存高出50%。当然,其他芯片今年也会支持。)

Saidi称,与Graviton2相比,Graviton3增加了250亿个晶体管,其中大部分用于增强核心,正如AWS实用计算高级总裁Peter DeSantis在其主旨演讲中所解释的,其想法是通过加强流水线,让核心做更多种类的工作,以及更多的工作。就像这样:

aws-graviton3-core-pipeline.jpg

Graviton2基于Arm Holding的Neoverse设计中的“Ares”N1内核,该内核在去年4月推出的“Zeus”V1和“Perseus”N2内核上进行了更新。我们查看了SIMD单元,最初认为Graviton3基于N2内核,而不是V1内核。AWS尚未确认正在使用什么样的内核,但在重新阅读了我们自己去年4月关于N2和V1内核的报道(我们在其中讨论了两个内核上的流水线)之后,很明显,这是一个改进的V1,而不是一个增强的N2。(很抱歉有点混乱)以下是Arm公司最初的V1核心规格,表明V1确实是Graviton3内核:

arm-tech-day-neoverse-v1-platform.jpg

我们尝试猜测V1 core Annapurna实验室在Graviton3中使用的是什么样的缓存等等,我们公开承认这是一个大胆的猜测,如粗体红色所示:

aws-graviton-cpu-table.jpg

无论如何,回到流水线上来。Saidi解释说,与Graviton2的N1内核相比,Graviton3内核的性能高25%——我们认为这意味着每时钟指令数(IPC)更高。Graviton3以稍高的时钟速度运行(2.6 GHz,Graviton2为2.5 GHz)。根据Saidi的说法,内核前端的宽度是它的两倍,并且它还有一个更大的分支预测器。指令调度几乎是两倍宽,指令窗口是两倍宽,SIMD矢量单元的性能是SVE的两倍,支持SVE(富士通和Arm为RIKEN的Fugaku超级计算机A64FX处理器发明的可变长度可伸缩矢量扩展)和BFloat16(谷歌大脑人工智能团队创建的创新格式)。每个时钟有两倍多的内存操作来平衡这一切,还有一些增强的预取器,它可以将两倍多的未完成事务输送到增强的Graviton3内核。核心的乘数更大,而且是原来的两倍。

与之前的Graviton和Graviton2内核以及安培计算Altra系列中使用的内核一样,Graviton3内核中没有试图提高吞吐量的超线程。在安全性和复杂性方面的权衡不值得提高性能——至少在AWS编写应用程序的方式上不值得。

AWS没有做的另一件事是添加NUMA电子设备,将多个Graviton3 CPU连接到共享内存系统中,也没有像Intel通过电路对Xeon SP所做的那样,将核心块分解为NUMA区域,就像AMD在Rome或Milan Epyc包上不必要地使用8个核心块一样。这些核心通过一个运行速度超过2 GHz、双向带宽超过2 TB/秒的网格互连。

Graviton3的一个优点是服务器,我们在12月份讨论过,AWS正在创建一个自制的三节点三套接字服务器,它有一个共享的Nitro DPU将它们与外部世界连接起来。就像这样:

aws-graviton3-servers.jpg

通过将大量CPU功能减负载到Nitro DPU,并在卡上塞入一堆单插槽Graviton3节点,AWS表示,它可以将每个机架的插槽数量提高50%——这可能意味着,与AMD推出的X86处理器相比,它的散热层合理,不会牺牲任何性能。

在之前的Graviton3中,我们已经讨论了一系列性能指标,但这一个显示SPEC 2017整数和浮点测试的指标很有趣:

aws-graviton3-spec-tests.jpg

C7g实例使用的是Graviton3,C6g使用的是Graviton2,这表明前者的整数性能比后者高出约30%,浮点性能比后者高出约60%。C5实例基于Intel的定制“Cascade Lake”Xeon SP处理器,而C5a实例基于AMD的Rome Epyc处理器。C6i实例基于“Ice Lake”Xeon SP。为了更好地进行比较,我们更希望得到这些实例的实际内核数量和时钟速度,但很明显,AWS希望留下这样的印象,即Graviton2已经击败了竞争对手,而Graviton3更加如此。

任何真正的比较都将着眼于整数和浮点工作的内核数量、成本、热量和性能,然后权衡所有这些因素,挑选芯片在实际应用程序上进行实际基准测试。规格测试只是玩游戏的赌注。他们不是游戏。

推荐阅读
关注数
5854
内容数
525
定期发布Arm相关软件信息,微信公众号 ArmSWDevs,欢迎关注~
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息