查看原文
其他

基于CXL的HPC和AI工作负载的内存解耦(PPT)

常华Andy Andy730
2025-01-01

演讲者:Hokyoon Lee, Jungmin Choi

摘要:Compute Express Link(CXL)天然就具备可组合性,通过CXL.mem事务实现内存资源的解耦。在本文中,我们将重点介绍两个强大的应用场景:内存池化和共享,让用户获得前所未有的好处。

内存池化场景:解决内存滞留问题的关键在计算集群中,每个主机服务器的内存利用在不同时间会有所变化,这要求系统管理员根据其峰值利用率为实时或交互式应用程序配置DRAM容量。然而,每个服务器中未使用的内存却永远无法被其它服务器利用,从而产生了滞留内存的问题。SK海力士的Niagara,一种基于CXL的内存池解决方案,成功解决了这个滞留内存问题。我们基于FPGA的内存池解决方案可以连接到四个主机服务器,并支持最大容量为1TB的四个DDR DIMM通道。

内存共享场景:零拷贝分布式计算框架的核心传统的分布式计算框架,如Spark和Ray,在将数据和任务分发到计算节点时会产生大量的网络流量。为了解决这个问题,我们在Niagara中实现了内存共享功能,使得多个主机服务器可以直接访问相同的数据,而无需通过网络传输数据。在本论坛中,我们将通过Ray框架中的实际工作负载展示内存共享的实用性,众所周知,Ray框架在ChatGPT中得到了广泛应用。

不断增大的内存带宽和容量差距

  • 随着核心数量的不断增加,对内存带宽和容量的需求也在持续提升。

  • 这种需求与平台配置能力之间的差距正在扩大。


当前HPC和AI工作负载面临的挑战

  • 挑战1:内存滞留和数据溢出

    • 每个节点在计算集群中的内存利用会随时间变化而波动。

    • 每个节点中未使用的内存永远无法被其它节点充分利用,从而导致内存滞留和数据溢出。

  • HPC和AI工作负载的内存使用应当与内存容量相适应。


当前HPC和AI工作负载面临的挑战

  • 挑战2:数据传输开销和数据重复

    • 在分布式计算系统中,远程节点之间存在基于网络的数据传输开销。

    • 节点之间共享数据的重复增加了本地内存压力。

  • 在软件设计中需要付出艰苦努力,以有效利用解耦的计算和内存资源。


内存解耦:池化与共享

  • 内存池化:通过共享内存资源来缓解内存滞留和数据溢出问题。

  • 内存共享:通过共享数据来消除数据传输开销和数据重复。


CXL互连带来的机会

  • CXL在物理限制之外创造了新的机会,实现了高效的内存解耦。

  • 可组合的分离式基础设施(CDI)

    • 利用管理软件将计算、存储和网络元素组合在一起。

    • 由计算(CPU)、存储、GPU和内存的分离式资源池组成。


解决方案:Niagara CXL分离式内存

  • Niagara是一款基于2U FPGA的多端口CXL分离式内存原型

    • 支持连接高达8个CXL主机服务器,支持最多4个通道的DDR4 DIMM(最高1TB)

    • 支持内存池化、共享以及其它硬件辅助功能


应用案例1:内存池化

  • Niagara可以在不重置的情况下为每个节点动态分配/回收分离的内存资源。

  • 提高搭载CXL分离式内存系统的内存利用率和性能。


应用案例1:内存池化 评估

  • 通过减少数据溢出,降低执行时间,从而提高系统的内存利用率。


应用案例2:内存共享

  • Niagara支持允许所有主机访问Niagara作为共享数据内存的固件。

  • 消除了对象序列化和通过网络进行远程对象访问的传输。

  • 不再需要在不同节点上复制对象副本,实现了零拷贝。


应用案例2:内存共享 评估

  • 通过消除基于网络的数据传输开销,降低执行时间。


Niagara的硬件辅助功能

  • Niagara支持CXL分离式内存效率的硬件辅助功能

    • 块数据管理:在CXL池化内存内复制或移动数据

    • 快照:将数据保存和恢复到/从CXL池化内存到/从存储设备

    • 内存故障预测:通过分析内存故障模式预测内存不可纠正错误(UEs,Uncorrectable Errors)


Niagara展示

  • 演示根据VM服务器内存需求的变化,执行CXL分离式内存容量的动态分配和回收操作。


收获

  • 基础设施软件,如OpenStack和Kubernetes,对分离的内存资源不敏感

    • 需要进行列举、监视和管理分离式内存资源。

  • Linux内核尚未充分准备好利用CXL分离式内存的DCS(或DCD)功能

    • 分配/释放的粒度为128MB或2GB的固定大小。

    • 由于在释放时有大量活动页面需要迁移,导致内存部分的离线失败频繁。

  • 软件应负责管理数据的一致性以及使用共享内存的一致性。

    • 主机CPU和内存应支持CXL 3.0规范中的嗅探过滤器和反失效机制。

  • 传统的分布式计算平台(例如Spark)已经在并行计算方面表现出色。


下一步工作

  • 性能

    • 内存共享:开发基于硬件的同步机制,以消除软件通信开销。

    • 二层内存管理:实现热/冷页检测与迁移。

  • 可扩展性

    • 基于交换机的CXL池化内存架构和软件。

    • 研究高效的机架间通信方式。

  • 耐久性

    • 池化内存管理器:开发集群管理软件,包括自测试、自愈和错误监测。

    • 内存故障预测:支持各种内存介质,如DDR4/DDR5。



---【本文完】---

近期受欢迎的文章:

  1. CXL内存在分离式HPC中作为持久性内存的研究

  2. CXL内存外形规格比较:探讨这一不断发展的标准

  3. CXL内存池化和共享:提升多处理器系统的性能和效率

  4. 内存架构演进:CXL与RDMA的协同发展

  5. 突破“内存墙”:基于CXL技术的SSD


更多交流,欢迎添加我的微信

---【下面是广告】---

闲着也是闲着,分享一些我觉得不错的东西

经典书。
对于我,这个思想影响很大。
例如,我坚持每天学习/发帖差不多5年了。

继续滑动看下一个
Andy730
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存