摘要:英特尔是第一家在 CPU 封装中添加 HBM 堆叠 DRAM 内存的主要 CPU 制造商,其推出的处理器是“Sapphire Rapids”Max 系列 Xeon SP 处理器。但随着“Granite Rapids”Xeon 6 的推出,英特尔放弃了使用 HB
英特尔是第一家在 CPU 封装中添加 HBM 堆叠 DRAM 内存的主要 CPU 制造商,其推出的处理器是“Sapphire Rapids”Max 系列 Xeon SP 处理器。但随着“Granite Rapids”Xeon 6 的推出,英特尔放弃了使用 HBM 内存,转而采用它希望成为更主流的 MCR DDR5 主内存,该内存具有多路复用等级,可将带宽提高近 2 倍于常规 DDR5 内存。
英特尔为 Sapphire Rapids 添加 HBM 内存有其原因。主要原因是提升百亿亿亿次级“Aurora”混合 CPU-GPU 超级计算机的 CPU 性能,该超级计算机是英特尔在惠普企业的帮助下为阿贡国家实验室打造的。Aurora 机器拥有 21,248 个 Xeon SP Max 系列 CPU,封装在 10,624 个节点中,此外还拥有总共 63,744 个英特尔“Ponte Vecchio”Max 系列 GPU。(即单个节点中两个 CPU 搭配六个 GPU,这几乎是任何人都可以装入 Cray EX 滑轨空间的全部。)
向 CPU 添加 HBM 内存的另一个原因是希望其他 HPC 中心能够发现,由于尚未将其应用程序移植到 GPU,因此只能使用 CPU - 或者即使移植了也无法在工作负载上获得良好的性能 - 拥有更多内存带宽的 CPU - 大约是普通 DDR5 内存的 4 到 5 倍 - 这将显著提高带宽受限应用程序的性能,而无需将这些代码移植到 GPU。
我们认为将 HBM 安装在 CPU 上的想法是合理的。
除了 Aurora 之外,还有一些值得注意的机器使用这种内存,包括2022 年 9 月在洛斯阿拉莫斯国家实验室安装的“Crossroads”ATS-3 全 CPU 集群。Crossroads总共有 11,880 个 Intel Xeon SP-9480 Platinum Max 处理器,其中有 56 个内核,运行频率为 1.9 GHz,总共有 660,800 个内核,在 FP64 精度下可提供 40.18 teraflops 的峰值理论性能,功率为 6.28 兆瓦。
但是,正如我们所说,Granite Rapids Xeon 6 处理器没有配备更大 P 核的 HBM 变体,这为 AMD 推出 HBM 前端 CPU 敞开了大门,这是传闻中的 Instinct MI300 系列计算引擎的“Antares-C”变体。
“Antares” MI300X 具有八个 GPU 芯片,就软件而言,其外观和感觉就像单个 GPU。本周在 SC24 超级计算机会议上亮相的劳伦斯利弗莫尔国家实验室“El Capitan”系统中使用的“Antares-A” MI300A 具有六个 GPU 芯片和三个八核“Genoa”芯片,总共 24 个内核。(每个芯片八个内核。)本周在 SC24 会议和拉斯维加斯的微软 Ignite 活动上都宣布了 MI300C,MI300 封装完全填充了 Genoa 芯片 - 即两列六个芯片中有十几个芯片 - 总共可产生 96 个 Genoa 内核,我们推测其运行频率与 El Capitan 中使用的 MI300A 混合计算引擎上使用的 Zen 4 内核相同,为 1.9 GHz。在单核活跃的情况下,这些内核在 Turbo 模式下最高可达到 3.7 GHz。顺便说一下,MI300A 上的 GPU 芯片峰值速度为 2.1 GHz。
不过,这款设备并非以 MI300C 的名称出售,而是 Epyc CPU 产品线中的一款技术产品,被称为 Epyc 9V64H,与英特尔的 Xeon SP Max 系列 CPU 一样,明确针对 HPC 工作负载。也就是说,该设备插入用于 MI300X 和 MI300A 设备的 SH5 插槽,而不是用于 Epyc 9004(Genoa)和 9005(Turin)系列的 SP5 插槽。
值得注意的是,AMD 及其 MI300C 设备的首个客户 Microsoft Azure 并未选择基于较新的 Turin Zen 5 核心创建计算引擎的变体。MI300C 的工作大概是在 AMD 开始为 El Capitan 制造混合 CPU-GPU 芯片时完成的,AMD 无疑不想泄露 Turin 的秘密,否则 Lawrence Livermore 可能会要求 MI355A 将经过调整的 Antares GPU 与 El Capitan 的 Turin CPU 配对。
(那会很有趣,不是吗?)
话虽如此,对于 AMD 来说,基于基于 Zen 5c 内核的 Turin 芯片打造 MI355A 或 Epyc 9V65H 显然不会是一个很大的工程挑战。Turin X86 CPU 于 10 月发布,它们提供以 3 纳米工艺蚀刻的八核 Turin 芯片,使每个插槽的芯片数量增加了 33%,因此核心数量从 Genoa 的 96 个增加到 Turin 顶级部件的 128 个,增加了 33%。当然,Turin 芯片和 MI300 SH5 插槽的布局现在可能与我们的右侧一致,但理论上 AMD 可以通过将 16 个 X86 芯片排列成两列来快速组装出具有 128 个内核的 MI355C,就像它在实际的 Epyc 9006 系列中已经做的那样。真正的问题是,为 MI300 系列分区的新 I/O 芯片是否可以映射到 Turin 芯片。
不管怎样,我们经常兴致勃勃地离题讨论。
重要的是,Epyc 9V64H 拥有 128 GB 的 HBM3 内存,峰值时钟速度为 5.2 GHz,可提供总计 5.3 TB/秒的峰值内存带宽。相比之下,使用 4.8 GHz DDR5 内存的普通 Genoa SP5 CPU 插槽可在十几个 DDR5 内存通道中提供 460.8 GB/秒的带宽。因此,在相同的 96 个 Genoa 计算核心中,内存带宽提高了 11.3 倍。
顺便说一句,2022 年 11 月推出的 Xeon SP Max 系列 CPU有四个 HBM2E 内存堆栈,总容量为 64 GB,内存总带宽超过 1 TB/秒。AMD 提供的内核数量增加了 71%,内存容量增加了 2 倍,内存带宽大约是配备 HBM 的英特尔 CPU 的 5 倍。
巧妙之处在于,微软正在将 Epyc 9V64H 处理器放入Azure 云上的四插槽 HBv5 实例中,并且配置看起来内核和内存中的一些东西已经从其峰值理论极限稍微回退了一点,而其他东西已经被调高了。
El Capitan 系统使用 Infinity Fabric 将四个 MI300A 单元交叉耦合到共享内存结构中,以便其混合 CPU-GPU 核心全部共享 512 GB 的 HBM3 内存,而且看起来微软使用的是相同的架构:
据我们所知,为惠普企业 (HPE) 制造系统板的人也为微软 Azure 制造了系统板 - 甚至可能是 HPE 为这些 Azure HBv5 实例以及它们背后的整个服务器节点制造了系统板。
MI300C 使用的四路服务器卡(呃,Epyc 9V64H,请原谅我们)有四个 Infinity Fabric 端口,可交叉连接四个 SH5 插槽,内存结构带宽为 128 GB/秒,然后是四个挂在每个节点上的 PCI-Express 5.0 x16 插槽。微软表示,这是迄今为止任何 AMD Epyc 平台的 Infinity Fabric 带宽的两倍。
无论如何,重要的事情(也是有趣的事情)是,AMD 使用 SH5 插槽为其 GPU 式计算引擎制作了四路共享内存配置,但其实际 CPU 设置仍然最多只能实现双向共享内存配置。但是,如果您想要一台 AMD 四路机器,那么 El Capitan 和 Microsoft iron 就是可能的。我们认为,AMD 应该制造四路服务器,以在高端内存数据库和分析市场上与 IBM 和英特尔一较高下,这为这项工作奠定了基础。
为了应对 HPC 领域需要高内存带宽的工作负载,Microsoft Azure 一直在其 HBv3 实例中使用64 核“Milan-X”Epyc 7V73X CPU,在其 HBv4 实例中使用96 核“Genoa-X”9V84X CPU。这些是 AMD 为 Microsoft Azure 创建的 Milan-X 和 Genoa-X 芯片的特殊变体,您会记得,X 变体具有 3D V-Cache,可将其 L3 缓存增加三倍,并在带宽受限应用程序上将其性能提高约 50% 至 80%,这在 HPC 模拟和建模工作负载中很常见。
转向 HBM 内存会让这些 3D V-Cache 数字黯然失色,当然,部分原因是 MI300C 复合体在这些 X86 核心块下方有“Infinity Cache”,它充当连接核心和外部 HBM 内存的超高速中间人。我们之前说过,现在再说一遍:一旦价格足够便宜,所有芯片都应该有 3D V-Cache,即使只是为了在计算复合体上为其他东西留出更多空间并缩小核心上的 L3 缓存区域。
以下是微软制作的一张有趣的图表,展示了将 96 核 Genoa 计算综合体迁移到 MI300C 所带来的带宽优势:
本周,在 SC24 大会上,当我们与劳伦斯利弗莫尔国家实验室利弗莫尔计算公司首席技术官 Bronis de Supinski 谈论 El Capitan 机器时,他向我们评论说,CPU 内核“获得的带宽超过了它们所能驱动的带宽”。这也许可以解释为什么更多 CPU 没有 HBM 内存。
如果我们以 128 GB HBM3 内存中每个 MI300 系列 SH5 插槽 5.2 TB/秒的速度取值,并将四个插槽放在一起,我们将在四个 SH5 插槽上获得 20.8 TB/秒的总带宽。多年来,在我们研究过的大多数机器上,STREAM Triad 基准测试提供的持续内存带宽约为单个设备峰值理论带宽的 80%。因此,在 STREAM Triad 上持续的带宽为 16.6 TB/秒。可以肯定的是,Infinity Fabric 的 NUMA 特性有其自身的开销,很难说这个开销到底有多大。在 CPU 系统上,四路 NUMA 设置提供的性能约为理论 4 倍的 3.65 倍。(在 CPU 之间的链接数增加一倍的双向插槽上,您说的是 1.95 倍,而峰值理论为 2 倍。)
但在 Microsoft Azure 在其 HBv5 实例上运行的 STREAM Triad 测试中,持续内存带宽为 6.9 TB/秒,远低于峰值聚合带宽 20.8 TB/秒。考虑到 CPU 内核可能无法像具有大量并行性的大量 GPU 内核那样驱动高带宽,也许有必要降低 HBM 内存子系统的速率以匹配 CPU 可以和不能做的事情。这是一个奇怪的现象,我们已致电 AMD 和 Microsoft,以帮助我们更好地理解 STREAM Triad 结果比我们根据 NUMA 开销和过去在独立设备上进行的 STREAM 测试结果所预期的要小 2.2 倍的情况。
话虽如此,四路服务器 6.9 TB/秒的速度远远超过 Azure 用于提升存在内存带宽问题的 HPC 应用程序性能的其他双插槽服务器。(我们也是。我们不做评判。)
HBv5 实例使系统中 512 GB HBM3 内存中的 400 GB 到 450 GB 可供 HPC 应用程序使用。在这个范围的顶端,平均每个核心 3.5 GB,这比 Sapphire Rapids HBM 设置的每个核心略多 1 GB 要好得多。Azure 上的 HBv5 实例每个核心最多可以有 9 GB 的内存,因为每个核心的内存是用户可配置的。在机器上的 384 个核心中,有 352 个可供实例上运行的应用程序使用。62 GB 到 112 GB 的 HBM3 内存和 32 个核心被分配给 HBv5 实例中的开销。(奇怪的是为什么这个虚拟机管理程序和其他开销没有像 Amazon Web Services 使用“Nitro”NIC 那样卸载到 DPU 上,而谷歌正试图使用“Mount Evans”NIC 来做到这一点。
HBv5 实例已禁用 SMT 以提高性能,这也是一个单租户实例。该实例有一个 800 Gb/秒的 Quantum 2 InfiniBand 端口,该端口被划分为四个虚拟 200 Gb/秒端口,每个插槽一个。这些 InfiniBand NIC 用于将节点聚集在一起以共享工作,并且使用Azure VMSS Flex(虚拟机规模集的缩写),其中的“Flex”表示它非常灵活,因为它可以将虚拟机分布在区域或可用区域的故障域中,微软表示它可以“将 MPI 工作负载扩展到数十万个 HBM 驱动的 CPU 核心”。
这意味着微软已经在各个地区安装了数千台四核 CPU 服务器,以便能够实现这一目标。这些系统还具有基于以太网的 Azure Boost 网络接口卡,可为 HBv5 实例下的机器提供 160 Gb/秒的连接。该机器具有 14 TB 的 NVM-Express 闪存,可以以 50 GB/秒的速度读取数据,以 30 GB/秒的速度写入数据。
HBv5 实例目前处于预览阶段,尚不清楚何时可用。MI300C(呃,Epyc 9V64H)目前仅通过 Microsoft 提供,显然是与 Microsoft 密切合作开发的,Microsoft 希望在 Azure 上运行更多 HPC 代码。对于许多 HPC 客户来说,拥有可以在不需要移植代码的 CPU 上提供 GPU 级内存带宽的硬件无疑是从本地到云端的一大助力。
尽管如此,我们认为如果 OEM 和 ODM 能够获得 MI300C 那就太好了。也许 MI355C 或 MI400C 可以实现这一点。
专注半导体领域更多原创内容
关注全球半导体产业动向与趋势
*免责声明:本文由作者原创。文章内容系作者个人观点,半导体行业观察转载仅为了传达一种不同的观点,不代表半导体行业观察对该观点赞同或支持,如果有任何异议,欢迎联系半导体行业观察。
今天是《半导体行业观察》为您分享的第3955期内容,欢迎关注。
『半导体第一垂直媒体』
实时 专业 原创 深度
喜欢我们的内容就点“在看”分享给小伙伴哦
来源:科技小天下