根据IDC Global DataSphere对每年数据产生量的预测,全球数据量的复合年增长率(CAGR)将达到21.2%,并在2022年至2026年期间增加一倍多。而作为全球最大数据生产国之一,中国的数据规模将有望从2022年的23.88ZB增长至2027年的76.6ZB,复合年增长率达到26.3%。显然,包括中国在内,全球对更高性能数据中心的需求十分迫切。
庞大的数据量毫无疑问需要与之匹配的“算力”和“存力”,但与此同时,人们却往往忽视了“运力”,也就是更高系统带宽、更快传输速度的重要性。尤其是在AI大模型快速发展的当下,“算力”和“运力”之间的差距越来越大——以Transformer类模型为例,其参数数量的增长以指数级别呈现,每两年大约增加410倍,而GPU内存仅以每两年2倍的速度扩展,且利用效率低下。
另一个需要引起重视的趋势,是当前的数据中心正在向异构和云计算架构转变,以人工智能(AI)、机器学习(ML)、实时分析和高性能存内计算(in-memory computing)为代表的多样化、高性能计算工作负载也正在蓬勃兴起。
数据中心向革命性新架构演进
这些变化给数据中心内存出了三道难题:第一,是服务器中的计算节点越来越以内存为中心。直连式内存和固态存储在延迟和成本方面存在巨大差距,这对服务器内存的层次结构提出了挑战。当处理器耗尽直连式内存空间时,它就会转到固态存储,这意味着它必须等待,而这种等待或延迟会极大地影响计算性能。
第二,是主内存带宽的扩展速度与CPU核心数量的增加速度不匹配。在超过一定的核心数量后,所有CPU都会出现带宽不足的情况,从而无法充分发挥增加核心数量所带来的优势。第三,是内存资源的利用率不足,因为这些快速的加速计算架构中每个加速器都有自己的专用内存。
因此,如果没有更加高效的数据传输与处理体系架构,如果没有找到实现内存共享、提高内存利用效率,可以有效化解“内存墙”问题的解决方案,庞大的数据和计算资源就很难实现按需组合,也很难根据不同工作负载的需求动态配置内存资源。
让我们先简单回顾一下数据中心过去、现在以及将要经历的三次重要转型过程:
首先,在2021年底,服务器内存开始向DDR5转型。与前代产品DDR4相比,DDR5整体架构较为一致,但在容量、能效等方面实现了大幅提升,具备现代化数据中心所必需的特性。
其次,到了2022年,数据中心通过串形链路实现了内存子系统的扩展,也就是当下最为火热的CXL(Compute Express Link)标准。通过CXL,我们就可以在传统插拔式内存条的基础之上,为服务器及数据中心增加全新的内存扩展方式。相比传统插拔内存条的方式,CXL可以进一步提高现有数据中心内存的容量和带宽,也被称作“容量与带宽的双扩展”。
最后,数据中心分解化。CXL的使用将让业界更多关注资源池化和资源本身的功能效应,更高效率地分配资源。通过分解化的全新数据中心架构,计算、内存、存储等资源将进一步池化,从而能够按照工作负载的具体需求,将资源定向分配。使用完成之后,这些资源又将回归到统一的资源池中,等待后续的工作负载进行重新分配。
至于为何不直接使用PCIe技术?原因是虽然PCIe跟CXL有着非常良好的协同和合作之处,包括采用统一的电气接口,两者之间的数据传输速率也非常一致。但从数据中心应用的角度来讲,PCIe更加适用于芯片到芯片之间的互联,CXL增加了一些额外的属性,延迟比较低,同时可以保证缓存的一致性,更适用于在分布式计算架构体系之下,来进行内存资源的分配。
CXL是什么?
说了这么多,那CXL到底是什么?
2019年3月,英特尔宣布联合微软、阿里、思科、戴尔EMC、Facebook、谷歌、惠普企业HPE和华为等公司,共同推出了一个全新的互联标准,取名为Compute Express Link(CXL),应用目标锁定互联网数据中心、通信基础设施、云计算与云服务等领域,目前最新的版本是2023年11月发布的CXL 3.1规范。CXL联盟的数据显示,该联盟成员已经超过255家,涵盖了主要的CPU、内存、存储和网络设备制造商。
作为一种开放的行业标准,CXL可在数据中心内的专用计算、内存、I/O和存储元素之间提供高带宽、低延迟的连接,以允许为给定的工作负载提供每个元素的最佳组合。简单而言,CXL的目标主要是为了解决CPU和设备、设备和设备之间的内存鸿沟,解决内存分割造成的较大浪费、不便和性能下降。CXL通过将计算和存储分离,形成内存池,从而能动态按需配置内存资源,提升效率。
在2019年发布的CXL 1.0/1.1规范中,定义了CXL.io、CXL.cache和CXL.memory三种协议,分别处理I/O、缓存一致性和内存访问。
CXL.io:这种模式可以将内存扩展到外部设备,使得数据的传输速度更快。CXL.io通过PCIe总线连接CPU和外部设备,这样CPU就可以与外部设备共享内存,并且可以直接访问外部设备的I/O资源;
CXL.cache:这种模式可以通过将内存缓存到外部设备中来提高性能。CXL.cache模式允许CPU在本地缓存中保留最常用的数据,而将不常用的数据保存在外部设备中。这样可以减少内存访问时间,提高整体系统性能;
CXL.memory:该协议使主机(例如处理器)能够使用加载/存储命令访问设备连接的内存。该模式可以将外部设备作为主内存使用,从而实现更大的内存容量。
这三个协议虽然支持三种不同的CXL设备类型,但都共同促进了计算设备之间内存资源的一致共享。
2020年11月发布的CXL 2.0,重点是实现了机架级别的资源池化。简单而言,就是强调资源可以像水和电一样按需获取,云计算可以追求不同资源之间的松耦合,以提高使用效率,实现相同资源的池化。同时,还增加了CXL switch功能,它可以在一个机架内通过一套CXL交换机构建成一个网络,使多达16个主机可以访问多个内存实体,以进一步支持解耦,实现从服务器级别提升到机架级别的连接。
2022年8月,Intel发布了建立在PCIe 6.0规范之上的CXL 3.0规范,在将速率从32GT提升到64GT的同时,还确保了延迟没有发生任何变化。另一大亮点是“内存共享(Memory sharing)”,这种能力突破了某一个物理内存只能属于某一台服务器的限制,在硬件上实现了多机共同访问同样内存地址的能力,使得CXL的内存一致性得到了进一步的增强。
此外,CXL 3.0还新增了对二层交换机的支持,可以更好地对资源进行解耦和池化,将CPU、内存、网卡、加速器都变成“资源池”,交换机之间也可以构建各种网络拓扑和路由方式。简单而言,就是在CXL 3.0中,连接交换机的多个设备现在可以使用结构端口进行级联和互连,实现“互相对话”,从而创建一个更大的结构,用于互连大量设备,包括加速器、内存和存储。
CXL3.1新版本对横向扩展CXL进行了结构改进、增加了新的可信执行环境功能,并对内存扩展器进行了改进。1) 支持使用全局集成内存(GIM)通过CXL结构进行主机间的通信,这可以大大提高系统性能。2) 通过CXL对内存事务的直接点对点支持来增加 GPU内存的使用效率,这对于处理大规模数据集和AI工作负载非常有帮助。
重构数据中心
与之前通过插拔内存条实现CXL内存扩展的方式不同,CXL内存资源池化之后,主处理器就可以通过CXL链路,在高速和低延迟的模式下实现与内存节点和其他设备间的连接。
例如,无论是传统的计算节点还是系统,都会通过一个物理接口/控制器和CXL链路实现与其他关键设备和节点的连接。在下游,专业人员可以将内存设备连接至服务器主板上的CXL扩充槽,以实现内存扩展,多个主机也可以共享内存而无需考虑一致性问题。
CXL内存池化是一个全分解、可重组的全新模式。主处理器通过CXL内存的池化与具体内存来进行连接,并根据不同的工作负载进行资源的重新分配和调配;资源池化可以同时支持多个主机与最优的多个内存资源相匹配;Switch可以将内存动态地分配到有需要的服务器上,从而可以大大提高内存的使用效率,使得数据中心用较低的内存成本,能够满足实际业务的需求。
这样,在整个物理接口、控制器、IP集成到设备的情况下,用户就可以更好地匹配具体的计算资源,在一个工作负载完成之后,还可以释放资源并应用到下一个工作任务中。这会给超大规模计算提供商,特别是云服务提供商,带来巨大的优势,帮助他们大幅度降低总体拥有成本(TCO)。
未来,CXL预计将逐步被采用,助力数据中心解决目前面临的问题。第一步将是低延迟内存扩展,这对于支持日益增长的计算核心数量十分重要。CPU可通过CXL连接到远离自己的内存,从而使服务器能够获得所需的足够内存,并变得更加灵活。
之后,CXL还将为内存分层和池化提供支持,帮助提高内存利用率并最终实现整个机架级结构的分解,包括内存、计算和I/O等。借助CXL,内存模块、加速器和I/O设备可以连接到机架级结构,实现灵活的资源分配和组合。
争相布局CXL
高性能计算、存储加速、AI加速、大规模虚拟化,被视作是最适于CXL应用的领域。根据Yole的数据,在服务器内存的行业挑战和市场机遇下,预计2028年全球CXL市场规模将达到158亿美元。其中DRAM将占CXL市场收入的大部分,到2028年市场收入将超过125亿美元,占比约为79%。
英特尔:英特尔在新发布的至强6中引入了CXL 2.0功能。具体做法是让CXL和原生DRAM做硬件辅助分层(HW-assisted tiering),在1:1的情况下尽量把CXL常用数据放在DRAM中。在数据库业务的吞吐性能(IOPS)对比测试中,DRAM+CXL内存相较仅用DRAM方案的性能损失较小。
AMD:AMD的EPYC Genoa支持DDR5、PCIe 5.0以及CXL1.1接口,并计划在3~5年内将CXL技术导入消费级CPU。此外,AMD也正在研发支持CXL 3.0的处理器和加速器产品,旨在提升其在高性能计算和数据中心市场的竞争力。
Arm:从第二代Neoverse产品开始就实现了对CXL 2.0的支持。今年年初推出的Neoverse CCS V3核心,拥有6个DDR5内存控制器、4个I/O 控制器和两个芯片间互连,并支持PCIe Gen5和CXL 3.0。
三星:早在2021年5月,三星就推出了基于DDR5技术支持CXL 1.1互联标准的内存模块,两年后又研发出首款支持CXL 2.0的128GB DRAM。基于CXL 3.0的内存模块正在按计划推进,这些内存模块将适用于高性能计算、AI/ML和大数据分析等领域,提供更高效的内存访问和资源管理
SK海力士:2022年,SK海力士开发了DDR6 CXL计算存储器解决方案,成为业界第一个在CXL内存芯片中引入计算功能的解决方案。2023年,SK海力士量产了基于1α节点的DDR5 CXL产品。
美光:2023年8月,美光推出CZ120内存扩展模块,完全支持CXL 2.0 Type 3标准。支持CXL 3.0的内存解决方案正在开发中,主要面向需要大规模内存扩展和高效数据处理的场景。
Rambus:Rambus提供的产品包括专为用于SoC、ASIC和FPGA而优化的高性能CXL 2.0和3.1控制器。为此,从2021年开始,Rambus陆续完成了对AnalogX、PLDA和Hardent等公司的收购,并推出了CXL内存互连计划。
国内企业方面,国数集联、澜起科技是最具代表性的公司。
澜起科技:澜起科技首款CXL内存扩展控制器芯片(MXC),符合CXL 2.0中的Type 3内存扩展器规范,同时支持PCIe 5.0的传输速率,兼容DDR4-3200和DDR5-6400的内存。
国数集联:国数集联基于自主研发的CXL协议 IP,成功研发了业界第一款CXL多级网络交换机(CXL Multi-level Networking Switch, CMNS)参考设计。此次发布的第一代参考设计基于FPGA,提供24个PCIe ASM端口,可以灵活配置上下行接口。每个端口最大双向速率可达448Gb/s,确保高速数据传输。同时,通过两级组网,最多可实现288个主机互联。
此外,将国数集联的CXL多级网络交换机(CMNS)与CXL混合资源池(CHRP)组网,可构建出极具灵活性与高效性的异构系统架构,能够实现高达192张涵盖CPU、GPU、DDR、SSD、FPGA等多元化设备的系统互联方案。
值得一提的是,该方案的延时仅为IB方案的1/2,RoCEv2方案的1/4,在降低成本的同时,提供超低延迟连接,显著增强AI和HPC组网的运行效率与响应速度。
结语
总体而言,内存池化是CXL实现新的数据中心架构,并解决随着需要更多内存而不断上升的成本问题的有效手段。因为“DRAM是数据中心中支出最高的项目之一”,所以“任何能够提高现有硬件效率的东西,都将间接地有助于降低总拥有成本。”