从AWS Graviton 4,揭秘Arm Neoverse V2
👆如果您希望可以时常见面,欢迎标星🌟收藏哦~
来源:内容来自半导体行业观察(ID:icbank)编译自chipsandcheese,谢谢。
亚马逊网络服务 (AWS) 是最大的云提供商,也是 Arm 服务器的早期采用者。AWS 于 2018 年开始投资 Arm 服务器生态系统,推出了 Graviton 1,它使用了 16 个 Cortex A72 内核。三代之后,AWS 的 Graviton 4 配备了 96 个 Neoverse V2 内核。
Neoverse V2 是 Arm Cortex X3 的服务器衍生产品,也是 Arm Neoverse V 系列的最新成员。Cortex X 和 Neoverse V 系列是 Arm Ltd 性能最高的核心系列。Arm 在 Hot Chips 2023 上展示该核心时,我们之前曾报道过 Neoverse V2。Graviton 4 提供了一个在实践中看到 Neoverse V2 实现的机会,并提供了对 Arm 最新、最强大的 Neoverse V 核心的更多见解。
Graviton 4 系统架构
Graviton 4 使用 Arm 的 CMN-700 网格互连来连接 96 个 Neoverse V2 内核。此处的 CMN-700 配置了微不足道的 36 MB 共享 L3 缓存。CMN-700 网格上的缓存行反弹延迟相当好,延迟为 30-60 纳秒。没有像将内核排列成较小集群的设计那样出现急剧跳跃。但是,延迟确实会根据内核相对于负责跟踪测试地址的网格停止点的位置而有所不同。
由于大型 Graviton 4 实例价格昂贵,因此使用 64 个核心对并行运行核心到核心延迟测试
为了支持更大的实例,Graviton 4 采用双插槽配置,提供 192 个内核和 1536 GB DDR5。当两个插槽都发挥作用时,延迟会变得更加复杂。跨越插槽边界会使平均延迟达到 138.6 纳秒,这与英特尔的 Sapphire Rapids 类似。
AMD 的 Bergamo 必须管理更多内核,跨插槽延迟超过 200 纳秒。像英特尔的 Broadwell E5-2660 v4 这样的内核数较少的 CPU 表现更好,为 126 纳秒。因此,Graviton 在内核到内核延迟方面表现良好。它与插槽内的 Graviton 2 和 3 大致相当,同时提供多 50% 的内核。如果缓存行在插槽之间反弹,则延迟与其他现代设计一致。
从一个插槽到另一个 DRAM 池的无竞争内存访问会招致更严重的惩罚,这不是一件好事,因为最后一级缓存未命中通常比命中另一个核心的私有缓存中修改过的行更常见。使用 2 MB 页面和指针追踪 1 GB 阵列时,远程 DRAM 延迟超过 250 纳秒。与命中直接连接到插槽的内存相比,这要多 142.5 纳秒。
AMD 的 Infinity Fabric 链路可提供更佳的延迟,远程内存访问延迟仅为 120 纳秒。较旧的服务器芯片具有更佳的延迟,并且通常也能享受直接连接内存的更佳延迟。
Graviton 4 访问直接连接内存的延迟为 114.08 纳秒,可接受。它与 NPS1 配置中的 Bergamo 相当,并且比 NPS2 设置中的 Genoa-X 更差。Graviton 3 的 DRAM 延迟为 120 纳秒,因此 Graviton 4 至少比其前代产品有所进步。
带宽也是服务器 CPU 的一个重要主题,因为核心数越多,需要的带宽就越多。Graviton 4 具有 12 通道、768 位 DDR5-5200 设置,每芯片容量为 768 GB。Bergamo 也有 12 通道内存设置,但我们测试的内存设置速度较慢,为 DDR5-4800 内存。Graviton 4 在全核读取带宽测试中领先。与 Milan-X 上的旧八通道设置相比,Graviton 4 具有巨大的带宽优势。
Graviton 4 的跨插槽链路不太令人印象深刻,当一个插槽上的核心从连接到另一个插槽的 DRAM 读取时,仅提供 77 GB/s 以上。Zen 4 的 Infinity Fabric 链路提供更高的带宽,超过 120 GB/s。这仍然是直接连接的 DRAM 可用带宽的一小部分,但 AMD 的 Bergamo 和 Genoa 应该可以更好地处理非 NUMA 感知程序。
总体而言,Graviton 4 具有出色的双插槽配置。跨插槽带宽和延迟比预期的要差一些,但缓存一致性操作处理得很好。当不跨越插槽边界时,Graviton 4 的 DDR5 设置提供了高带宽和可接受的延迟的组合。
Neoverse V2 核心
作为 Arm 最高性能核心系列的一员,Neoverse V2 是一款大型核心,其宽度和重新排序能力与 AMD 的 Zen 4 相当。然而,它还不及 Golden Cove、Oryon 或 Apple 的 Firestorm 那样的怪物。在 Graviton 4 中实现时,Neoverse V2 运行速度高达 2.8 GHz。双插槽实例的时钟速度降低到 2.7 GHz。无论哪种情况,与其他服务器核心相比,时钟速度都很低。例如,AMD 密度优化的 Zen 4c 即使在双插槽、256 核 Bergamo 设置中也可以以 3.1 GHz 的速度运行。AMD 的 Genoa-X 使用带有额外缓存的 Zen 4 内核,可以在全核工作负载下维持 3.7 GHz。
上面的框图主要根据 Arm 的 Hot Chips 2023 演示文稿构建,但已根据微基准测试估计的结构大小进行了更新。
分支预测
具有深度重新排序能力的宽核需要功能强大的分支预测器来匹配。Neoverse V2 使用 8 组件 TAGE 预测器,其表比 Neoverse V1 更大。更大的表减少了两个分支冲突到同一个表槽并破坏彼此预测准确性的可能性。更多的表使预测器能够更灵活地使用不同的历史长度。从重复随机生成的模式的抽象测试来看,Neoverse V2 非常强大,看起来与 Golden Cove 相似。
然而,Zen 4 可以处理更长的模式和更高的分支数。在过去几代 Zen 中,AMD 在分支预测方面投入了大量资金。这样做的同时还将时钟速度提高到 5 GHz 以上,这是值得称赞的成就。一个小小的牺牲似乎是使用两级方向预测器,其中更准确但更深层流水线的第二级可以覆盖第一级。Neoverse V2 可以在没有覆盖预测器的情况下运行,可能是因为它以非常低的时钟运行并且不那么雄心勃勃。
Zen 4 方向预测器
对于分支目标缓存,Neoverse V2 采用三级 BTB 方案。处理小循环的纳米 BTB 可以每周期处理两个分支。它似乎有 256 个条目。较大的分支占用空间由看起来像 8K 条目的 BTB 处理,具有单周期延迟,然后是可能具有 14K 条目的 L2 BTB,具有 2-3 个周期延迟。
英特尔的 Golden Cove 还拥有一个大型的末级 BTB,具有 12K 条目。相比之下,Zen 4 的 8K 条目 L2 BTB 感觉很小。Neoverse V2 能够处理非常大的分支足迹而没有气泡,这一点当然值得称赞。Arm 显然希望 V2 能够以最少的故障处理分支意大利面条式代码。
间接分支从寄存器获取目标,而不是直接将其编码到指令中。分支预测器必须在多个目标之间进行选择,这又增加了难度。
返回是间接分支的一种特殊且常见的情况,通常可以使用返回堆栈来处理。Neoverse V2 的返回堆栈似乎有 31 个条目,与 AMD Zen 系列的成员非常相似。除非有人决定使用函数式编程语言并忽略尾部递归的情况,否则这应该足以应付绝大多数情况。
令人印象深刻的是,Neoverse V2 仅用两个周期就处理了调用+返回对,或者每个分支可能只需要一个周期。实际延迟与台式机 Zen 4 相当,后者每个调用+返回对需要 4 个周期。当返回堆栈容量不足时,Neoverse V2 的表现也更好。
获取并解码
来自分支预测器的提取地址通过 32 项提取队列馈送到下游提取阶段。为了加快指令传递速度,Neoverse V2 具有 64 KB L1 指令缓存和 48 项全关联指令 TLB 用于地址转换。
为了进一步提高前端性能并降低解码成本,Neoverse V2 将解码的微操作缓存在 1536 项微操作缓存中。此微操作缓存每周期可提供 8 个微操作,而传统解码器每周期可提供 6 个微操作。如果解码器将相邻指令对融合为单个微操作,吞吐量可以进一步提高。微操作缓存是虚拟索引和虚拟寻址的,因此微操作缓存命中不需要 TLB 查找。软件无需关心,因为 Arm 具有确保一切保持一致的机制,就像微操作缓存是物理寻址的一样。
Arm 的 Cortex X 和 Neoverse V 系列的先前成员具有 3072 个条目的微操作缓存,因此 Neoverse V2 的微操作缓存比其前代产品要小。这可能是因为在 Neoverse V2 的场景中使用微操作缓存的好处有限。下游吞吐量受到重命名器的限制,因此微操作缓存的好处仅限于降低前端延迟和功耗。Arm 长期以来一直使用预解码方案来减轻解码功率,将一些解码阶段移至 L1i 填充阶段。将其与微操作缓存结合使用感觉有点矫枉过正,尤其是当 Neoverse V2 没有以高时钟速度运行时,而英特尔的 Golden Cove 在 2021 年以更高的时钟频率进行了 6 宽解码。
Neoverse V2 和 Zen 4 将相邻的 NOP 对融合为一个微操作,从而增加了此测试中的微操作缓存带宽
L1i 未命中由 16 项填充缓冲区跟踪,这为 Neoverse V2 提供了足够的内存级并行性,可以在从 L2 运行代码时维持每周期 4 条指令。AMD 和英特尔从 L3 获得更好的代码获取带宽,可能是因为它们的 L3 缓存具有更好的延迟。Neoverse V2 的性能仍然令人满意,每周期从 L3 提供超过两条指令。
重命名并分配
然后,来自前端的微操作将经过重命名和分配阶段,该阶段会在后端分配资源,以跟踪它们在各个执行阶段的运行情况。Arm 表示,重命名器每周期可以处理 8 个微操作,但通过测试,我每周期只能维持 6 个。这使得 Neoverse V2 整体上成为 6 宽内核。Arm 的幻灯片显示重命名器应该是 8 宽,但这与测试结果不符。
重命名器也是执行各种优化(如移动消除或打破依赖关系,当已知操作会将寄存器清零时)的好地方。Neoverse V2 具有一些移动消除功能,但它不如英特尔和 AMD 最近的 CPU 那样强大。有时 Neoverse V2 可以打破寄存器到寄存器 MOV 之间的依赖关系,但并非总是如此。独立 MOV 每周期执行不到 4 次,这表明它们仍然使用 ALU 管道。我认为只有四个 ALU 管道,因为整数加法每周期仅执行四次。值得称赞的是,Neoverse V2 可以将立即值为零的寄存器清零,效果很好,每周期 6 次。
无序执行
在后端,只要输入准备就绪,操作就会被发送执行,而不管程序顺序如何。这样一来,执行引擎就可以越过停滞的指令,并保持执行单元的运行。核心可以向前移动多远,取决于执行中的指令所需的各种缓冲区和寄存器文件。Neoverse V2 在许多方面都与 Zen 4 相差无几。
一、整数簇
Neoverse V2 应该有 6 个 ALU,而 Neoverse V1 只有 4 个。我无法实现每周期 6 次添加,因此我认为在 Graviton 4 中实现的 Neoverse V2 没有 6 个 ALU。下一个问题是亚马逊是否选择删除与分支调度程序关联的 ALU,或者删除 Arm 幻灯片中提到的两个额外 ALU。分支单元仍然位于单独的端口上,因为我可以通过将添加与分支混合来实现超过 4 个 IPC。
我测试了 40 个依赖分支和依赖添加的调度容量。Graviton 4 的此类模式可用的条目总数不超过 60 个。因此,这两个额外的 ALU 很可能与它们的调度队列一起被删除了。
如果这是正确的,那么 Neoverse V2 的整数运算调度能力与 Zen 4 相当。从技术上讲,Zen 4 有更多可用的调度程序条目,但它必须与内存访问(AGU 端口)共享三个整数调度程序。与 Zen 4 和 Neoverse V2 相比,高通的 Oryon 看起来过于强大了。
二、FP/向量执行
在浮点和矢量方面,Neoverse V2 有四个 128 位管道。这四个管道都可以处理大多数基本的 FP 和矢量整数运算。与之前的 Neoverse V/Cortex X 内核和高通的 Oryon 一样,这种安排让内核即使在执行管道较窄的情况下,每个周期的融合乘法加法 (FMA) 浮点运算也能与 Zen 4 匹敌。Zen 4 有四个 FP/矢量执行管道,矢量宽度为 256 位,但它们更加专业。如果 256 位packed FP 加法可以与 FMA 一起调度,AMD 可以占据优势,但 Neoverse V2 可以更好地支持不使用宽矢量的程序。
FP/矢量操作往往具有更长的延迟,因此 CPU 通常在 FP 端具有大量调度程序条目以隐藏该延迟。与 Cortex X2 相比,Neoverse V2 增加了一些调度程序条目,但保持了相同的调度程序安排。与 AMD 的 Zen 系列一样,Neoverse V2 有一个非调度队列,如果调度程序已满,它可以接受来自重命名器的 FP 操作。这有助于延迟管道上层的停顿并让其他操作进入后端,同时比更大的调度程序更便宜。但是,Neoverse V2 跟踪不完整 FP/矢量操作的能力低于 Zen 4。它也低于 Qualcomm Oryon,后者采用蛮力方法解决巨型调度程序的问题。
对于标量 FP32 和packed into 128 位矢量的 4xFP32,FP 延迟相同
加载/存储单元
加载/存储单元是执行引擎的重要组成部分,可确保快速执行内存访问,同时使这些访问看起来像是按顺序进行的。首先,内存地址的虚拟地址由一组三个地址生成单元 (AGU) 计算得出。两个可以处理加载和存储,而一个专用于加载。Zen 4 类似地具有三重 AGU 设置,但通过在 AGU 和 ALU 之间共享条目来节省调度程序容量。
一、地址转换和 TLB
然后将虚拟地址转换为物理地址。转换后备缓冲区 (TLB) 缓存常用的转换以加快速度。Neoverse V2 与大多数内核一样具有两级 TLB 设置。48 条目全关联 L1 DTLB 处理最常访问的页面,而 2048 条目 8 路 L2 TLB 处理更大的内存占用。L2 TLB 访问会增加 5 个周期的延迟,即使在 V2 的低时钟频率下这也是合理的。
Arm 选择不改变 Cortex X2 的 TLB 容量。当 AMD 从 Zen 3 升级到 Zen 4 时,L1 DTLB 容量从 64 个条目增加到 72 个条目,而 L2 DTLB 容量从 2048 个条目增加到 3072 个条目。Zen 4 上的 L2 DTLB 访问增加了 7 个周期,考虑到 TLB 的更大尺寸和在 5 GHz 以上运行的能力,这也是合理的。在这些客户端设计中,Zen 4 的 L2 DTLB 实际上比 Neoverse V2 的延迟更好。但在高核心数服务器环境中,情况发生了逆转,Zen 4c 的时钟速度优势要小得多。
二、内存依赖和存储转发
然后,加载/存储单元必须确保内存操作的正确排序。这涉及检查加载是否与先前的正在进行的存储重叠。如果重叠,加载/存储单元必须从先前的存储转发数据,而不是从缓存层次结构中获取陈旧数据。Neoverse V2 缺乏对存储转发机会的强大检测,并且只能将 64 位存储的一半转发到后续的 32 位加载。感觉很像几年前的 Neoverse N1。公平地说,这应该涵盖常见情况,但英特尔和 AMD 已经为先前存储中包含的任何加载进行了快速路径转发好几代了。
当快速转发工作时,Neoverse V2 以 5 个周期的延迟执行。这与 Golden Cove 相当,并且比 Zen 4 的 6-7 个周期要好。但是,Zen 4 和 Golden Cove 可以在最简单的匹配地址情况下实现零延迟转发。当然,AMD 和 Intel 可以提高其核心的时钟频率。失败的存储转发在 Neoverse V2 上花费 10-11 个周期,这比 Golden Cove 或 Zen 4 上的 19 或 20 个周期要好。
二、L1D 访问
如果没有依赖关系,内存访问将到达缓存层次结构。L1 数据缓存是第一站,由于程序以字节粒度访问数据,因此它的工作特别困难。与其他缓存一样,L1 数据缓存以更大的块跟踪数据。跨越块边界的“未对齐”访问可能会导致延迟,因为缓存必须在后台访问两个块并合并结果。
Neoverse V2 的数据缓存具有 64B 对齐,因此当访问跨越 64B 边界时会遭受错位惩罚。Zen 4 的数据缓存对于加载具有 64B 对齐,对于存储具有 32B 对齐,因此它更容易受到错位访问惩罚。访问还可以跨越 4096B 页面边界,这意味着 TLB 必须返回两个地址转换。Neoverse V2 因分页存储而遭受 11-12 个周期的惩罚。在这种情况下,Zen 4 遭受 33 个周期的惩罚,而 Golden Cove 处于中间位置,遭受 24 个周期的惩罚。Neoverse V2 和 Zen 2 可以优雅地处理分页存储,没有任何惩罚,而 Golden Cove 在这种情况下需要 3-4 个周期。
V2 数据缓存的最小访问延迟为 4 个周期。Zen 4 也有 4 个周期的 L1D 延迟,但考虑到 V2 的低时钟速度,我本来希望看到 3 个周期的延迟。矢量访问带宽也较低,3×128 位负载,而 Zen 4 上为 2×256 位。Arm 表示,V2 每周期可以处理四个标量 64 位负载,但由于核心只有三个 AGU,因此这可能是 LDP 指令的特殊情况。
容量方面,V2 的数据缓存为 64 KB,表现不错。与 Zen 4 上微不足道的 32 KB 或 Golden Cove 上平庸的 48 KB 相比,这一表现令人耳目一新。Arm 还从伪 LRU 替换策略切换到 RRIP(重新引用间隔预测),这可以通过在引入新数据时更明智地决定从缓存中逐出哪些数据来提高命中率(hitrate)。
低级缓存
在 L1 之后,Neoverse V2 具有 1 或 2 MB 的 L2 缓存,可将核心与较慢的网状互连隔离开来。亚马逊为 Graviton 4 选择了 2 MB 选项。延迟良好,为 11 个周期,而 Zen 4 为 14 个周期。
实际 L2 延迟与 Genoa-X 中的 Zen 4 内核相比略差,但与 Bergamo 中的 3.1 GHz Zen 4c 内核相比则更胜一筹。总体而言,考虑到其容量是 Zen 4 的 L2 的两倍,L2 看起来非常不错。
与英特尔的 Sapphire Rapids 一样,Neoverse V2 也需要较大的 L2,因为达到 L3 会增加很多延迟。达到 L3 需要 68 个周期,即 16 MB 测试点的 25 纳秒。它比 Sapphire Rapids 更好,但与英特尔 Ice Lake 服务器上的 L3 延迟相似,比 Bergamo 的 18 纳秒更差。AMD 的 Genoa-X 的 L3 性能甚至更好。
一、带宽
Neoverse V2 核心拥有合理的带宽,但 AMD 和英特尔的核心拥有更好的带宽,因为它们是为高矢量性能而设计的。对于 Sapphire Rapids 来说尤其如此,它每个周期可以进行三次 256 位加载。
Arm 的 Hot Chips 2023 演示表明,Neoverse V2 的 L2 可以提供令人难以置信的每周期 128 字节带宽,采用四组排列,其中每个组每两个周期可以处理 64B 缓存行请求。但是,即使是简单的线性只读访问模式,平均每周期也只有不到 32 字节。使用读取-修改-写入或只写模式不会显着改变 L2 带宽。
单核的 L3 带宽很差,仅略高于 30 GB/s。与英特尔的 Sapphire Rapids 一样,高 L3 延迟可能会限制可实现的带宽。Neoverse V2 具有 96 或 92 个条目事务队列,具体取决于您查看的是 Hot Chips 2023 幻灯片还是技术参考手册。无论哪种方式,条目都很多,但不足以隐藏 L3 延迟。相比之下,AMD 的 L3 提供非常低的延迟,并且单核的 L3 带宽非常高。
在整个芯片中,Graviton 4 的 L1 带宽超过 12 TB/s。它无法与 Genoa-X 的 18 TB/s 相提并论,但比 Graviton 3 和 Milan(Zen 3 服务器)高出很多。总 L2 带宽也在多 TB 范围内。L3 带宽很难评估,因为芯片 96 个核心的 L2 容量大大超过 L3 容量。
一些简单的基准测试
Neoverse V2 的架构和亚马逊的实施选择必须结合起来才能提供高性能。在这里,我将八核 Graviton 3 实例与 Bergamo 的先前数据进行比较。为了提供 Genoa 性能的模糊图像,我将 Ryzen 7950X3D 降频至 3.42 GHz。这是 AMD 配备 VCache 的 EPYC 9V33X 的标称全核加速时钟,大致相当于 Genoa 部件的最低时钟速度。实际上,9V33X 可以在繁重的全核工作负载下维持 3.7 GHz,许多其他 Genoa 部件可能也能做到这一点。
我将使用 libx264 编码 4K 视频,并使用 7-Zip 压缩大型文件。软件视频编码会严重消耗 CPU 的矢量单元,并且可能需要大量带宽。另一方面,7-Zip 仅使用标量整数运算,并且可能给分支预测器带来困难。
Graviton 4 在 libx264 中表现不佳。即使没有 SMT,标准 Zen 4 CCD 也可以领先。加上 SMT,领先优势将扩大到 60% 以上。V-Cache 可以进一步扩大领先优势。7-Zip 描绘了一幅不同的画面,Graviton 4 轻松击败了八核 Bergamo CCX。
性能计数器表明,Arm 针对低时钟频率优化 Neoverse V2 的努力在一定程度上取得了成效。Neoverse V2 在两种工作负载下的平均 IPC 均高于 Zen 4。然而,这不足以抵消 Zen 4 的更高时钟频率和 SMT 能力。而且 Zen 4 的时钟频率可以高得多,这只会扩大差距。
ISA 还可能使 IPC 成为一种误导性指标,因为工作负载可能需要在不同 ISA 上执行更多指令。在 libx264 中,Neoverse V2 执行的指令比 Zen 4 多 17.6%,部分原因是矢量长度支持存在差异。7-Zip 则相反,Zen 4 执行的指令比 Zen 4 多 9.6% 才能完成相同的任务。
分支预测是 CPU 设计中最具挑战性的方面之一,性能计数器也提供了对此的洞察。微基准测试表明 Zen 4 可以处理更长的模式。然而,这在实践中只意味着很小的优势。AMD 可能过度构建了分支预测器以提高 SMT 产量,因为当允许工作负载使用核心上的两个 SMT 线程时,Zen 4 的准确性损失令人惊讶地小。
Neoverse V2 没有性能计数器来跟踪重命名的微操作,因此很难量化错误预测的确切影响。但我们至少可以通过查看每条指令的错误预测来尝试标准化分支率。在 libx264 中,错误预测的影响很小。预测准确性比 7-Zip 略好,但与其他指令相比,libx264 不会执行很多分支。7-Zip 的情况则相反,其中大约 18% 的指令是 x86-64 和 aarch64 的分支。
AMD 过度构建的分支预测器在 7-Zip 中真正证明了其价值,其中预测准确率不到 1% 的差异意味着 Zen 4 每条指令的错误预测减少了 17.9%。
使用性能计数器检查管道的其余部分是不切实际的,因为租用 Graviton 4 实例需要花钱。但我们可以通过查看后端和前端绑定指标来获得概览。libx264 主要受后端绑定,因此性能受到无序执行引擎完成操作的速度以及隐藏延迟的能力的限制。
7-Zip 既受前端限制,又受后端限制,可能是因为高分支率给指令传递带来了挑战。Neoverse V2 在这方面的表现可能更好,因为它的 BTB 非常大,而且延迟低(以周期数计算)。在分支占用空间较小的 libx264 中,Neoverse V2 可能受益于其更大的 L1 指令缓存。
最后的话
过去几年,Arm 已经掌握了设计现代乱序核心的复杂性。Neoverse V2 是这方面的又一个证明。它以之前的 Neoverse V 和 Cortex X 核心提供的坚实基础为基础,并在整个管道中进行了改进。与 AMD 和英特尔核心相比,Neoverse V2 可能更具优势,因为它的设计仅适用于服务器和智能手机。在这些应用中,单线程性能不如笔记本电脑和台式机那么重要。相比之下,英特尔的 Golden Cove 和 AMD 的 Zen 4 必须满足更广泛的核心功率和性能目标。更深的管道非常适合在 5 GHz 时实现最大性能,但在较低的时钟频率下可能会失去这种优势。
有时,Neoverse V2 会利用这一点。调用/返回预测、L2 缓存延迟、从失败的存储转发中恢复以及分页存储处理就是很好的例子。但有时,就像存储转发一样,潜在的优势会被 AMD 和英特尔最新核心上的花哨架构技巧所抵消。在其他领域,即使在周期计数延迟方面,V2 也没有比 Zen 4 有优势。L1D 延迟就是一个例子,向量整数执行延迟是另一个例子。
因此,Neoverse V2 并非像 Zen 4、Golden Cove 甚至高通的 Oryon 那样真正具有高性能的核心。相反,它寻求在功率有限的智能手机 SoC 或高密度服务器 CPU 中提供足够的单线程性能。
从面积角度来看,Neoverse V2 实现应该可以毫无困难地匹配 Bergamo 的核心数量。如果实施者决定节省 L3 缓存,情况尤其如此,就像 Graviton 4 所做的那样。但亚马逊决定他们不能对 Graviton 4 这样做,因为它有 96 个核心,就像 AMD 的主流 Genoa 服务器一样。与 Bergamo 相比,Neoverse V2 是好是坏。但与 Genoa 或 Genoa-X 相比,Neoverse V2 处于劣势。它的时钟速度问题实在是太大了,考虑到至少有一家云提供商愿意提供 3.7 GHz Genoa 实例,而以 3.42 GHz 运行的 Zen 4 CCD 已经给八核 Graviton 实例带来了相当大的挑战。
单独来看,Neoverse V2 是一款不错的内核。但随着 Zen 5 的即将面世,V2 可能需要提高时钟速度,以便更好地与 2022 年推出的 AMD Zen 4 竞争。Arm 已宣布推出 Cortex X4,这是 Cortex X/Neoverse V 系列的新成员。与 Cortex X3/Neoverse V2 相比,Cortex X4 增强了管道的各个部分。希望 Arm 能够实现这一点,而无需以非常低的频率运行内核以保持在功率目标范围内。单独来看,很容易将视野局限在时钟速度或每时钟性能上。
参考链接
https://chipsandcheese.com/2024/07/22/arms-neoverse-v2-in-awss-graviton-4/
END
*免责声明:本文由作者原创。文章内容系作者个人观点,半导体行业观察转载仅为了传达一种不同的观点,不代表半导体行业观察对该观点赞同或支持,如果有任何异议,欢迎联系半导体行业观察。
今天是《半导体行业观察》为您分享的第3841内容,欢迎关注。
推荐阅读
『半导体第一垂直媒体』
实时 专业 原创 深度
公众号ID:icbank
喜欢我们的内容就点“在看”分享给小伙伴哦
微信扫码关注该文公众号作者