前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >SK Hynix:CXL内存解耦在HPC/AI场景的应用

SK Hynix:CXL内存解耦在HPC/AI场景的应用

作者头像
数据存储前沿技术
发布2025-02-11 18:51:29
发布2025-02-11 18:51:29
860
举报

问题意识

1. 内存资源利用不足与性能瓶颈:传统数据中心面临内存孤岛和数据溢出问题,导致内存资源浪费和性能降低,难以满足AI和大数据应用需求。

2. 分布式系统的数据传输开销:节点间的网络传输导致数据复制和序列化开销,增加了延迟并降低了分布式计算的效率。

3. 内存解耦的高效管理需求:为支持AI模型,需要研究分解内存的动态分配、近数据处理和遥测功能,以优化资源利用率和系统性能。

内存应用现况

场景对内存带宽和容量的需求不断增大

随着CPU核心数量的增加,需要持续提升内存带宽和容量。

这些需求与平台供应能力之间的差距正在扩大。

CXL(Compute Express Link)提供了突破物理限制的新机会,支持高效的内存解耦。

在CXL之前Optane是市场热切关注的内存扩展方案,为什么Optane会退出而CXL成为统一的事实?

Optane(英特尔开发的持久性内存技术)在一些方面不如CXL方案,导致它逐渐被淘汰。以下是Optane相对于CXL的劣势以及其逐步被市场淘汰的原因:

1. 架构灵活性不足

  • Optane:Optane内存通过DIMM插槽直接插入系统,与DRAM和处理器紧密耦合,扩展性有限,通常只能与特定的处理器和系统架构兼容(如英特尔平台)。这种封闭的架构限制了Optane在多平台上的兼容性。
  • CXL:CXL是一种开放标准,支持与不同类型的处理器和加速器进行互操作。CXL允许灵活的存储解耦,可以通过PCIe接口扩展内存资源,适用于不同的计算平台。CXL还支持多个供应商,使得它能够适应更广泛的硬件生态系统。

2. 性能和带宽瓶颈

  • Optane:尽管Optane的延迟低于传统的SSD,但与DRAM相比,Optane的延迟和带宽依然较高,且难以满足高带宽、低延迟需求。对于需要高性能内存的密集型工作负载(如AI和大数据处理),Optane的性能表现不如DRAM或CXL提供的内存扩展。
  • CXL:CXL可以直接提供高速的内存连接,利用PCIe 5.0及以上的带宽,使其能够以较低延迟连接扩展的内存资源,更好地满足高性能计算场景需求。CXL还支持“内存池化”(Memory Pooling)和内存共享,这对于大型数据中心和云计算环境尤为重要。

3. 扩展性和灵活性

  • Optane:Optane DIMM的扩展性较差,增加内存容量往往需要直接替换或新增DIMM槽位,灵活性受到限制。此外,Optane内存的模块化选择较少,并且由于其成本较高,对某些应用场景而言性价比不高。
  • CXL:CXL支持通过PCIe实现内存池化,可以灵活扩展内存容量,支持多个处理器之间共享内存资源。CXL还支持内存按需分配,有助于数据中心更有效地利用硬件资源。

4. 市场和生态系统支持

  • Optane:Optane主要由英特尔推动,并且硬件生态受限于特定的英特尔处理器系列。由于市场需求不足和生产成本高昂,Optane在非英特尔生态系统中的接受度较低。
  • CXL:CXL由多家芯片和硬件厂商联合开发,支持更加开放和广泛的生态系统。越来越多的服务器、存储和网络硬件厂商开始支持CXL,这使其成为行业标准之一。CXL在云计算和大型数据中心环境中的广泛支持,使得其市场前景比Optane更为广阔。

5. 成本与性价比

  • Optane:由于Optane的3D XPoint材料和制造工艺复杂,其成本较高,而且市场需求不足,导致难以实现大规模量产降低成本。这使得Optane对于企业客户而言性价比不高。
  • CXL:CXL基于PCIe架构,相比Optane的专有技术更易于制造和部署,且可以利用现有硬件降低成本。CXL的扩展能力使得企业可以更灵活地选择硬件配置,从而提升性价比。

Optane的劣势主要体现在性能、灵活性、扩展性和成本上,而CXL作为一种开放、通用的内存扩展标准,克服了这些问题。CXL不仅能够提供更好的性能和更低的延迟,还允许更灵活的内存池化和共享,符合现代数据中心和云计算对灵活性和扩展性的要求。这些因素使得CXL逐渐成为主流解决方案,而Optane则因其架构局限性和市场需求不足而被逐步淘汰。

当前数据中心的挑战

挑战1:内存孤岛和数据溢出

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

每个节点中的未使用内存无法被其他节点利用,导致内存孤岛和数据溢出。

图示说明:

左侧的示例显示了内存未充分利用的情况,导致了内存孤岛(Memory Stranding),这是由于各虚拟机(VM)分配的内存和实际需求不匹配,部分内存被闲置而浪费。

右侧的示例展示了数据溢出(Data Spill),即当内存不够时,需要将部分数据交换到存储中,导致存储交换和性能下降。

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

在分布式计算系统中,远程节点之间存在基于网络的数据传输开销(P2P效率不高)。

节点间共享数据的复制会增加本地内存压力。

图示说明:

左侧的节点结构显示了应用程序(App)和本地DRAM存储的基本配置。

在分布式系统中,数据在不同节点之间的传输需要通过网络进行,导致序列化和反序列化开销(Serialization & Deserialization)。

此外,为了确保每个节点都有所需的共享数据,通常会进行数据复制(Data Duplication),这进一步加剧了内存使用压力和性能瓶颈。

解决方案:CXL解耦内存系统

支持通过CXL解耦内存系统实现内存池化和共享

内存池化:通过节点间共享内存资源,缓解内存孤岛和数据溢出问题。

内存共享:通过节点间数据共享,消除数据传输开销和数据复制问题。

图示说明:

内存池化(Memory Pooling):图中展示了不同节点(Node 1、Node 2、Node 3、Node 4)可以根据各自的内存使用情况,从CXL内存池中动态分配内存资源。这种方式使各节点可以灵活使用内存资源,从而避免了因资源不足或过剩而导致的浪费。

内存共享(Memory Sharing):在内存共享方案中,数据对象可以在节点间实现零拷贝共享(Zero-Copy),如图中的“共享对象”(Shared Object 1、Shared Object 2等)。这种共享机制消除了数据传输的需求,同时减少了本地数据复制压力。

构建了一个Niagara软硬件研究平台,这是一种基于FPGA的MH-SLD(?)类型CXL解耦内存原型,用于内存池化和共享的使用探索。

2U内存设备,可以连接多达8个CXL主机服务器(不需要CXL交换机)。

支持多达4通道的DDR4-DIMM(最大1TB)。

支持CXL规范3.1中定义的DCD(动态容量设备)功能。

图示说明:

左侧图展示了Niagara平台架构

各主机(Host)包含虚拟机(VM)、容器(Container)和原生进程(Native Process)等工作负载。

主机操作系统中包含DCD管理器(DCD Manager),其中有DCD-CXL驱动和内存使用监视器。

内存管理子系统包括本地DRAM(固定大小)和CXL内存(与Niagara一起可动态调整)。

中间图为CXL分解内存系统的结构,显示了多个主机通过CXL接口连接到一个池化的内存管理器和内存控制器,实现共享内存资源。

右侧图为实际设备照片,展示了一个机架级系统,其中包含多个服务器和Niagara设备。

MH (Memory Heterogeneous) :代表“异构内存”,意指系统中可以存在多种不同类型的内存,比如DRAM、CXL内存、Optane等。这种异构性允许系统根据工作负载需求灵活选择或组合不同的内存类型,以实现最佳性能和资源利用。 SLD (Software-Defined Logical Device) :代表“软件定义的逻辑设备”,意味着内存资源的分配和管理是由软件控制的,而不是通过固定硬件分配。通过软件定义,平台能够动态分配内存容量、调整优先级,并在多个节点间实现资源共享。

DCD(Dynamic Capacity Device):这是CXL规范3.1中定义的一种功能,允许内存容量动态调整。通过DCD,平台可以根据实际内存需求为不同服务器分配或释放内存资源。这在动态工作负载的环境中尤为重要,能够提高内存的利用率,减少闲置和浪费。

CXL 内存解耦案例

案例1:内存池化(与MemVerge合作)

Niagara可以在不重置的情况下,为每个节点动态分配/释放分解内存资源。

提升了使用CXL分解内存系统的内存利用率和性能。

图示说明:

左侧图展示了在虚拟机(VM)运行过程中,CXL内存池的动态分配流程。

起初,主机有可用的CXL池化内存。

随着需求的增加,主机从CXL池中分配了部分内存供工作负载使用。

这种分配过程不会中断工作负载的执行,避免了传统内存管理中可能的重置或中断问题。

右图为数据在DRAM上溢出的测试数据,与溢出到SSD(swap)相比,基于CXL的扩展内存,将数据溢出到Niagara系统的性能比传统的SSD溢出方案快了2.5倍,说明了CXL内存系统在处理数据溢出和内存池化上的显著优势。

案例2:内存共享(与MemVerge合作)

远程对象访问时,无需再进行对象序列化和通过网络传输。

不再需要在不同节点上复制对象,零拷贝(zero copy)实现数据共享。

图示说明:

左侧图展示了使用CXL共享内存的Ray系统(一个用于AI/ML的分布式计算框架)架构。

每个主机(Host 1和Host 2)中运行Ray的工作单元(Worker),并包含全局对象存储(Global Object Store)。

通过CXL共享内存,所有主机可以直接访问共享对象,而不需要通过网络传输或序列化。

这种架构使得数据对象在节点间实现了零拷贝共享,降低了内存和网络开销。

右侧图为性能测试结果:

在Ray Shuffle基准测试中,使用Niagara(基于CXL共享内存)的Ray系统性能比原生Ray提升了最多5.9倍。

未来工作

基于内存解耦的AI应用内存子系统架构研究

为AI应用(如LLM(大型语言模型)和DLRM(深度学习推荐模型))提供系统性优化。

针对分解内存高效使用的增值功能研究

近数据处理(Near Data Processing)

遥测(Telemetry):包括热度追踪(Hotness Tracking)、平均延迟和吞吐量监控。

关键要点

  • • CXL是一种新的内存解决方案,可以提高高性能计算和人工智能工作负载的内存带宽和容量。
  • • 计算节点中的内存利用率因时间而异,导致内存闲置和数据溢出问题。
  • • 在分布式计算系统中,网络传输开销和共享数据的重复会导致性能下降。
  • • CXL分散式内存系统可以通过内存池和数据共享来缓解这些问题。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-11-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 王知鱼 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题意识
    • 内存应用现况
    • 当前数据中心的挑战
    • 解决方案:CXL解耦内存系统
    • CXL 内存解耦案例
    • 未来工作
  • 关键要点
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档