Ding N, Maris P, Nam HA, et al. Evaluating the potential of disaggregated memory systems for HPC applications.Concurrency Computat Pract Exper. 2024;36(19):e8147. doi: 10.1002/ cpe.8147
评估分解式内存系统在 HPC 应用中的潜力
《Evaluating the potential of disaggregated memory systems for HPC applications》是发表于《Concurrency and Computation》的一篇研究论文,第一作者为来自劳伦斯伯克利国家实验室的 Nan Ding。文章提出了一种探索分解式内存系统设计空间的方法,以评估其在高性能计算(HPC)应用中的潜力。
研究背景:HPC 系统中计算节点的资源利用率差异大,存在内存未充分利用的问题,而分解式内存有望改善内存利用率并降低成本,但性能会因工作负载而异。此前研究缺乏结构化的分析方法来展示哪些应用在分解式内存系统上受到性能限制等问题,本文旨在提供这样的方法和模型。
相关工作:
- 计算快速链接(CXL)的发展促进了对内存分解的关注,云平台部署的 Pond 系统展示了其在减少 DRAM 需求方面的潜力,但部分工作负载会有明显减速。
- HPC 系统的平均内存利用率较低,资源闲置且内存消耗静态功率,导致运营成本增加。
- 互连技术的进步促使为 HPC 系统提出网络附加分解式内存的方案,许多研究致力于高效内存管理和解决应用在远程内存系统上共同运行时的干扰问题。
系统架构设计:
- 提出了使用假设来探索分解式内存潜在优势和缺陷的结构化系统架构设计方法,并分析了两种先进网络拓扑(蜻蜓拓扑和三级胖树拓扑)的二分带宽对分解式内存系统的影响。
- 通过13个不同的工作负载,相较之前的工作(11个工作负载),加入了2个内存密集型应用程序。分析了不同计算和内存节点比例下系统的远程内存容量和带宽,确定最优系统配置需考虑 HPC 系统工作负载和预算等多个因素。
- 分析表明二分带宽会减少可用的远程内存带宽,且其影响程度因配置而异,确定网络配置也需考虑 HPC 系统工作负载和预算等因素。
应用案例研究:
- 介绍了评估分解式内存系统对各种应用工作负载效果的方法,包括选择机器配置、测量或估计应用的本地和远程内存访问等特征。
- 对人工智能训练、数据分析、基因组学、蛋白质、融合、原子核和传统 HPC 等领域的多个应用进行了案例分析,将应用分为四类并进行了详细讨论。
- 总结得出对于示例的分解式内存系统配置,13 个工作负载中有 9 个不会受到二分带宽的影响,只有 STREAM 和 Eigensolver 可能会受到注入带宽的影响。
讨论与结论:
- HPC 系统架构师和供应商需遵循一些设计原则,如决定进行机架内分解还是系统范围的分解、选择合适的内存扩展方式、考虑用远程内存节点替代分布式文件系统等。
- 受 Little 定律启发,系统架构师需选择能在应用并发度低于处理器 / 系统并发度上限时获得可用带宽的量子,供应商需提供更大页面、更多并发 RDMA 或具有更多并发的 GPU 等。
- 未来网络带宽的增加将使内存分解可能继续成为一种可行的方法,实践者应根据具体工作负载需求来表征应用,以确定是否适合采用内存分解。
综上,文章通过提出方法和进行案例分析,展示了分解式内存系统在 HPC 应用中的潜力和应用时需考虑的因素。
HPC系统常过度配置系统以满足内存需求,部署各种节点架构,导致资源使用不灵活,或要求应用程序自我重组以适应较小的内存占用,这些都导致计算节点的资源利用率在工作负载内的不同应用之间存在很大的差异。而内存解耦合将计算和内存资源分离。计算节点只包含有限数量的本地内存,但可以通过网络访问大量可用的远程内存池。这种设计使 HPC 系统能够扩展内存容量并更灵活地分配内存。
CPU+GPU的异构并行计算架构已经是高性能计算的一种主流解决方案。文章针对的就是仅使用此种架构的HPC系统来添加分解内存,进一步研究其对性能的影响。另外,文章将等分带宽对分解内存性能的影响也考虑在内。
CXL(计算快速链路)在PCIe物理层提供了内存一致性和语义。并且Pond作为第一个在云平台中使用CXL的全栈分解内存系统,已经表明内存分解可以大大降低成本并且程序性能降低可以接受。而HPC系统的利用率报告也表明内存资源过度配置和平均利用率低已经是一种常态。互联网的最新进展促成了针对HPC系统的网络连接分解式内存的提议。针对这方面的研究有很多,但是先前的研究缺乏一种结构化的分析方法,如何证明哪些应用程序在分解内存系统上受到性能限制、网络性能损失对应用程序性能的影响有多大、评估分解内存系统对应用程序性能影响的基本指标是什么。
本文提供了一个结构化的系统设计模型来探索架构设计空间及其约束。我们提供了几种可视化设计空间的方法和一种可以适用于更广泛用户(包括供应商和应用程序开发人员)的方法,以帮助设计新架构或购买未来系统。
系统架构
可用的远程内存资源
图 1 展示了一个基本的网络连接分解式内存系统示意图。这样的系统可以有 C 个计算节点和 M 个内存节点。每个计算节点由一个加速处理单元 (APU) 和它自己的本地高带宽内存 (HBM) 组成。APU 将 CPU 和 GPU 组合到单个硅片上,CPU 和 GPU 都共享一条到远程内存的公共路径。每个内存节点都配备 DDR 内存作为远程内存。计算节点和内存节点通过网络连接,假设有一个 PCIe NIC。因此,当数据超过 HBM 容量时,必须通过网络从 DDR 加载数据。
图 2 显示了从现在到 2026 年 HBM、DDR 和 PCIe 的内存带宽趋势。由于数据需要通过网络从 DDR 加载,PCIe 最终会成为分解式系统的性能瓶颈。
本文使用上述假设提出一种结构化系统架构设计方法来探索分解式内存的潜力和缺陷。并分析了等分带宽对分解内存系统的影响,采用了两种最先进的网络拓扑结构——Dragonfly 和三层胖树。
图 3 直观地展示了三个用例,突出显示了系统架构对可用远程内存容量和内存带宽的影响。 图 3A 突出显示了最简单的情况(C/M = 1/1),其中每个计算节点与一个内存节点配对以运行作业。理论上,每个计算节点都可以访问内存节点的全部容量,并将 100% 的 NIC 带宽作为远程内存带宽。不出所料,在图 3B 中的 C/M = 2/1 的情况下,每个计算节点都拥有一半的容量和一半的远程内存带宽。但是,如果 C/M = 1/2 如图 3C 所示,每个计算节点可以访问内存节点的 200% 容量,但仍然只能获得 100% 的 NIC 带宽作为远程内存带宽,因为带宽受到 APU 的 NIC 而不是两个内存节点 NIC 的限制。
按照这种方法,可以构建一个具有各种比率的设计空间,以描述系统在内存容量和可用远程内存带宽方面的约束。将构建块扩展到现代 HPC 系统,将其规模定为 10K 个计算节点。图 4 显示了不同计算和内存节点比率下每个计算节点的 (a) 可用远程内存容量和 (b) 可用远程内存带宽,假设一个内存节点的容量为 4TB。对于固定数量的计算节点。图 4A 显示了随着内存节点数量的增加(100 到 20 K),计算节点可用的 DDR5 远程内存容量 (TB)。纵轴表示为需要比本地 HBM 内存更多资源并使用远程 DDR 内存的计算节点的百分比,该值将特定于每个 HPC 系统及其工作负载。随着我们增加内存节点的数量(从图 4A 的左侧向右侧移动),每个计算节点的可用远程内存容量会变得更大。随着需要远程内存的计算节点数量的减少(从图 4A 的顶部移动到底部),可以减少争用。图 4B 展示了图 4 中情况的可用远程内存带宽。与图 4 中的内存容量不同,无论是降低 C/M 比率(向右移动)还是减少需要远程内存的计算节点的比例(向下移动),图 4B 中的内存带宽都会在计算节点的峰值 NIC 带宽处达到饱和。
由图4的两张图,参考特定于HPC的工作负载(需求)和可用预算(内存节点供应)就可以考虑确定最佳的系统配置。
等分带宽(二分带宽)影响
等分带宽是两个相等的网络分区之间的可用带宽。本文分析了三跳Dragonfly拓扑和三级Fat-tree拓扑的等分带宽,并探究了机架内分解和系统范围分解的硬件限制。机架内分解(机架分解)表示应用程序可以直接访问其机架内的所有可用内存,但依赖 RDMA 来获取机架以外的更多内存。同样,系统范围分解(全局分解)意味着用户可以从整个系统的任何位置加载数据。
本文考虑64端口的交换机,对于这两种拓扑的可扩展性都足以满足2026个分解内存系统上预期的网络中端点链接数量。使用11000个节点(10000个计算节点和1000个内存节点)的规模作为示例预测等分带宽的影响,并假设10%的计算节点将需要远程内存用于机器配置,则每个计算节点的最大内存带宽为 100 GB/s。在整篇论文中,将组内二分带宽称为机架分解的可用远程内存二分带宽,将组间二分带宽称为全局分解的可用远程内存二分带宽。具体到我们的机器配置,考虑两种选择:24 组,每组 32 台交换机,以及 48 组,每组 16 台交换机。即使这两种设置的交换机数量相同,但它们的组内和组间二分带宽却非常不同,并且成本也不同。
二分带宽能减少可用的远程内存带宽,并且减少程度因配置不同而异。图 5 突出显示了二分带宽对分解式内存系统设计空间的影响,假设二分带宽分别为注入带宽的 100%、50% 和 28%,其中A表示注入带宽,B表示机架二分,C表示全局二分。每个系统大小(x 轴)可能需要不同的网络配置。更大的系统规模将需要更昂贵的网络。机架内分解式内存系统的可用远程内存带宽将被图 5B 中的二分网络(50% 锥度)减半。图 5C 显示,全局分解式内存系统的可用远程内存带宽不到其注入带宽的 28%。 与系统架构设计一样,确定网络配置取决于 HPC 系统工作负载(需求)和可用预算(交换机和链路供应)的多个特定因素。指导原则是,应有足够的远程内存带宽来支持通过网络进行的集体操作,同时尽量减少对工作负载的负面影响。
应用特性
在本节中,提出了一个内存 Roofline 模型来评估和可视化在分解内存系统上运行的应用程序的性能瓶颈。先前的研究都认为内存分解会给应用程序带来巨大的带宽和延迟损失。然而,这些结论是基于当前技术得出的,没有考虑未来的新兴技术。为了分析在不久的将来对单个应用程序的影响,引入了本地与远程内存访问比 (L:R) 指标来表征分解内存系统上的应用程序性能。使用内存 Roofline 图关联指标,以提供一个通用框架来评估和可视化在分解内存系统上运行的应用程序的性能瓶颈。
传统的Roofline模型将应用程序的性能(GFLOP/s)作为其算术强度(每移动一个字节执行的FLOP次数)的函数进行表征。它通过快速的可视化比较,将应用程序的性能与目标架构的峰值计算性能(GFLOP/s)和峰值内存带宽(GB/s)设定的上限进行对比,以确定性能限制因素是内存还是计算。
沿用传统Roofline模型的方法,新内存Roofline模型将应用程序的持续内存性能(GB/s)作为其本地到远程数据移动比率(L:R)、峰值本地内存带宽和峰值远程内存带宽的函数进行表征。例如,如果应用程序在GPU上运行,我们将HBM(高带宽内存)的数据移动称为其本地内存数据移动(L),而将CPU DDR内存数据移动(通过PCIe的远程内存)称为远程内存数据移动(R)。因此,与通过分析经验性地测量L:R不同,用户可以通过使用HBM数据结构的大小(≈本地数据移动)和训练样本的大小(≈远程数据移动)来估算L:R,用于流式机器学习应用程序。L:R数据移动比率大于系统的本地与远程带宽比率的应用程序可以通过大量快速的本地内存访问有效地隐藏慢速远程(解耦合)内存带宽的影响。
图6A展示了使用未来HBM(本地)和PCIe(远程)带宽的内存Roofline模型。该模型在视觉上与传统Roofline模型非常相似,其中本地带宽取代了传统的峰值GFLOP/s平台,而远程带宽取代了传统的内存对角线。A表示可用的远程内存注入带宽。我们观察到HBM3:PCIe 6.0系统的平衡点为65.5,这表示本地和远程传输所需时间相等的数据移动比率。这个比率与当前的HBM2:PCIe 4.0系统的平衡点62.2非常接近。这表明未来的硬件趋势不会削弱内存解耦合的效能。
像ADEPT<ADEPT(A Dynamically Extensible Performance Tool) 是一个性能分析工具或框架,通常用于监测、分析和优化计算机程序或系统的性能>这样L:R比率接近500(远大于65.5)的应用程序,对内存解耦合的敏感度较低,主要受节点内性能的支配,并且将使用不到14%的可用PCIe带宽(绿色对角线)。相反,像STREAM这样理论L:R比率为2的应用程序,其性能将受到内存解耦合带宽的限制和影响,从而表现出性能下降。
图6B显示了性能随着二分带宽相对于注入带宽逐渐减少的变化情况。B表示可用的远程内存二分带宽。二分带宽的变化会将系统的平衡点向右移动,一个假设的矩阵乘法(GEMM)应用程序,矩阵维度约为300K × 300K,将受限于二分带宽,甚至无法完全利用本地HBM带宽。相反,像ADEPT这样具有高L:R比率的应用程序,对合理的机架和全局二分带宽不敏感。最终,L:R比率小于131的应用程序会发现机架内的二分带宽比本地内存带宽更容易成为性能瓶颈,而运行在全局解耦合内存上的L:R比率小于234的应用程序会发现全局二分带宽比本地带宽对性能的影响更大。
最终,网络带宽的增加会将系统平衡点向左移动(减少因解耦合而受影响的应用程序数量),而HBM带宽的增加会将系统平衡点向右移动(增加因解耦合而受影响的应用程序数量,因为访问本地内存和访问远程内存的性能差异太大)。虽然HBM带宽的增加仅仅是提高了每个节点的成本,但增加二分带宽却可以随着节点数量的增加而呈超线性增长。因此,将本地与全局的平衡点向左移动,对于大规模高性能计算(HPC)和云系统来说,可能会导致成本过高。
应用案例研究
系统配置
具有10,000个计算节点,具有 512 GB 的 HBM3本地内存容量,通过PCIe 6.0连接的NIC访问 DDR5 远程内存节点。假设在任何时刻,10%的计算节点将需要远程内存用于我们的机器配置。参考图 4A,在 10% 时,我们可以选择 500 个或者更多具有 DDR5内存的内存节点(x 轴),以确保每个计算节点都可以访问大于本地 HBM3内存的远程内存。对于 10,000 个计算节点的配置,这些计算节点访问1000个内存节点上总计 4 PB 的 DDR5内存,我们从图 4中看到,每个需要远程内存的计算节点平均可以访问 4TB的远程内存,峰值远程内存带宽为 100 GB/s。
应用特点
文章针对不同的工作负载,总结了计算其L:R的高级方法。本地:远程内存比率=测得的FLOP/样本字节:测得的FLOP/HBM字节。
应用分析
图7A和图7B是分解式内存系统上应用的容量和瓶颈可视化图,它展示了应用在机架和全局分解式内存系统上的性能情况。结合了本地和远程内存数据移动比(L:R)以及每个节点的内存容量这两个关键指标,以直观的方式呈现了应用在未来分解式内存系统上的性能,以及评估单个应用的潜力和缺陷。假设应用表1中的48组配置的三级Dragonfly拓扑,配备PCIe 6.0网卡。
蓝色区域:应用所需的内存占用可以适应本地 HBM 内存,例如 ResNet - 50,这些应用会受 HBM 内存限制。
绿色区域:应用所需的内存占用无法适应本地内存,但由于 L:R 比高(大于 65.5),可以达到 HBM3 带宽,不会因分解而导致性能下降,例如 DeepCAM。但需注意,这些应用可能会因低效的数据移动和带宽争用而受到 PCIe NIC 带宽的影响,从而落入橙色区域。
橙色区域:应用所需的内存占用不适合本地内存,且由于 L:R 比低(小于 65.5),会受到注入带宽的限制,例如 STREAM(大于 512GB)。
灰色区域:应用所需的内存占用不适合本地内存,且 65.5 < L:R < 234,会因二分带宽而导致性能下降,例如 SuperLU。
红色区域:对于机架分解,表示机架内的远程内存不足。
总的来说,图 7 通过这些区域的划分,展示了不同应用在分解式内存系统上的性能表现和潜在的瓶颈。
应用分析总结
这些案例研究展示了多个领域中多样的内存访问模式和内存容量需求。在包含10,000个计算节点和1,000个内存节点的典型解耦内存系统配置中,13个工作负载中有9个落在蓝色和绿色区域,这些工作负载不会因二分带宽而受到影响。进行100次分解求解的SuperLU_DIST虽然受限于全局二分带宽,但对机架二分带宽不敏感。只有STREAM和Eigensolver落在橙色区域,可能会因为注入带宽而受到影响。
假设这些应用程序代表了一个工作负载,而落入绿色和橙色区域的应用程序构成的工作负载节点小时数少于总工作负载的10%,那么这里讨论的解耦系统可能会带来显著的成本节约,消除40PB的节点本地DDR内存(10,000个计算节点×4TB),用1,000个每个4TB的内存节点替代,而不会影响性能。