亚马逊自研Arm服务器芯片带来的启示

众所周知,对于在数据中心运行的任何类型的设备,我们都喜欢分析其馈送、速度、插槽和瓦特指标。我们也喜欢算账,因为对于世界上最大的数据中心,以及那些从基础设施中出租云计算的人来说,每单位电力消耗的每单位工作成本影响非常大。

这个等式肯定比其他任何方式都更能推动超大规模计算,对于那些拥有平台和软件即服务以及原始基础设施的云构建者来说,它也推动了它们。

因此,我们一直在热切地等待来自亚马逊网络服务的自研 Graviton3 Arm 服务器芯片的可用性,或者更准确地说,来自该公司的 Annapurna Labs 部门,该部门生产 Nitro DPU、Graviton CPU、Trainium AI 训练定制 ASIC ,及其 Inferentia AI 推理引擎。(我们认为AWS 很有可能也在设计自己的交换机 ASIC。)

AWS在去年 12 月的 re:Invent 2021 大会上发布了 Graviton3 芯片。回顾他们的芯片发展历程,在创建了基于 Arm 的 Nitro DPU 以从其 X86 服务器上卸载计算、网络和存储虚拟化和加密工作后,AWS 在 2018 年决定扩大规模并创建初始 Graviton,以测试在生产中使用 Arm 服务器的想法。最初的 16 核 Graviton1 并没有那么令人印象深刻,但比它的许多 X86 服务器实例提供了更好的性价比,并且它非常适合作为测试平台并进行在许多企业中占主导地位的适度整数工作加工。

e37a09bf8c93589b933f3accd05d5c1e.jpg

一年后,在看到 Graviton1 受到热烈欢迎并希望控制其更多堆栈之后——在冠状病毒大流行使所有 IT 供应商希望他们更严格地控制其供应链之前的几年——AWS 推出了基于“Ares”的 Graviton2 ” 来自 Arm Holdings 的 Neoverse N1 内核,将非常可观的 64 个内核塞进了一个芯片上,并制造了一个真正的服务器级 CPU,而不仅仅是一个自称服务器领域的 DPU。

借助 Graviton3,AWS 正在从 Ares 核心切换到“Zeus”V1 核心,它没有更多的整数性能——根据目前显示的陈述和基准,在 AWS 设计中大约在 25% 到 30% 之间– 但与 Graviton2 相比,它具有 2 倍的浮点性能和 3 倍的机器学习推理性能。再加上 50% 的内存带宽,以保持一切平衡。

AWS 已经明确了 Graviton3 芯片的更多细节,我们也更新了 Graviton 系列芯片的显着特征表:

图片

AWS 的杰出工程师 James Hamilton 经常支持其定制硬件和数据中心设计,他在简短的视频演示中揭示了 Graviton3 中 L1 和 L2 缓存的大小,并补充说,成千上万的客户正在使用 Graviton 芯片,并且23 个 AWS 区域中有 13 个实例系列基于 Graviton 系列 CPU。

目前,Graviton3 CPU 仅在美国西俄勒冈州和美国东弗吉尼亚州地区有售,目前尚不清楚安装了多少。但据推测,这款芯片将成为 AWS 津津乐道的一款芯片,因为它在大量工作负载中的性能得到了根本性的提升,并且在整数工作中的性能和价值不断提高。

为了让您了解 Graviton 系列的演变和广度,我们整理了一些表格和图表进行比较。让我们从 2018 年的 Graviton A1 实例开始,正如我们所说,它实际上只是经过修饰的 Nitro。这些数量并不多,而且它们在功能方面也没有很多:

图片

对于不支持同时多线程 (SMT) 的 Graviton 芯片,虚拟 CPU(或 vCPU)是一个物理内核。对于 Intel Xeon SP 和 AMD Epyc CPU,vCPU 是一个线程,每个内核有两个线程。无论如何,如您所见,基于 Graviton1 芯片的 A1 实例只有 AWS 网络上的弹性块存储 (EBS) 作为存储(意味着没有本地闪存或磁盘),并且它们的 EBS 和以太网网络性能相当适中。它们的时间也很便宜,并且为适度的工作负载提供了可接受的性能。

我们已经从 AWS 所做的陈述向后工作,以估计这个故事的表格中 Graviton 系列芯片的 EC2 计算单元 (ECU) 相对性能(以及我们之前在 Graviton 上所做的表格),因此我们最终可以找到一个Rosetta Stone 在 AWS 云上的 X86 和 Arm 服务器之间进行相对性能比较。(我们自己不做基准测试,但我们希望能够进行比较,即使它们对某些人来说是可憎的。)

接下来,AWS带来了有Graviton2 芯片,下面我们正在查看基本 C7g 实例,顺便提一下,AWS 在 2021 年 3 月没有将其用于与 Xeon 服务器进行比较,我们对其进行了扩展并进行了初始 ECU 估计。以下是 C6g 实例:

图片

在这些比较中,AWS 将其具有本地 NVM-Express 闪存的 C6gd 实例与其 R5gd Xeon SP 8000 Platinum 实例和其 R6gd 实例(再次使用 Graviton2)与非常旧的 Xeon E7-8800 v3 实例进行了对比。

图片

基于 Graviton3 的 C7g 实例刚刚面世,这些都是只有 EBS 存储的裸机实例,但它们的网络性能有所提升,EBS 性能也有所提升,而整数性能提升了 25% 之间和 30%,按需实例的每小时成本增加了 6.7%。我们假设 30% 是衡量原始性能提升的更好指标,我们调整了我们的 ECU 数字以在上表中反映这一点。当你进行数学运算时,至少就整数工作而言,Graviton3 的性价比比 Graviton2 高 18%。

我们很难将生产线的性能和价格/性能可视化,因此我们创建了此图表来帮助您了解 Graviton 如何提高性能并降低每单位性能的成本。看一看:

图片

随着 Graviton 的每一代新品推出,每单位容量成本的橙色条越来越短,而性能的黑色条越来越长。我们有理由相信 Graviton4 会继续这种趋势,我们预计今年冬天在 re:Invent 2022 上,他们将推出使用台积电的精制 5 纳米工艺,甚至是 4 纳米工艺的graviton4,激进点看,AWS采用3 纳米工艺也有可能,这可能意味着要等到 2023 年,除非台积电提前解决了这个问题。

深入剖析亚马逊最新Arm服务器芯片

由 Amazon Web Services 的 Annapurna Labs 部门设计的 Graviton 系列 Arm 服务器芯片可以说是当今数据中心市场上产量最大的 Arm 服务器芯片,并且它们恰好拥有一个且只有一个客户,也是直接客户——AWS。

这两个事实说明了Annapurna Labs 为创建更强大的 Arm 服务器处理器所做的设计选择,并且它们区别于其他两种针对当今市场上服务器的合理大容量 Arm 服务器 CPU,即富士通的 A64FX 处理器和Ampere Computing 的 Altra 家族。还有其他针对特定地区和用例的 Arm 服务器芯片正在开发中,这似乎总是存在,但它们看起来都不会像 Graviton 和 Altra 系列那样成为批量产品;富士通 A64FX 是量产产品,因为有使用它的主机——日本理研实验室的“Fugaku”超级计算机。

AWS 在拉斯维加斯的 re:Invent 大会上推出了第三代 Graviton3 服务器芯片,我们未能参加,我们在 12 月根据当时可用的摘要信息对处理器进行了概述,承诺在提供更多来自技术会议的信息时回过头来进行更深入的研究。该信息现在可以从云巨头负责 Graviton 实例的高级首席工程师 Ali Saidi 的演示中看到。Saidi 更详细地介绍了预览中的 64 核、550 亿晶体管 Graviton3 与其前身——2018 年 11 月预览的 16 核、50 亿晶体管 Graviton 和 2019 年 11 月预览的64 核、300 亿晶体管 Graviton2 的不同之处。AWS 需要几个月的时间才能使 Graviton 芯片全面生产,一旦使用 Graviton3 芯片的 EC2 服务上的 C7g 实例全面生产并停止预览,我们就会知道更多。

首先,Saidi 谈到了为什么 AWS 甚至费心制造自己的服务器 CPU,也许制造自己的“Nitro”DPU 来卸载 X86 服务器处理器的管理程序以及安全处理和存储以及网络虚拟化似乎就足够了。

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

显然,Graviton 的努力不仅仅是从英特尔和 AMD 那里获得更便宜的 X86 服务器芯片价格——尽管它也是如此,即使Saidi没有提到它。但只要 AWS 在其云中托管大量 X86 客户,它就会为其云客户购买 Xeon SP 和 Epyc 处理器,用于他们创建的那些不易移植到 Arm 架构并因此从 20 Graviton 系列在 EC2 上的 X86 实例上显示了 1% 到 40% 的性价比优势,涵盖了广泛的工作负载和场景。

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

图片

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

图片

事实上,Saidi 表示,对于 AWS 兜售的 PaaS 和 SaaS 服务,如果客户在注册服务时没有特别指定实例类型,他们将在该服务下获得一个 Graviton 实例。这表明 AWS 队列中有相当多的 Graviton 服务器。事实上,在今年的 Prime 会员日,安装在 EC2 服务下的 Graviton2 实例支持了亚马逊在线零售业务使用的十几个核心零售服务。曾经支持跨 Amazon 内部零售数据服务的查找、查询和联接的关键服务 Datapath 从 X86 服务器移植到由超过 53,000 个基于 Graviton2 的 C6g 实例组成的三区域集群。

这就是事实,这可能也是为什么英特尔和 AMD 需要在 15 年前构建自己的云,而不是让戴尔、惠普企业和 VMware 尝试并失败的原因。在不久的将来,CPU 将成为数据中心的弱势群体。

这也是英伟达今年与 AWS 合作使其 HPC SDK 在其基于 Graviton 处理器的 ParallelCluster 超级计算服务上运行的原因,这将允许使用 OpenMP 的 C、C++ 和 Fortran 程序并行化应用程序以在 Graviton 实例上运行,并且这也是 SAP 与 AWS 合作将其 HANA 内存数据库移植到 Graviton 实例并将这些实例用作 SAP 自己的托管在 AWS 上的 HANA 云服务的基础的原因。

探索Graviton3内部

Saidi 的演讲比 re:Invent 主题演讲详细得多,实际上展示了 Graviton3 封装的一个镜头,这是我们听说的小芯片(chiplet)设计。这是显示 Graviton3 封装的幻灯片:

图片

这个die顶部的特写图像放大了一点,但原始图像是模糊的——所以不要怪我们。这与 Graviton3 封装的图像一样好。

下面的示意图让 Graviton3 上的小芯片如何分解其功能更加清晰:

图片

Annapurna Labs 团队没有像 AMD 使用“Rome”Epyc 7002 和“Milan”Epyc 7003 X86 服务器芯片那样拥有中央 I/O 和内存芯片,然后围绕它的小芯片内核,而是保留了所有 64 个内核在中心的 Graviton3 上,然后断开与这些内核分离的 DDR5 内存控制器(具有内存加密)和 PCI-Express 5.0 外围控制器。封装底部有两个 PCI-Express 5.0 控制器和四个 DDR5 内存控制器,封装两侧也各有两个。(这是第一个支持 DDR5 内存的服务器芯片,其带宽比当今服务器中常用的 DDR4 内存高 50%。当然,今年其他芯片也会跟进。)

与 Graviton2 相比,Graviton3 增加了 250 亿个晶体管,其中大部分,据Saidi 说,是为了加强内核,正如 AWS 公用事业计算高级总裁 Peter DeSantis已经在他的主题演讲中解释的那样,这个想法是通过加强pipeline让内核做更多种类的工作以及更多的工作。像这样:

图片

Graviton2 基于 Arm Holding 的 Neoverse “Ares”N1 内核设计的,他们在去年 4 月又发布了“Perseus”V1 和“Zeus”N2 内核。正如我们已经指出的,与一些人的看法相反,我们认为 Graviton3 是基于 N2 核心,而不是 V1 核心。AWS 尚未确认正在使用什么核心。我们做了大量尝试,试图去确认 Annapurna Labs 在 Graviton3 中的确使了 N2 核心。我们公开承认,这是一个疯狂的猜测,因为红色粗体显示的项目是:

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

与之前的 Graviton 和 Graviton2 内核以及 Ampere Computing Altra 系列中使用的内核一样,Graviton3 内核中没有试图提高吞吐量的超线程。不安全和更复杂的权衡不值得提高性能 - 至少对于 AWS 对其应用程序进行编码的方式。

AWS 没有做的另一件事是添加 NUMA 电子设备以将多个 Graviton3 CPU 连接到一个共享内存系统中,并且它也没有像英特尔通过电路和 AMD 使用其至强 SP 那样将核心块分解为 NUMA 区域,在罗马或米兰 Epyc 封装上使用八个核心tiles。内核与运行频率超过 2 GHz 且对分带宽超过 2 TB/秒的网格互连。

Graviton3 的一个优点是服务器,我们早在 12 月就谈到了这一点,AWS 正在创建一个自产的三节点、三插槽服务器,它有一个共享的 Nitro DPU,将它们连接到外部世界。像这样:

图片

通过将大量 CPU 功能卸载到 Nitro DPU 并将一堆单插槽 Graviton3 节点塞到卡上,AWS 表示它可以将每个机架的插槽增加 50%——这大概意味着不会牺牲任何相关的性能来自 AMD 的 X86 处理器也处于合理的散热范围内。

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

图片

C7g 实例使用 Graviton3,C6g 使用 Graviton2,这表明前者的整数性能比后者高约 30%,浮点性能比后者高约 60%。C5 实例基于英特尔定制的“Cascade Lake”Xeon SP 处理器,而 C5a 实例基于 AMD 的 Rome Epyc 处理器。C6i 实例基于“Ice Lake”Xeon SP。我们更希望拥有这些实例的实际核心数和时钟速度以进行更好的比较,但很明显 AWS 想要给人的印象是 Graviton2 已经击败了竞争对手,而 Graviton3 确实做到了。

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

来源:内容由半导体行业观察(ID:icbank)编译自nextplatform,谢谢。

2 阅读 260
推荐阅读
0 条评论
关注数
8897
内容数
1318
最有深度的半导体新媒体,实讯、专业、原创、深度,50万半导体精英关注。专注观察全球半导体最新资讯、技术前沿、发展趋势。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息