CXL技术如何解决数据中心内存问题(上)
CXL(Compute Express Link),是一种全新的设备互联技术标准,已成为业界突破内存瓶颈的存储新技术。不仅用于内存容量/带宽扩展,还用于异构互联,数据中心资源池解耦。在数据中心,CXL技术可以将不同的计算和存储资源进行互联,用更高的系统性能和效率来解决数据中心内存问题。
CXL技术的出现
云计算、大数据分析、人工智能、机器学习等应用的快速发展带来数据中心存储和处理数据需求的爆炸性增长。传统DDR内存接口存在总带宽、每核心平均带宽和容量可扩展性受限等问题。尤其在数据中心,受限于大量内存问题,新的内存接口技术CXL出现。
在数据中心,CPU内存是紧耦合关系,每代CPU都采用新的内存技术实现更高的容量和带宽。自2012年以来,核心数量迅速增长,但每个内核的内存带宽和容量并未相应增加,反而下降。这种趋势将在未来继续,内存容量增长速度也快于内存带宽,这对系统性能影响巨大。
此外,直连DRAM和SSD在延迟和成本方面的巨大差距,使得昂贵的内存资源往往利用率很低,错误的计算和内存比例很容易造成内存闲置(Stranded)租不出去的现象。数据中心业务作为全球资本最密集的行业之一,低利用率是一个很大的负担。微软表示,50%的服务器总成本来自DRAM。尽管DRAM成本很高,但25%的DRAM内存还是浪费了。下图来自Meta内部的统计数据也显示类似现象。内存成本占系统总成本的比例实际上在不断上升,系统的主要成本已经变成是内存而不是CPU本身,使用CXL内存资源池可以有效改善这一问题,通过给系统动态分配内存资源可以优化计算和内存比例关系优化TCO。
不同内存技术的延迟概况
内存带宽/容量随时间推移增加
不同代内存在机架TCO/功耗占比
Microsoft Azure内存闲置
基于传统内存问题,业界一直在寻求采用新的内存接口技术和系统架构。
在内存接口技术方面,PCI-Express(peripheral component interconnect express)成为首选。PCIe是串行总线,使用PCIe从性能和软件的角度来看不同设备之间通信的开销相对较高,但好消息是,PCIe将按照计划在2023年底完成7.0版的批准,提供高达256GB/s 的速率;这距离16 GT/s速率的4.0版PCIe问世还不到两年。加速PCIe发展蓝图的主要推手是云端运算需求;而PCIe以往是每3~4年,甚至是7年会将数据传输速率提升一倍。
PCIe vs DDR 带宽对比
系统架构则是历经几代进化更迭。最初为实现多个服务器共享资源池的尝试,通常使用RDMA技术在通用以太网或InfiniBand上面实现,这些通信方法通常时延更高(本地内存几十纳秒vsRDMA几个微秒)和更低的带宽,而且也无法提供内存一致性等关键功能。
在40Gbps链路带宽网络可实现的往返延迟(总计)
以及导致往返延迟增加的组件
(使用100Gbps可将数据传送减少0.5us)
2010年,CCIX成为潜在的行业标准。它的驱动因素是需要比当前可用技术更快的互连,并且需要缓存一致性,以便在异构多处理器系统中更快地访问内存。CCIX规范的最大优势是它建立在PCI Express规范的基础之上,但它因缺乏关键行业支持,从未真正起飞。
而CXL依托现有的PCIe5.0的物理层和电气层标准及生态系统,为内存加载/存储(load/Store)事务增加缓存一致性和低时延特性。由于建立了行业中大多数主要参与者都支持的行业标准协议,CXL使向异构计算的过渡成为可能并获得广泛的业界支持。AMD的Genoa和Intel的SapphireRapids将在2022年末/2023年初支持CXL1.1。至此,CXL成为业界和学术界最有前途解决这一问题的技术之一。
CXL构建在PCIe物理层上,具备现有PCIe物理及电气接口特性,提供高带宽,高可扩展性特点。另外CXL与传统的PCIExpress(PCIe)互连相比具有更低的时延,而且还提供一组独特的新功能使CPU能够以具有加载/存储(load/store)语义的高速缓存一致(Cache-Coherent)方式与外围设备(内存扩展和加速器及其连接的存储器)通信。该技术保持CPU内存空间和附加设备上内存的一致性,允许资源共享,从而获得更高性能,降低软件栈复杂性。与内存相关的设备扩展是CXL主要目标场景之一。
CXL依托现有PCIe物理及电气接口特性
CXL/PCIe实现内存资源扩展/池
CXL技术的原理
CXL实际上包含三种协议,但并非所有协议都是延迟的灵丹妙药。CXL.io(运行在PCIe总线的物理层上)仍然具有与以往相同类型的延迟,但其他两个协议,CXL.cache和CXL.mem采用了更快的路径,减少了延迟。大多数CXL内存控制器会增大约100-200纳秒的延迟,额外的重定时器会增加或花费几十纳秒,具体取决于设备与CPU的距离。
CXL引入时延与NUMA接近
CXL/PCIe扩展内存系统架构
CXL在PCIePHY层复用不同的协议,CXL1.0/1.1规范附带3个协议支持-CXL.io、CXL.cache和CXL.mem,大多数CXL设备将使用CXL.io、CXL.cache和CXL.mem的组合。CXL.io 使用与 PCIe 相同的事务层数据包 (Transaction Layer Packet, TLP)和数据链路层数据包 (DLLP)。TLP/DLLP覆盖在CXL flit的有效负载部分上。CXL定义了跨不同协议栈提供所需服务质量(QoS)的策略。PHY级别的协议复用可确保CXL.cache和CXL.memory等延迟敏感协议具有与本机CPU到CPU对称一致性链路相同的低延迟。CXL为这些延迟敏感协议定义了引脚到引脚响应时间的上限,以确保平台性能不会因实现一致性和内存语义的不同设备之间的延迟差异较大而受到不利影响。
● CXL.io可以被认为是标准PCIe的一个类似但改进的版本。
是用于初始化、链接、设备发现和枚举以及注册访问的协议。它为I/O设备提供接口,类似于PCIeGen5。CXL设备也必须支持CXL.io。
● CXL.cache是定义主机(通常是CPU)和设备(例如CXL内存模块或加速器)之间交互的协议。
由于安全使用其本地副本,CXL.cache允许CXL设备连贯地访问和缓存主机CPU的内存,可以把这想象成一个GPU直接从CPU的内存中缓存数据。
● CXL.mem是为主机处理器(通常是CPU)提供使用加载/存储命令直接访问设备附加内存的协议。
允许主机CPU连贯地访问设备的内存,将此视为CPU使用专用存储级内存设备或使用GPU/加速器设备上的内存。
从左向右依次是CXLType1、CXLType3、CXLType2
CXL 2.0增加了对内存池和CXL交换的支持,允许众多主机和设备全部链接并相互通信,从而使连接在CXL网络上的设备数量显着增长。多台主机可以连接到交换机,然后将交换机连接到各种设备,如果该CXL设备是多头的并连接到多个主机的根端口,则也可以在没有交换机的情况下实现。SLD(单个逻辑设备)是单个主机分别使用不同内存池,MLD(多个逻辑设备)旨在耦合多个主机以分享同一物理内存池。
分布式内存资源网络将由结构管理器(FabricManager)负责分配内存及设备编排,它相当于控制平面或协调器,位于单独的芯片上或交换机中,通常不需要高性能,因为不接触数据面。结构管理器(FabricManager)提供用于控制和管理该系统的标准API,可以实现细粒度的资源分配、热插拔和动态扩容允许硬件在各个主机之间动态分配和转移,无需任何重启。将所有这些结合在一起,微软报告显示采用CXL方式实现内存资源池整体可减少10%内存需求,进而降低5%的总服务器成本的潜力。
CXL 2.0内存资源池(Switch vs Directconnect模式)
CXL技术的发展
CXL发展势头强劲,三星、SK海力士、Marvell、Rambus、三星、AMD等大厂们的布局也在不断加速。公有云供应商在内的所有超大规模企业都开始尝试依赖CXL连接内存池来改善内存闲置,动态灵活增加带宽和容量的问题。但当前没有太多用于APP使用本地/外部混合资源池的多级内存调度管理监控技术,因此云服务商如果决心大规模使用基于CXL技术的资源池系统,要么自己建,要么得寻找合适的系统软硬件供应商。这方面微软、Meta等主要云服务商已经走到前面。
微软的Pond方案使用机器学习判断分析虚机是否是时延敏感以及不被使用的额(untouched)内存大小,并由此来判断调度VM在合适的本地或CXL远端内存位置,配合性能监控系统不断调整迁移。
微软Pond方案控制平面工作流程
(A) 的VM 调度程序使用基于 ML 的预测来识别延迟敏感的虚拟机及其可能未触及的内存量决定虚拟机的放置
(B) 监控如果服务质量 (QoS) 不满足,调度迁移控制管理器(Mitigation Manager)会重新配置虚拟机
作为智算中心网络建设者,锐捷网络致力于为客户提供创新的产品方案和服务,推动行业发展和创新,让客户与未来更紧密地连接。锐捷网络将持续创新,引领智算时代的网络发展潮流。
参考文献:
TPP: Transparent Page Placement for CXL-Enabled Tiered-Memory
Pond: CXL-Based Memory Pooling Systems for Cloud Platforms
Demystifying CXL Memory with Genuine CXL-Ready Systems and Devices
Compute Express Link™ Specification 3.0 whitepaper
Design and Analysis of CXL Performance Models for Tightly-Coupled Heterogeneous Computing
Memory Disaggregation: Advances and Open Challenges
Network Requirements for Resource Disaggregation
A Case for CXL-Centric Server Processors
微信扫码关注该文公众号作者