192核心的Arm服务器芯片发布,Ampere自研架构首曝光
来源:半导体行业观察 发布时间:2023-05-19 分享至微信


Ampere Computing 专注于云数据中心市场的 CPU。该公司成功地吸引了大量客户,包括阿里巴巴、谷歌、微软、腾讯和甲骨文在内的几家主要云提供商都为其云业务购买了不同数量的 Ampere 芯片。此外,Ampere芯片也可以在 Cruise 自动驾驶汽车中找到。仅在 2022 年,SemiAnalysis 就估计 Ampere 的 CPU 出货量超过 300,000 个。



今天,Ampere Computing 宣布推出代号为 Siryn 的第三T代数据中心 CPU AmpereOne。这标志着公司的一个巨大变化,因为这是他们第一次使用定制的内部架构。Ampere Computing 之前使用的是 Arm 的 Neoverse 核心,但他们现在已经成功摆脱了Arm 昂贵且限制性核心许可条款的束缚,并采用了更大自由度的Arm 架构许可。


今天,我们将深入探讨 Ampere Computing 的新 CPU 。


云原生——它是营销的废话吗?


Ampere Computing 的主要策略是设计和交付专为云数据中心构建的 CPU。这一总体战略归结为两个词,“云原生”。AMD 和英特尔的 CPU 必须针对各种类型的企业和云工作负载——从存储服务器到网络服务器再到基于加速器的人工智能系统。来自 AMD 和 Intel CPU 内核的这些应用程序的 CPU 内核设计也倾向于进入客户端计算应用程序,例如笔记本电脑,只需进行少量修改。Ampere 声称他们可以专注于数据中心、云中增长最快的部分,并为此优化他们的产品。



他们相信计算的未来将在很大程度上依赖于微服务、容器化和无服务器执行模型。这些概念通常是关于通过大量小型作业和进程扩展性能,而不是过分关注单线程 CPU 性能。AMD 和英特尔都将在明年发布采用类似策略的 CPU。Ampere 认为他们的 CPU 有 3 种主要方式是“云原生的”:


  • 每个 CPU 的性能更高Higher performance per CPU

  • 可预测的性能Predictable performance

  • 可扩展性Scalability


让我们分解一下他们的架构是如何实现这一点的。Ampere 相信他们可以通过增加核心数来获得更高的性能。这些更高的内核数量只能通过有意识的工程权衡来实现,以利用与英特尔和 AMD 相比较小的内核。需要明确的是,Ampere 内核在每线程性能方面明显落后于 AMD 和英特尔,尤其是浮点性能。他们的赌注是,这些更小的核心提供更高的每晶体管性能和瓦特,从整体上看整个芯片,这使他们能够提供更高的整体性能。我们将在报告的绩效部分讨论这是如何实现的。


Ampere 还认为,他们通过每个内核仅运行 1 个线程来提供更可预测的性能。Intel 和 AMD 为每个内核提供 2 个线程,同步多线程(SMT:simultaneous multithreading ) 利用主要由等待内存引起的工作负载差距,并允许以更高的速率利用硬件的执行资源。SMT 提高了性能,同时几乎不增加每个内核的总硅面积和晶体管数量。


SMT 的缺点是它会导致不可预测的性能,因为线程共享内核的资源。另一个潜在的缺点是安全性。利用 SMT 中的漏洞是一种常见的侧信道攻击方法,自从Spectre和Meltdown出现以来,这种方法已经流行起来。


Ampere 的更可预测性能的pitch也延伸到 Ampere 的缓存架构。每个内核都有一个大的私有 L2 缓存,而共享的 L3 缓存相对较小。AMD 和英特尔通常依赖更大的共享 L3 缓存,这有助于提高许多工作负载的性能,但也会妨碍性能的可预测性。


Ampere 还非常重视时钟速度的一致性。Intel 和 AMD CPU 根据使用的内核或线程数以及正在执行的代码类型显着改变其内核时钟速度。这有助于他们的 CPU 在给定的功率和热预算内最大限度地提高性能,这在许多工作负载中都是一个巨大的优势。


Ampere Computing 避免了这种情况,而是通过保持时钟速度不变来提高性能的可预测性,而不管工作负载如何。这个决定的理由是云工作负载是多租户的。如果以提高时钟速度的形式为用户提供更多性能,他们可能会对此习以为常。当这些提升的时钟速度由于嘈杂的邻居 VM 上下旋转而被取消时,它们的性能将受到影响。安培通过锁定时钟速度有效地保证了性能。新一代的时钟速度为 2.8GHz,比上一代略有下降。



英特尔和 AMD 即将推出的 Sierra Forest 和 Bergamo 产品架构正在采用“云原生”CPU 战略的许多要素。两者都针对云工作负载,并将在明年内发布。所有这些 CPU 的总体目标是提高能源效率、提高性能并减少数据中心的总占地面积,这是数据中心功耗持续飙升所必需的。



AmpereOne – Siryn


继续今天的发布,Ampere 将继续这一旅程,推出带有内部 CPU 内核的新型 192 核 CPU,高于上一代的 80/128。Ampere 转向 DDR5 内存和 PCIe Gen 5,极大地提高了 IO 吞吐量。此外,Ampere 还添加了一整套功能以提高一致性,并添加了高级队列和生命周期管理功能以协助云提供商进行部署。



网格拥塞——尝试通过网格上替代的、拥塞较少的路径重新路由核心之间以及从核心到内存或 IO 的通信。


嵌套虚拟化支持——允许云供应商的租户也可以在他们已经虚拟化的环境中运行虚拟机,而对性能几乎没有影响。


下降检测和过程老化监控器——协助管理芯片在使用过程中的逐渐故障并防止不稳定。


安全性——安全虚拟化、单密钥内存加密和内存标记等功能使云租户能够确保他们的数据安全,尽管共享内存控制器和 DRAM 。这些功能有助于防止缓冲区溢出攻击并提高数据库的数据完整性。


Ampere 新设计最有趣的方面是它的架构。Ampere 已经转向使用 5nm TSMC 的 chiplet 式架构,用于 CPU 内核和用于内存控制器和 PCIe 控制器的 IO 芯片。物理配置类似于亚马逊的 Graviton3。它还使用 AMBA CHI 连接到小芯片。



Ampere 采用 chiplet 风格的方法使他们能够制造新的 CPU 核心裸片,并在明年进行更新,拥有超过 192 个核心。



我们使用公司在ISSCC 2022上展示的 Altra 平面图完成了新的 AmpereOne A192“Siryn”小芯片设计的模型建造。我们的模型采用与 Graviton3 相同的小芯片布局,因为两者都使用类似的网格和小芯片互连接口。这样的设置为不同大小的 VM 提供了简单的可配置性和可预测的性能。与 4 核 VM 相比,32 核 VM 的 CPU 吞吐量基本上呈线性增长。这与 AMD 采用的小芯片设计相反,AMD 采用多个核心小芯片围绕一个中央 IO 芯片的设计。与可以保留在同一个小芯片中的虚拟机相比,需要占用多个核心小芯片的较大虚拟机会遇到性能不一致的问题。


值得注意的是,Ampere 表示他们已经对该芯片进行了一年的送样,但现在才进入量产阶段。这表明他们需要将芯片重新旋转几次才能使其正确。虽然这很痛苦,但和英特尔花了2.5 年的 12 次重新设计和 2.5 年的时间使其正确的做法略有不同。


封装与热设计



Ampere 目前的 Altra 系列具有大型单片芯片和相对温和的功率水平,不需要复杂的封装和热设计。裸片位于普通有机基板 (LGA 4926) 之上,聚合物热界面材料 (pTIM) 位于裸片和大型集成散热器 (IHS) 之间以散热。



这随着 AmpereOne 而改变。IHS 已经一去不复返了,Ampere 采用了直接芯片接触设计,带有一个又大又厚的加强环,就像我们在 GPU 和移动 CPU 上看到的那样。然而,那些是焊接 BGA 设计,而 AmpereOne 插入 LGA 5964 插座。直接芯片方法通过将冷却器的冷板放置在尽可能靠近发热硅的位置来消除热阻层,从而有助于降低温度。


随着使用功率飙升至 350W,甚至在峰值功率情况下甚至更高,封装的热设计受到越来越多的关注。在从 Graviton2 到 Graviton3 的转变中,亚马逊也从 IHS 转向直接裸片(direct die)。与此同时,数据中心 CPU 现有厂商(英特尔、AMD)目前仍坚持使用传统的 IHS 和焊接 TIM。


尽管 Ampere 表示 Siryn 是一种小芯片设计,但从外观上看封装仅显示一个大芯片。我们通过提出可见的只是位于所有小芯片顶部的载体晶圆来调和这一观察结果。在先进封装工艺中,所有小芯片在被切割并通过细间距小芯片互连(InFO、CoWoS-R、FoCoS) (InFO, CoWoS-R, FoCoS)连接到基板之前,都被粘合到载体晶圆上。


小芯片上方的这种结构硅不仅提供了带有第 3 方冷却器安装的直接裸片设计所需的额外结构刚度和耐用性。而且还用作基于硅的散热器,以帮助均匀热热点并从热核心散发热量小芯片穿过冷却器 IO 小芯片。由于材料与下方的计算和 IO 芯片相同,因此可以最大限度地减少重复加热和冷却循环期间的热膨胀系数 (CTE) 失配,从而提高结构可靠性。


尽管这个顶部硅阻止我们查看实际小芯片的芯片尺寸,但它确实显示了封装的大小。顶部裸片应接近光罩极限,这意味着封装大约为 90mm x 70mm。这比任何当前可用的数据中心 CPU 都大。在 2022 年 OCP 峰会上公布的 Mt. Mitchell 平台的 LGA 5964 电路板原理图也显示了插座的大小。



此外,Mt. Mitchell 还提供 AmpereOne 的 12 通道 DDR5 变体,该变体正在开发中,每个插槽的内存带宽增加 50%。



这种 12 通道变体将在内存带宽方面与 AMD 的 Genoa 和 Bergamo 相匹敌。它也正在增长到超过 192 个内核。


性能——不公平的比较


Ampere 从不喜欢谈论每个内核或每个插槽的性能,而是更愿意坚持他们的每个机架的性能指标。大多数旧数据中心的设计功率和冷却功率约为每个服务器机架 14 至 20 kW。机架可容纳的单元数量各不相同,但通常约为 42 个单元 (42U),根据系统架构,单个服务器占用 1U 至 8U。



随着 CPU TDP 的飙升,这些典型的数据中心机架现在更受功率限制而不是空间限制。将装满高密度刀片服务器的机架与高功率至强处理器堆叠在一起会多次超出此功率预算,需要具有更高冷却能力的专用数据中心基础设施。我们在 Nvidia 的 AI 服务器上也看到了这一点。由于巨大的功耗,他们的 DGX SuperPOD 设计无法完全填充每个服务器机架。Nvidia AI 服务器通常高达 5U 到 6U,A100 DGX 服务器约为 6.5 kW,H100 为 10.2kW。


Ampere 声称,在行业标准 SPEC CPU2017 整数速率工作负载中,AmpereOne A192 的单路服务器功耗为 434W,AMD EPYC 9654 Genoa 功耗为 624W,Intel Xeon 8480+ Sapphire Rapids 功耗为 534W。每个机架的功率预算为 16.5 kW,这意味着一个机架可以为 38 台 AmpereOne 服务器、30 台英特尔服务器或 26 台 AMD 服务器供电。将每台服务器的 CPU 内核数与每台机架的服务器数相乘,并假设单核虚拟机,我们得出他们声称 AmpereOne 与 x86 世界目前最好的虚拟机相比,为虚拟机提供高达 2.92 倍的动力。



虽然这个指标对于那些寻求在每个服务器机架中尽可能多地塞满 VM 客户端的人很有用,但它忽略了性能方面,如果客户端只需要“足够好”的每个核心级别的性能,那么这很好。我们提取了 SPEC CPU2017 的提交结果,以显示与当前市场上的 Altras 和 CPU 在每核整数性能方面的明显差异。


虽然 AmpereOne 无疑应该提供比 Altra 更好的每核整数性能,但我们认为它与 AMD 或 Intel 相去甚远。此外,竞争产品的 CPU 开箱即用,可在高功耗的情况下实现每个插槽的最高性能。通过花费更多并降低功率以在每个机架中安装更多 CPU,人们总能在性能/功率曲线中找到更高效的点。


Ampere 没有透露 SPEC 整数速率性能,但如果我们将其衡量为每机架性能,那么 AmpereOne 将更接近竞争对手,尤其是即将推出的 128 核 Bergamo 处理器。另外,请注意Ampere处理器的整数加权结果。目标云原生工作负载主要以整数性能为中心,这与 NVIDIA 的 Grace Superchip 应该擅长的 HPC 工作负载截然相反。



正是在这里,比较变得非常不公平。在 Stable Diffusion 测试中,AmpereOne 配置了 160 个内核、512GB DDR5 和 Linux 内核 6.1.10,而 AMD 的 Genoa 内存不足一半,为 256GB,并且在较旧的 5.18 上仅填充了其 12 通道内存容量中的 8 个.11 内核。此外,他们只为 Genoa 生成了 96 个线程,而为 AmpereOne 生成了 160 个线程。Genoa 通常需要全部 12 个内存通道和 192 个线程(利用 SMT)才能实现最佳性能。


虚伪的设置不止于此。在 DLRM 测试中,还有一个不同之处在于,AmpereOne 使用 FP16 数据格式,而他们的 AMD 系统配置为使用 FP32 数据格式。更高精度的数据会给这些受内存限制的 AI 工作负载带来更大的内存压力,并进一步损害性能。


这实在是不可原谅,因为两个处理器都支持本来可以使用的降低精度的 BF16 格式。虽然我们预计 AmpereOne 的 AI 性能会很棒,但没有必要捏造设置来使差异更大。


奇怪的是,AmpereOne 被证明在 AI 工作负载中比 SPEC 整数率发挥更大的作用。SPEC 中的 192 核消耗了 434W 系统功率,而 Stable Diffusion 中的 160 核消耗了 534W。Genoa 的情况正好相反,在 SPEC 中拉动 624W,但在 Stable Diffusion 中仅拉动 484W。这表明这些处理器之间存在性能优化缺陷。这也表明由于安培的诡计,Genoa 可能没有得到充分利用。


核心微架构


Ampere 的内部核心微架构是他们从 ARM Ltd 获得许可的前 Neoverse N1 核心变化的有趣组合。首先,他们通过添加第 5个整数 ALU 将pipeline数量从 8 个增加到 12 个,增加 2 个负载/store AGUs,以及一个专用的浮点存储单元,它也可以进行浮点到整数的对话。为了处理添加的pipeline和执行单元,Ampere 重新配置了 N1 的调度程序布局。


从 N1 上的 8 个独立调度器来看,AmpereOne 有 8 个调度器,其中 4 个用于整数端,2 个用于浮点和向量单元,2 个用于内存端。查看LLVM 补丁s,这就是我们认为调度程序布局的样子。



转到内核的其余部分,AmpereOne 有一个报告的 174 个条目的重新排序缓冲区 (ROB),虽然对于现代高性能内核来说非常小,但与 N1 的 128 个条目(entries) ROB (re-order buffer ),这相比是一个很好的突破。与 N1 相比,这使得 AmpereOne 可以获得更好的指令级并行性,并且可以让内核在任何时候处理更多的操作。


对于加载和存储系统,Neoverse N1 被限制为 2 128b loads或 1 128b loads和 1 128b stores。在 AmpereOne 上,每个周期增加到 2 个loads和 2 个stores。现在我们不知道 2 loads和 2 stores是否也适用于 128b 操作,但我们发现 AmpereOne 很可能每个周期可以执行 2 128b loads和 2 128b stores,从而使loads和stores带宽加倍。


AmpereOne 的缓存子系统发生了一些显著变化。L1 数据缓存与 Neoverse N1 具有相同的 64 KB 4 路设置,Ampere 将 L2 缓存从 1MB 8 路配置增加了一倍到 2MB 8 路配置,这有助于将数据保存在核心本地,这是对云工作负载很重要。


Ampere 也改变了 L3 布局。Ampere 表示,他们的 64MB“L3 缓存”更像是 Apple 的 SLC,因为它是内存端缓存,而不是像 AMD 和 Intel 使用的更传统的 L3 缓存。他们还表示他们正在使用 ARM 的 CMN 网格,但他们没有对网格布局发表评论。他们如何获得具有 192 个内核的 64MB LLC,我们不确定,Ampere 目前没有给出任何答案。安排 L3 的一种方法是遵循他们对 Altra 所做的,其中 L3 分布在整个网状网络中,但并非所有具有 4 核集群的网状站点都包含 L3。另一种方法是将所有 L3 放置在 DDR5 内存控制器旁边的大组中,类似于 AMD 的 Infinity Cache 等其他内存端缓存。


这里真正有趣的变化是从 64KB 4 路 L1 指令缓存减少到 16KB 4 路 L1 指令缓存。这是一个有趣的举动,我不知道会对性能有好处。现在传统上,传统上认为更大的 L1 指令缓存 (L1i) 更好,因为留在最靠近内核的缓存中比进入更高级别的缓存(如 L2 缓存)更节能,并且带宽更高。


L1 的带宽高于 L2 的后一点,AmpereOne 可能并非如此。现在我们不知道 L1i 缓存的带宽或 L2 和 L1i 之间的带宽,但很可能从 L1i 到核心其余部分的带宽是每个周期 16 字节。大多数 ARM 指令的长度为 4 个字节,而 AmpereOne 具有 4 个宽的解码。因此,为了让内核完全接收新指令,AmpereOne 可能具有每个周期 16 字节的提取带宽。L2 缓存也可能有一个每周期 16 字节的链接到 L1i,因为每周期 16 字节的链接到 L1i 在现代 CPU 内核中很常见。



但至于前一点,我们不知道Ampere为什么选择砍掉L1i,但我们至少可以想到两个原因。L1i 的缩减是为了节省面积,因为 L1i 使用非常不密集的 SRAM,具有高可访问性,因此将其减少到 16KB 可以节省大量面积。另一个原因是,当您从 16KB 到 32KB 再到 64KB(例如 SPEC INT 2017,它在指令方面并不是特别繁重)时,他们分析的工作负载的性能会显着降低。


现在,我们怀疑可能是这些因素与其他压力的结合导致Ampere朝这个方向发展。然而,这是一个云处理器,因此虽然他们可能有工作负载,但他们关注的还必须是一个足以应对通用工作负载的 CPU 内核。


[ 新闻来源:半导体行业观察,更多精彩资讯请下载icspec App。如对本稿件有异议,请联系微信客服specltkj]
存入云盘 收藏
举报
全部评论

暂无评论哦,快来评论一下吧!