前两天,“CXL在AI时代已死”的话题引发热议。在人工智能迅速崛起之前,数据中心硬件领域的许多人都在追逐 CXL,它被誉为异构计算、内存池和可组合服务器架构的救世主,然而现在已被英伟达“弃如敝履”。
但英伟达的 GPU 成本高昂且供应有限,增加内存容量使其能够完成更多工作似乎是个好主意,那么为什么 CXL 及其内存池没有成为英伟达GPU 争夺的前沿和中心呢?
CXL通过 PCIe 总线连接 DRAM 池。主要有以下三种变体:
1)CXL 1 提供内存扩展,让 x86 服务器访问 PCIe 连接的加速器设备(例如 SmartNIC 和 DPU)上的内存;
2)CXL 2 在多个服务器主机和带有内存的 CXL 连接设备之间提供内存池;
3)CXL 3 使用 CXL 交换机在服务器和 CXL 设备之间提供内存共享。
这三者都具有一致的缓存机制,这意味着本地 CPU 1 级和指令缓存(包含内存中的子集)具有统一的内容。CXL 1 和 CXL 2 基于 PCIe 5 总线,CXL 3 使用 PCIe 6 总线。通过 CXL 访问外部内存会增加延迟。
CXL 系统中访问、共享或池化的所有内存都需要 CXL 访问方法,也就是 PCIe 5 或 6 总线访问和 CXL 协议支持,这适用于x86 服务器中的 DRAM 和GPU 中的GDDR内存,但不适用于英伟达通过中介层与 GPU 集成的高带宽内存 ( HBM ) ,因为它没有 PCIe 接口。
《CXL在AI时代已死》一文中写到,英伟达的H100 GPU芯片支持NVLink、C2C(连接到Grace CPU)和PCIe互连格式。但 PCIe 的互连范围是有限的,只有 16 个 PCIe 5 通道,整体运行速度为 64GB/秒,远低于 NVlink 和 C2C 的450GB/秒,速度慢了七倍。英伟达 GPU 的 I/O 部分空间有限,与 PCIe 等标准互连相比,英伟达更喜欢带宽。因此未来芯片上的PCIe面积不会增长,甚至可能会缩小。
最后的结论是,CXL 将无法访问英伟达 GPU 的高带宽内存。
但x86 CPU 不使用 NVLink,并且在 x86 服务器中配备额外的内存可以让受内存限制的作业运行得更快,即使外部内存访问会有一定的延迟增加,但整体性能仍然可以获得提升。
因此,在搭载 HBM 的 GPU 系统上进行AI训练任务时,CXL不被需要。但在运行AI 调优和推理工作负载的数据中心 x86/GDDR-GPU 服务器中,CXL 仍有其应用价值!不过在边缘系统中,由于其设计通常比数据中心系统更为简单,且总体内存需求较低,CXL的实际作用较为有限。