CXL 支援 CPU 与 GPU 共享记忆体 Intel X

CXL 支援 CPU 与 GPU 共享记忆体 Intel X

就好比数据中心的伺服器和 Switch 用 LAN 线或光纤线互联,CXL 将会是 CPU 与 GPU 的新一代互联技术。Source:Wccftech

CXL 技术简介取代 PCIe

先讲回 Intel CXL 标準的原意——作为 CPU 与 Accelerator 加速器(如 FPGA / GPU 显示卡)之间的互联通信。一直以来, CPU 都是透过主机板上的 PCIe 插槽及 PCIe 协议( Protocol )与显示卡沟通,但当 Intel 联合阿里巴巴、 Cisco 、 Dell EMC 、 Facebook 、 Google 、 HPE 、华为及微软组成强大阵容的联盟后,就发表了 CXL 的开放标準,以解决目前 PCIe 协议于 CPU 与显示卡之间的高延迟( Latency )及频宽不足的问题。

CXL 支援 CPU 与 GPU 共享记忆体 Intel X

目前 CPU 与 GPU 之间是透过 PCIe 互联。Source:NVIDIA

CXL 支援 CPU 与 GPU 共享记忆体 Intel X

Intel 与多个厂商组成联盟,使 CXL 技术具备极高兼容性。Source:Anandtech

兼容性高

为兼容各品牌的各种产品, CXL 1.0 的物理层面是基于 PCIe 5.0 ,所以未来的 Server CPU 仍是置于主机板 CPU Socket,显示卡 / 绘图卡也是插在 PCIe 插槽上,不过 CPU 与 GPU 并非以 PCIe 协议进行沟通,而是採用新的 CXL 协议,因此 PCIe 5.0 可理解为纯粹提供实体插槽。传闻 Intel 会于 2020 年推出 Xe 系列独立显示卡, PCIe 5.0 可能会在差不多时间应用于伺服器,或者再晚一、两年, Intel 预计 CXL 技术会于 PCIe 6.0 年代被广泛应用。

CXL 支援 CPU 与 GPU 共享记忆体 Intel X

CXL 1.0 的物理层是基于 PCIe 5.0,所以显示卡也是插在 PCIe 槽。Source:Anandtech

CXL 支援 CPU 与 GPU 共享记忆体 Intel X

当显示卡插进 PCIe 槽后,会自动协商用 PCIe 或 CXL Protocol 进行传输。Source:Wccftech

提升 CPU 与 GPU 的互联效率

CXL 强调低延迟,允许 CPU 与 GPU 之间绕过 PCIe 协议,用 CXL 协议来共用、互取对方的记忆体资源,形成一个「连贯」的记忆体池。当中可细分为 3 个协议:

CXL.io :类似目前的 PCIe 输入输出 I/O,取代 PCIe 协议
CXL.cache :容许加速器 /  GPU 要求存取 CPU 的快取( Cache )
CXL.memory :反方向,容许 CPU 要求存取加速器 /  GPU 的记忆体,例如是 HBM2 等

透过 CXL 协议, CPU 与 GPU 之间就形同连成单一个庞大的堆叠记忆体池( Stacked Memory ), CPU Cache 和 GPU HBM2 记忆体犹如放在一起,有效降低两者之间的延迟,故此能大幅提升数据运算效率,令 AI 人工智能、机器学习、媒体服务、高效能运算( HPC )及云端服务变得非常快速。

CXL 支援 CPU 与 GPU 共享记忆体 Intel X

CXL 使 CPU Cache 和 GPU 记忆体能够共用。Source:Wccftech

CXL 支援 CPU 与 GPU 共享记忆体 Intel X

CXL 的应用,本文集中讲述中间一格。Source:Wccftech

CXL 或应用于 Intel Xe 家用显示卡

那为甚幺外媒 Wccftech 的编辑会认为 CXL 可推动 Intel Xe 架构多路显示卡的发展,甚至有机会比 NVIDIA SLI 或 AMD CrossFire 先进呢?虽然目前 CXL 都只是指 Server CPU 及 GPU 之间的互联, Intel 亦从没说过 Xe 显示卡会否与 CXL 有关,甚至也没怎透露过更多眉目,但既然 CXL 可令 CPU 和 GPU 共用记忆体,也应该可在 GPU 与 GPU 之间上实现。

CXL 支援 CPU 与 GPU 共享记忆体 Intel X

目前 Intel 没透露太多资料,只是邀请了很多设计师构想 Xe 显示卡的外观。本文的 Xe 卡图片都是来自 Intel Odyssey「设计智囊团」,非落实的设计。

过去 SLI 的限制

Pascal 年代的 GeForce GTX 10 系列或更早前的游戏显示卡,所用的 NVIDIA SLI 多路显示卡技术,并不太有效把多张显示卡的记忆体「加起来」, API 或应用程式可能将之视为单一 GPU ,令工作分配未必平均,各张显示卡需要不断「同步」大家的资料,但 SLI 互联技术的延迟又高、频宽不够,导致较少游戏及应用程式能有效发辉 Multi-GPU 的功用。

CXL 支援 CPU 与 GPU 共享记忆体 Intel X

以前 NVIDIA GeForce 显示卡用 SLI 桥接器(左),到 RTX 2080 及 RTX 2080 Ti 就转用 NVLINK(右)。

CXL 支援 CPU 与 GPU 共享记忆体 Intel X

SLI 和 NVLink 是种 GPU 与 GPU 之间的互联技术

NVLink 早已做到 CXL 功能

不过上述 CXL 的功能,其实某程度上,NVIDIA 早于 2014 年的 NVLink 已经实现到。 NVLink 初期是应用于 Pascal 架构的 Tesla 显示卡,之后在 Turing 架构的 GeForce RTX 2080 及 RTX 2080 Ti 打进家用市场。 NVLink 是种取代 SLI 的 Multi-GPU 互联技术,能把各 GPU 的记忆体加起来(Stacked Memory),因而大幅提升频宽及运算效率。但除了做 GPU <-> GPU 之间的互联外,其实 NVLink 亦能于 GPU <-> CPU 之间、或 Multi-GPU <-> CPU 之间做到 Stacked Memory,使 CPU 与 GPU 的记忆体能够共享,即是上述 CXL 的功能。只不过支援 NVLink 的 CPU 实在少之又少,最着名的是 IBM 的 POWER8 处理器。即使是 NVIDIA 的 DGX-2 超级电脑,都未能发挥到 NVLINK CPU <-> GPU 互联优势,因为内里搭载的是 Intel Xeon CPU,并不支援 NVLink 。

CXL 支援 CPU 与 GPU 共享记忆体 Intel X

NVLink 可应用于 GPU 与 CPU 之间的互联。Source:NVIDIA

CXL 支援 CPU 与 GPU 共享记忆体 Intel X

NVIDIA 自家的 DGX 超级电脑搭载 Intel Xeon CPU ,所以 Tesla P100 与 CPU 之间并无 NVLink 连接。Source:WikiChip

CXL 比 NVLink 优胜之处

无可置疑,Intel 是市佔率最高的 CPU 品牌,若要在 CPU <-> GPU 互联技术比武, CXL 绝对比 NVIDIA NVLink 有更大优势,兼容的产品亦多很多。不过 CXL 能否在家用市场大放异彩,就很难说準,始终目前都很少游戏开发者会为 SLI / NVLink 一小撮人加入 Multi-GPU 技术,更遑论购买多张 Intel Xe 显示卡的客户群, CXL 的 CPU <-> GPU 互联能否为游戏带来突破性影响,亦是未知之数。一切还是待 Intel 发表 Xe 显示卡才下定论吧。

Source:Wccftech、NVIDIA NVLink Blog、Anandtech、IBM


上一篇:
下一篇: