CXL 从众多互连标准中脱颖而出,成为将内存连接到各种处理单元以及在数据中心内共享内存资源的一种可预测方式。
Compute Express Link建立在 PCI Express 基础上,几乎所有主要芯片公司都支持该技术。它用于通过串行通信连接 CPU、GPU、FPGA 和其他专用加速器,但它还允许跨设备池化内存,以提高资源利用率和高效利用率。
尽管 CXL 经常被拿来与 NVIDIA 的 NVLink进行比较,但它的使命却沿着不同的道路发展。“几年前,我们都认为许多加速器会使用 CXL 作为一种廉价、轻量级的方式来访问主机内存,”Synopsys 解决方案事业部 PCI Express 控制器 IP 高级技术产品经理 Richard Solomon 表示。“但我们没有看到太多这样的情况。人们的兴趣肯定比我们预期和希望的要少。我们看到的是,人们对 CXL 作为连接内存技术的兴趣非常浓厚。
Rambus 高级产品营销经理 Zaman Mollah 表示:“CXL 早期的主要用例是内存扩展,增加容量和带宽、内存重用和智能内存分层应用。”“这些解决方案很容易使用现有的即插即用 PCIe 物理接口进行集成。CXL 将与其他具有自己应用和用例的类似互连技术共存。CXL 可能无法提供以 GPU 为中心的AI 应用所需的带宽,但它在加速器和基于 CPU 的 AI 用例中很有用。它允许可组合的数据中心架构,并提供一种灵活且经济高效的方式来增加内存容量和带宽,同时具有可接受的延迟。”
西门子数字工业软件VIP 产品线高级总监 Christopher Browy表示,CXL 可能会用于主机和相干加速器之间的内存池化和共享,并通过 UALink 和 UltraEthernet 结构进行远程横向扩展。“支持 CXL 和 UALink 的交换机很可能会问世。CXL 还将考虑先进的多级内存、存储级内存和缓存解决方案以及优化计算存储。CXL 现在比几年前更接近现实,它将在未来最新的新兴 AI 和 HPC 连接标准中占有一席之地。CXL 是最好的选择,因为它以独特的方式实现了基于内存和缓存的扩展。虽然 UCIe 将根据多芯片芯片设计重新定义芯片和 IP 市场,但 CXL 是它们如何在模块和机架级别协同工作的关键。”
3.1 版本增强安全性
CXL 标准最初于 2019 年 3 月提出,在过去几年中经历了多次修订。CXL3.0 于 2022 年发布,最新的CXL3.1规范于去年 11 月详细发布。3.0 版中添加了许多新功能,3.1 版中添加了一些 ECN(工程变更通知),以增强新功能的功能性,以实现结构功能。
CXL 有三个子协议:CXL.io、CXL.cache 和 CXL.memory。CXL.memory 最令人兴奋,因为设计师意识到它可以为数据中心的内存扩展和高级 AI 拓扑做些什么。内存构建依赖于英特尔、AMD 和基于 Arm 的超大规模处理器的 CXL 2.0 处理器。
据 CXL 联盟称,3.1 规范“改进了结构可管理性,使 CXL 超越机架并实现分解系统。CXL 3.1 规范以之前的迭代为基础,优化资源利用率,根据需要创建可信计算环境,扩展内存共享和池化以避免内存滞留,并促进加速器之间的内存共享。”
CXL3.1 包含其他功能,可进一步减少 CXL 结构中连接的端点和主机的延迟,以及新的安全协议。Rambus 芯片 IP 产品营销高级总监 Lou Ternullo 表示:“这些功能包括 CXL.IO 对等 (P2P)、无序 I/O (UIO)、CXL.mem P2P,以及添加可信执行环境 (TEE) 操作代码以扩展 PCIe 传输层的完整性和数据加密 (IDE) 支持,通过路径中的交换机和重定时器在主机和端点之间提供受保护的路径。”“P2P 允许 PCIe/CXL 设备直接访问 flex 总线上其他 PCIe/CXL 设备中的内存,而无需主机处理器。UIO 允许事务通过传输层,而无需管理排序规则。”
CXL3.1 最大的变化是交换结构功能的改进。“现在它可以处理基于端口的路由,从而实现横向扩展部署。交换结构不受传统基于树的层次结构的约束,”Ternullo 说。“它允许主机和设备进行跨域访问,其中一台设备最多可以访问 4,096 台主机或其他设备。因此,设计人员现在可以实现大型系统或拓扑以及任意对任意通信。”
CXL 3.1 规范还包含其他改进。“例如,使用全局集成内存 (GIM) 概念进行结构连接内存访问的主机间通信,”Rambus 的 Mollah 说道。“CXL3.1 还引入了可信安全协议以增强安全性。借助横向扩展部署功能,许多虚拟机将通过结构连接,因此安全性是一个非常重要的因素,需要考虑。CXL3.1 中的扩展元数据功能(最多 34 位元数据)允许监控更多诊断数据和信息。所有这些都是横向扩展大型拓扑部署的重大突破。”
CXL 联盟营销工作组联合主席、英特尔至强产品规划与营销部高级营销经理Anil Godbole 解释说,按照最初的设想,CXL 主要针对异构计算。CXL主要由英特尔开发。
Godbole 表示:“一致性是 CXL 与 PCIe 的真正区别,因为 CXL 在与 PCIe 相同的 I/O 上运行。两种协议的基本 PHY 相同。但在连接时,CXL 设备将作为 CXL 连接,主机将通过 CXL 与其通信,而 PCIe 设备(如果放在主板上的同一插槽中)将作为 PCIe 出现。当它连接时,设备会说,‘我必须从这里使用 CXL。’PCIe 永远无法提供一致的内存。因此,快进到今天,内存占用量的增加是 CXL 的最大用例。”
另一方面,他说,“如果你不需要一致性,那么最好不要有协议的开销,你可以简单地将数据从一个点传递到另一个点。”
针对 CXL 无法与 GPU 配合使用的反对意见,Godbole 指出 GPU 需要 CPU。“您必须了解 GPU 实际上是如何获得其工作量的。最终,始终是 CPU 开始执行神经网络工作量。GPU 没有自己的大脑。它只是一个矩阵乘法器庞然大物,始终由 CPU 提供数据。当我参加会议时,人们总是问我们能做些什么来从 CPU 中获取更多带宽?这是我们将在下一个规范中通过聚合 CXL 链接来解决的问题。”
Cadence高级产品营销部总监 Arif Khan 表示,CXL 如何处理内存池也受到了质疑。“从规范发布到支持 1.1 标准的初始 OEM 平台推出,该规范已经取得了长足的进步。尽管如此,实施者仍然对它产生了浓厚的兴趣,因为他们希望构建内存扩展器和池化设备。Levis 等人在 ACM 论文中对内存池提出了批评,主要围绕成本、软件复杂性和实用性。可供比较的公开数据集有限,这使得这篇文章读起来很有趣。然而,市场仍然对这个标准有需求,因为实施者正在围绕它构建解决方案。”
即使数据稀疏,内存池的经济性似乎也特别有吸引力。“未来,CXL 将继续用于容量和带宽扩展,以及通过压缩内存进行内存分层,”Mollah 说。“随着每字节成本的降低,内存池用例等高级应用程序将变得更具吸引力,并允许以更低的 TCO 实现分散的数据中心基础设施。”
CXL 并不是唯一的选择。“随着针对特定用例的替代标准的兴起,该标准最近受到了一些质疑,”Khan 表示。“自该规范首次公开发布以来的五年里,我们看到了人工智能加速器领域的指数级增长。由于 LLM 用例在炒作周期中占据主导地位,系统正在针对这些应用进行优化。CXL 一致性模型正受到目前正在构思的其他扩展标准的挑战。GPU 制造商使用的专有标准已经到位,并为这些特定应用设定了基准。无论如何,标准领域仍然是新的,市场需要一些时间来确定哪些标准最适合哪些细分市场。通常,商业动态发挥着巨大作用。”
Solomon 表示,最好将 CXL 视为一系列选择的一部分,就像内存有广泛的产品范围,可以满足特定需求一样。“显然,有些地方不追求速度最快也是有道理的,尤其是考虑到价格和容量之间的权衡。如果你看看过去 30 多年来的每一种现代计算机架构,你会发现即使在缓存中也存在层次结构,所以很明显,内存不是最快的,也有其用途,”他说。“如果你处于绝对前沿,CXL 可能对你来说不够快。但如果你正在构建一款快速、经济的设备,那么 CXL 可能是你的最佳选择。没有一种技术可以适用于所有领域。关键在于平衡。”
西门子的 Browy 对此表示同意。“基于 PCIe SerDes 的 CXL 具有更低的错误率、更低的延迟和相应的更低的带宽。NVLink 和 UALink 使用以太网式 SerDes 会导致高错误率、更高的延迟和高带宽,因此对于最高性能带宽受限的情况(例如 GPU 到 GPU),它们具有优势。在一个模块越来越多地基于 UCIe 连接的芯片作为通用和专用计算的基本构建块的世界中,真正的 CXL 优势在于需要一种强大的低延迟方法来提供基于智能缓存的层次结构,包括现在的本地主内存、存储类内存以及不断发展的池化/共享和计算存储解决方案。这将是数据库、计算存储、通用计算、科学计算和 AI 作为 GPU 的关键,可以将其视为统一的智能内存。”
总结
未来,CXL 的作用将越来越大。除了继续用于内存扩展,它将进一步实现异构计算和数据中心分解,帮助最大限度地减少服务器过度配置,并实现对内存、存储、加速等的按需访问。
展望未来,Yole Research 预测,鉴于 CXL 在内存利用率、管理和分解和可组合性访问方面的潜力,到 2028 年其市场规模将达到 160 亿美元。CXL Consortium 的 Godbole 表示,这只是一个开始。“去年联盟一直在摸索,这是第一次可以添加内存并将其连接到服务器上。支持 CXL 的 SKU 有限,这限制了市场采用。随着 CXL迭代,每个 CPU 都将具有 CXL 功能。”