FMS 2024:多家厂商CXL技术方案总览
近期,国数集联在一次论坛上分享了其对AI网络的看法以及CXL技术应用的进展。在此讨论中,我们介绍了RDMA协议和TCP/IP协议在CXL互联上的进展,以及它们在面向人工智能领域的高性能GPU集群和高性能存储集群中的应用,以下为国数集联CTO李甫的演讲实录。
计算架构的变革:大规模计算时代来临!

首先让我们来探讨当前计算领域的变革趋势。在过去的8年中,计算能力提升了1000倍。这个巨大的进步令人赞叹,远超通用计算领域的摩尔定律预测。而这一巨幅提升的主要推动者英伟达取得了技术和商业上的双重成功。然而,在我们追溯这一令人震撼的进步背后,是计算架构的变革。比如在2018年,我们谈论计算能力时,看到的是一块GPU显卡;现在最顶级GPU的标准已经演变成基于NVLink全连接的36卡或72卡GPU机柜。
正如黄教主所概括的,我们需要更大、更强大的GPU!并行计算架构也已从芯片内的并行(多个CUDA核心)转变为基于NVLink新型连接的超级多核心计算模块。这种计算的革新我们称之为“Bigger Computing Era”或者大规模计算时代。驱动这一时代变革的核心正是超级快速、超级出色的新型互联系统。
大规模计算需要更快速的连接和更有效的网络协议。让我们重新审视一下TCP/IP协议,这是一个上世纪70年代的通讯协议,当时旨在解决广域网通信中的可靠性和扩展性等问题。今天,在人工智能领域,我们面对的却是短距离互联问题。在短距离的数据中心中,一般很少去改动服务器的位置,或者由于数据中心提供稳定的环境,物理联接也相对稳定。同时需求变成了要高速互联1万个甚至 10万个GPU。虽然10万个GPU听上去非常多,但对于广域网领域需要连接数亿级用户的企业来说,其实是一个非常小的量。
甚至现在很多AI公司面临的实际问题是:如何高效、快速地互联千卡级别的GPU集群?按照英伟达目前8卡作为一个单位计算的方式,构建千卡级别的GPU集群其实只需要100多台服务器互联即可。如果再考虑到现在72个GPU为单位的“大计算”模式,其实我们只需要连接15个机柜而已。我们说“而已”不是说这种连接简单,而是说网络的需求已经从十亿级别互联变成了千百级别的高速互联。
英伟达很早就发现了这个变革,在收购RDMA和IB技术之后,打造自己独有的基于PCIe的NVLink技术,利用NVLink + IB构建大规模计算体系。其中NVLink负责Scale-up,IB负责Scale-out,而没有我们熟知的TCP/IP协议。面对这种技术演进,虽然业内很早就提出了RoCE解决方案,系统构建一个更加开放的体系和英伟达的RDMA/IB技术竞争。但在NVLink这种Scale-up互联领域却落后了好几个身位。
虽然,最近提出的UALink概念直指英伟达的NVLink核心领域,但协议定型的漫长过程使得UALink的未来充满了不确定性,但CXL给我们当下和近期未来提供了一套行之有效的解决思路。
AI大模型需要的网络
在我们探讨如何利用CXL技术之前,让我们先回顾一下,为什么LLM大模型需要Scale-up网络?简单地说,大模型是一个“大力出奇迹”的计算理论,通过大量数据和大量模型参数的计算来预测人类思维。虽然大量的数据可以通过线性和分区的方式逐个处理,但模型参数这种二维矩阵的计算方式却需要“分散-聚合-再分散”的计算框架。
在大模型领域存在一个Scaling Law,即大力出奇迹。同时在分布式计算架构中,也存在一个Scaling law,即串型计算比例直接决定了分布式系统加速性能,而数据传输和同步就是典型的串型计算,所以GPU和GPU之间交换参数是制约当前大规模GPU计算的核心要素。我们必须同时解决GPU和GPU传输之间启动时间(latency)和传输量(throughput)的问题。
接下来我们将探讨如何解决这两个问题。
首先让我们来看看互联的硬件架构。目前的互联主要是基于串型Serdes技术发展而来,我们暂不讨论哪种Serdes技术更加好,而是把重点放在基于Serdes技术的以太网传输协议和总线PCIe及其衍生或者类似技术上。
在详细分析以太网和PCIe技术路线做为互联技术之前,我们先给出结论:不管是NVLink、CXL和刚提出的UALink都是基于PCIe技术发展而来的。这意味着,讨论以太网是不是适合Scaleup网络这个问题本身没有争议。今天我们更加关注以下两个问题:
1.为什么大家选择PCIe,而不是以太网?
如果详细对比PCIe及其衍生技术和以太网的区别,主要就是在硬件控制器设计上。PCIe或者总线技术是一种强一致性技术,要求数据“使命必达”,由一个主控芯片CPU或者MCU上的MMU单元即可达到数据的高速传输,这就要求PCIe控制器本身具备基础的数据传输协议控制能力,或者基础的流量控制逻辑。而以太网则是一个非常弱的互联设计,因为以太网硬件是不涉及数据传输可靠性的,以太网设计理念是将数据传输的可靠性交由上层的协议控制,即面向连接的TCP协议或者无连接的UDP协议。
由于这种设计的区别,导致以太网物理逻辑相对简单,占用面积较少,而PCIe则面积较大,需要更多的“海岸线”。但问题是,在以太网中如果将控制协议单元的逻辑考虑进去,其实以太网的设计逻辑和PCIe差别不大。同时由于硬件设计的区别,PCIe系统的IO操作在系统层面明显比以太网需要的资源少很多,也就是thin layer。而加速计算核心CUDA等都是众多弱小的计算单元,也无力承担大流量的协议处理能力。所以基于PCIe技术的NVLink、CXL成为主要选择路径。
2. 为什么大家不直接使用PCIe技术?
于是大家就提出了另外一个问题,为什么不直接使用PCIe技术?这个问题其实在英伟达第一次提出NVLink技术的时候就回答了,那就是PCIe发展太慢了。
虽然PCIe技术具备非常优良的兼容性,非常突出的性能和编程性,但问题也出于此。由于兼容性的要求,PCIe协议的历史包袱非常重。同时,因为PCIe作为一种CPU和设备Device之间的传输协议,需要照顾各种设备的多样性,也就是不同设备对IO操作的多样性需求,包括同步、异步、颗粒度等。根据木桶原理,这种支持异构计算体系的要求导致PCIe的原始设计偏向非常严格,非常高标准。
但在AI大模型行业,我们要实现的是GPU和GPU之前的高速通讯,计算体系比较单一。同时,GPU和GPU通讯的主要目的是将大规模的参数快速传输的块状传输需求。而且这种传输一般和计算算法强绑定,或者说计算算法会根据传输特色优化,以实现更加高效地传输。接着我们也就诞生了第三个问题。
3.如何设计基于PCIe的私有协议或者通用协议?
基于对NVLink和PCIe的上述分析,我们可以看到未来基于PCIe协议的组网架构会保留PCIe的总线设计原则,但会根据计算场景对控制器进行简化或者加强,从而达到更高、更快、更强的标准。我们有一个基于CXL的设计方案,当然也欢迎大家和我们讨论和合作。
讲完互联的硬件架构和发展趋势,接下来我们将分析软件协议。与硬件控制器一经设计就基本无法修改不同,软件协议发展非常快速而且变换多端。讨论软件协议就必须和应用软件结合。我们简单的将应用软件分成四大类:HPC、LLM、冷热必备储存、和云原生。
其中HPC作为计算领域的奥斯卡,一般都开发自己独有的通讯协议。最近几年由于GPU计算能力突出,也因为大家预算有限,基本上RDMA和IB解决方案占据大头,但看性能还是私有协议,看成本还是RoCE。
而今天的重点,即行业热点LLM则是介于HPC和通用计算领域的一个特例。虽然LLM同样有HPC行业对性能的要求,但却没有通用计算领域多变的应用场景。所以结合LLM算法发展的RDMA协议成为目前比较稳定和靠谱的解决方案,特别是加入NVLink之后,极大降低了RDMA网络Scaling的需求。IB+NVLink可以提供更大的组网规模,解决了RDMA一直令人诟病的Scaleout问题,对应的硬件就是以太网网卡和RDMA网卡(或者IB网卡)。当然,RoCE作为一种overlay技术,如果实现硬件加速的话,硬件加速的RoCE卡和IB网卡本身成本差别也不会太大。这也是为什么RoCE发展了这么多年也没有在高性能领域取代IB的原因
国数集联创新架构:RDMA over CXL

那有没有其他方案?我们认为RDMA over CXL是一个可行的解决方案。由于GPU是一个比较封闭的系统,而且目前尚未有非NVLink的NVSwitch解决方案,我们以HPC和储存作为应用场景来对比原生RDMA(即IB)、RoCE和国数集联的RDMA over CXL。
不同于IB和RoCE,我们无需网卡适配器,只需要利用CXL或者PCIe自带的DMA和IO引擎即可以实现数据的高效迁移。对比原生RDMA,我们将IB卡的功能“搬移”或者“融合”到了CXL交换芯片中,从而达到低延迟、高吞吐量的解决方案。
在软件驱动层,和最开始的IB协议一样,我们构建统一内存通讯模型,我们称之为NUPA架构(Networking Unified Protocol Architecture)。NUPA的设计理念和1990s的IB非常相似,只不过国数集联是基于PCIe技术,而不是上一个世纪的PCI技术。如果支持CXL.cache协议,我们甚至可以通过提供超低时延的cache队列,同时实现低延迟和高吞吐量。当然借助PCIe的DMA实现CPU bypass是这种技术的一个基本特色。
为了方便客户编程,和适配用户编程环境,我们在NUPA Core上构建NUPA ibdevice 设备。通过我们对ibdevice底层的修改和优化,客户无需关心底层link的变化。我们也提供netdev,已实现云原生应用的兼容。

目前,国数集联推出了基于我们自主CXL Switch IP的硬件参考系统。通过ASM接口,我们将提供24个256Gbps的原生PCIe Gen5.0速率。如果使用我们优化后的的协议,性能可以达到448Gbps。通过叠加交换机的方式,一个机柜中无需任何IB网卡,即可实现RDMA之间的通讯,为分布式储存、GPU集群提供网络解决方案。

基于国数集联的软件协议和最新的QEMU环境,可以构建一台基于我们RDMA协议的BeeGFS系统。我们采用最简单的模式构建BeeGFS集群。通过对比TCP协议和RDMA协议,我们发现RDMA协议的确可以提高系统性能。由于该系统是软件模拟环境,我们只给出了相对数字,对基于CXL统一内存通讯的解决方案提供参考。
同时我们再次强调,基于CXL和PCIe技术的组网方式最大的核心优势就是“没有网卡”,“no more adapter”!这个不管是对性能提升,还是对成本降低都具备极大的优势。而我们的模拟环境和协议开发填补了这种优势架构和客户实际应用环境间的空白,即RDMA协议!