Loading [MathJax]/jax/output/SVG/jax.js
  • 中国精品科技期刊
  • CCF推荐A类中文期刊
  • 计算领域高质量科技期刊T1类
高级检索

大模型时代的混合专家系统优化综述

史宏志, 赵健, 赵雅倩, 李茹杨, 魏辉, 胡克坤, 温东超, 金良

史宏志, 赵健, 赵雅倩, 李茹杨, 魏辉, 胡克坤, 温东超, 金良. 大模型时代的混合专家系统优化综述[J]. 计算机研究与发展. DOI: 10.7544/issn1000-1239.202440016
引用本文: 史宏志, 赵健, 赵雅倩, 李茹杨, 魏辉, 胡克坤, 温东超, 金良. 大模型时代的混合专家系统优化综述[J]. 计算机研究与发展. DOI: 10.7544/issn1000-1239.202440016
Shi Hongzhi, Zhao Jian, Zhao Yaqian, Li Ruyang, Wei Hui, Hu Kekun, Wen Dongchao, Jin Liang. Survey on System Optimization for Mixture of Experts in the Era of Large Models[J]. Journal of Computer Research and Development. DOI: 10.7544/issn1000-1239.202440016
Citation: Shi Hongzhi, Zhao Jian, Zhao Yaqian, Li Ruyang, Wei Hui, Hu Kekun, Wen Dongchao, Jin Liang. Survey on System Optimization for Mixture of Experts in the Era of Large Models[J]. Journal of Computer Research and Development. DOI: 10.7544/issn1000-1239.202440016

大模型时代的混合专家系统优化综述

基金项目: 山东省自然科学基金项目(ZR2020QF035).
详细信息
    作者简介:

    史宏志: 1988年生. 硕士,CCF会员. 主要研究方向为计算机体系结构和深度学习

    赵健: 1987年生. 硕士. 主要研究方向为计算机体系结构和深度学习

    赵雅倩: 1981年生. 博士,高级工程师,CCF高级会员. 主要研究方向为计算机体系结构和人工智能

    李茹杨: 1990年生. 博士,高级工程师,CCF高级会员. 主要研究方向为深度强化学习、自动驾驶和面向场景的AI加速

    魏辉: 1987年生. 博士,高级工程师,CCF会员. 主要研究方向为虚拟现实和3维视觉

    胡克坤: 1987年生. 博士,高级工程师,CCF会员. 主要研究方向为图计算和图深度学习

    温东超: 1979年生. 硕士,正高级工程师,IEEE会员,CCF会员. 主要研究方向为计算机视觉和可信深度学习

    金良: 1986年生. 硕士. 主要研究方向为计算机视觉和多模态

    通讯作者:

    赵健(zhao_jian@ieisystem.com

  • 中图分类号: TP391

Survey on System Optimization for Mixture of Experts in the Era of Large Models

Funds: This work was supported by Shandong Provincial Natural Science Foundation(ZR2020QF035).
More Information
    Author Bio:

    Shi Hongzhi: born in 1988. Master. Member of CCF. His main research interests include computer architecture and deep learning

    Zhao Jian: born in 1987. Master. His main research interests include computer architecture, and deep learning

    Zhao Yaqian: born in 1981. PhD, senior engineer. Senior member of CCF. Her main research interests include computer architecture and Artificial intelligence

    Li Ruyang: born in 1990. PhD, senior engineer. Senior member of CCF. Her main research interests include deep reinforcement learning, autonomous driving and scenario-oriented AI acceleration

    Wei Hui: born in 1987. PhD, senior engineer. Member of CCF. His main research interests include virtual reality and 3D vision

    Hu Kekun: born in 1987. PhD, senior engineer. Member of CCF. His main research interests include graph processing and graph deep learning

    Wen Dongchao: born in 1979. Master, professor. Member of IEEE and CCF. His main research interests include computer vision and trustworthy deep learning

    Jin Liang: born in 1986. Master. His main research interests include computer vision and multimodalities

  • 摘要:

    近年来,大模型推动自然语言处理、机器视觉等众多领域取得前所未有进展. 混合专家(mixture of experts,MoE)凭借在模型参数扩展、计算成本控制和复杂任务处理等方面的独特优势成为大模型的主流架构之一. 然而,随着参数规模的持续增长,系统的执行效率和可扩展能力愈发难以满足需求,亟待解决. 系统优化方法是解决这一挑战的有效途径,日益成为研究热点. 故综述大模型时代MoE系统优化技术的研究现状,首先介绍MoE大模型的发展现状,并分析其在系统端面临的性能瓶颈;然后从内存占用、通信延迟、计算效率和并行扩展4个系统核心维度对最新的研究进展进行全面梳理和深入分析,并对其中涉及的关键技术、适用场景和待优化方向进行详细对比阐述;最后总结MoE系统优化的研究现状,并展望未来研究方向.

    Abstract:

    In recent years, large models have made unprecedented progresses in variety of domains, such as natural language processing and machine vision. Mixture of Experts (MoE) has emerged as one of the most popular architectures for large models due to its distinct advantages in model parameter scalability, computational cost control and complex task processing. However, with the continuous increase of the parameter scale, the execution efficiency and scalability of the system are becoming increasingly challenging to meet the demand, and must be addressed urgently. The system optimization approach is an effective solution to solve this problem, which has become a hot research area. In light of this, we review the present research status of MoE system optimization techniques in the era of large model in this paper. To begin, we describe the present development state of work for MoE large model, and analyze the performance bottlenecks it faced on the system side. Then, we comprehensively sort out and deeply analyze the most recent research progress from four system core dimensions, ranging from memory occupation, communication latency, computational efficiency to parallel scaling, and compare and elaborate on the key technologies, application scenarios and optimization directions; Finally, we summarize the current research state of MoE system optimization and outline some future research directions as well.

  • 过去10年,数据中心(Microsoft,Alibaba Cloud,Amazon等)经历大规模的增长,其内部的机器数量已经超过了当今最大的超级计算机[1],现有数据中心内部服务器通常基于以太网互连. 当前以太网的传输速率已经突破400Gbps,甚至向着800Gbps,1.6Tbps发展[2],而CPU的处理能力未和网络速度一样快速提升. 使用传统软件网络协议栈进行报文处理一方面会极大增加CPU用于网络处理和频繁数据搬移的开销,另一方面无法满足数据中心数据密集型以及内存密集型应用程序(分布式存储、大数据处理、机器学习等)对高带宽和低尾部延迟的严格性能需求[3]. 远程直接内存访问(remote direct memory access,RDMA)技术最初[1]应用于高性能计算领域,可以在不需要CPU参与的情况下直接读写远端内存,从而实现高带宽低延迟的数据传输,这契合当前数据中心网络传输需求.

    目前RDMA主要有3种主流实现方式,分别是IB(InfiniBand),RoCE(RDMA over converged Ethernet),iWARP. IB虽然可以提供最佳性能,但自定义了从链路层到传输层的整套规范,需要专用网卡和交换机支持,不兼容以太网且价格昂贵. RoCE则对IB进行了兼容以太网的扩展,其中第1个版本RoCEv1将IB的链路层替换为以太网协议;RoCEv2(routable RoCE)在RoCEv1的基础上进一步将网络层替换为UDP/IP协议,允许使用标准以太网交换机进行跨网路由,RoCEv2的部署只需端系统专用网卡支持. iWARP同样兼容以太网,但需将整个TCP/IP(transmission control protocol/Internet protocol)协议栈卸载到硬件,存在成本、实现复杂度、性能方面限制. RoCEv2由于兼容以太网、相对较低的复杂度[4]以及极具竞争力的价格[5],已经是数据中心网络中部署最广泛的RDMA技术[6-7]. RoCEv2可支持数据中心内和数据中心间的路由,并发挥RDMA的传输优势,实现数十至数百Gbps的传输速率[8],从而为众多数据中心应用程序提供高性能保证,因此本文聚焦RoCEv2,展开对以太网RDMA网卡的综述.

    随着以太网RDMA技术在网络存储、云计算等数据中心场景中受到广泛关注和部署,以太网RDMA网卡作为其技术实现的关键组件,发挥着愈发重要的作用. 一方面,网卡需要实现以太网RDMA技术中最复杂的部分[9],如协议卸载、可靠传输、拥塞控制等. 而交换机上需要具备的功能通常较为简单,如常见的基于优先级的流控(piority-based flow control,PFC)[10]和显式拥塞控制(explicit congestion notification,ECN)[11]等. 另一方面,卸载到硬件处理意味着网卡需要存储读写远端内存所需的状态信息,然而网卡片上缓存和处理逻辑资源有限[12-14],这更需对网卡的微体系结构具备一定的了解以进行设计和优化.

    在工业界,Intel[15],NVIDIA Mellanox[16],Marvell[17],Huawei Hisilicon[18],Chelsio[19],Broadcom[20]等众多供应商已经推出了一系列商用以太网RDMA网卡. 谷歌[21-25]、微软[1,5,9,26-36]、阿里巴巴[3,37-39]、字节跳动[12,14,40]等互联网厂商针对以太网RDMA技术在云存储等数据中心场景的部署、管理和评估开展研究. 在学术界,国内外也有众多研究团队(清华大学[41-47]、南京大学[13,38,48-51]、中国科学技术大学[4,35,52-53]、中国科学院计算技术研究所[54-58]、湖南大学[34,59]、香港科技大学[14,60]、苏黎世联邦理工学院[1,8,61-64]、普渡大学[22,65-68]、威斯康星大学麦迪逊分校[6,21,69]、卡耐基梅隆大学[70-74]等)针对其架构、优化技术进行一系列研究. 然而,目前缺乏针对以太网RDMA网卡这一关键功能承载设备的综述,为其架构、优化和实现评估提供参考. 因此,本文对以太网RDMA网卡进行系统综述,主要贡献如下:

    1)梳理以太网RDMA网卡承担功能,根据目前工业界产品和学术界研究总结网卡的通用架构,并对其报文处理、DMA、可靠传输等关键功能部件进行分析介绍.

    2)从存储资源、网络传输和应用相关3方面对以太网RDMA网卡的优化工作进行分类阐述,主要包括:面向网卡缓存资源的连接可扩展性和面向主机内存资源的注册访问优化;面向有损以太网实现可靠传输的拥塞控制、流量控制和重传机制优化;面向分布式存储中不同存储类型、数据库系统、云存储系统及数据中心应用的多租户性能隔离、安全性、可编程性等优化工作.

    3)梳理工业界和学术界以太网RDMA网卡基于ASIC,FPGA,SoC和软件等实现方式,并总结目前以太网RDMA网卡的评估方式.

    RDMA建立连接:RDMA允许本端用户态应用程序快速读写远端内存,避免了用户态和内核态切换、软件网络协议栈处理的开销. 在正式通信之前,RDMA本端应用程序需要首先申请注册内存区域(memory region,MR)用于存放收发数据,并与通信远端进行建链协商,提前获取远端主机信息和内存访问权限等,该过程需要双端CPU参与. iWARP和RoCEv1基于CM(communication manager)接口建链,RoCEv2则同时支持基于CM接口和Socket接口2种建链方式.

    RDMA通信原语:RDMA通过verbs编程接口[75]为上层应用提供2类通信原语,分别为双边和单边通信原语. 其中双边通信原语SEND/RECV配合使用,需要远端CPU在本端SEND发送消息前,提前下发RECV指定接收地址;单边通信原语READ/WRITE/ATOMIC则不涉及远端CPU参与直接读/写/原子性读-修改-写远端内存. 此外,SEND和WRITE还可以携带额外的4B立即数据(使用SEND/WRITE with imm),该数据不直接写入内存,而是作为状态信息返回给上层应用(需要远端CPU参与). 相比双边原语,单边原语可实现更低延迟和更高带宽[7],因此双边原语常用于控制、状态信息传递及需要显式通信的场景,单边原语READ/WRITE常用于大数据块远程搬移. ATOMIC操作则可用于并发控制和同步,以及帮助实现分布式锁[76]等分布式事务处理所需机制.

    在建链协商完成后,应用程序通过RDMA通信原语以工作请求(work request,WR)的形式下发(post)远端访问请求. 以RDMA WRITE为例,其请求报文格式如图1所示,对应的通信流程如图2所示. 对于应用程序下发的WR,由用户态驱动将其转化为工作队列元素(work queue element,WQE)并放入队列对(queue pair,QP)中(图2①). QP是RDMA双端通信的基本单位[57],由发送队列(send queue,SQ)和接收队列(receive queue,RQ)组成,由SQ接收应用程序下发的SEND,READ,WRITE等请求,由RQ接收应用程序下发的RECV(对应SEND请求). 对于RDMA WRITE操作,由网卡在获取RDMA传输请求(图2②)后取出本端内存数据(图2③)并执行远端内存写入(图2④).

    图  1  RoCEv2 WRITE请求报文格式
    Figure  1.  RoCEv2 WRITE request message format
    图  2  RDMA通信流程(以RDMA WRITE为例)
    Figure  2.  RDMA communication flow(RDMA WRITE as an example)

    RDMA传输方式:QP可以被配置为可靠连接(reliable connection,RC)、不可靠连接(unreliable connection,UC)、不可靠数据报(unreliable datagram,UD)[43]等传输方式. 其中RC和UC传输方式需要在通信双方之间建立1对1的QP连接,且RC传输方式还需要网卡负责报文的可靠传输,UD传输方式不保证可靠性但可支持1对1或1对多UD QP之间的通信[77]. 不同传输方式下支持的通信原语和消息大小等区别可见表1.

    表  1  RDMA常用传输方式对比
    Table  1.  RDMA Common Transmission Modes Comparison
    传输方式通信原语可靠性可扩展性消息大小/KB
    RC*一般2048
    UC×××一般2048
    UD××××4
    注:通信原语:①SEND(SEND with imm)/RECV;②READ;③WRITE (WRITE with imm);④ATOMIC. *:对ATOMIC操作,消息大小仅支持8B.
    下载: 导出CSV 
    | 显示表格

    在数据传输完成后,网卡生成完成队列元素(completion queue element,CQE)并放入与QP关联的完成队列(completion queue,CQ)中(图2⑤)[57],最终应用程序由网卡上送(poll)的工作完成(work completion,WC)获知RDMA传输完成(图2⑥).

    标准以太网卡只具备物理层串并转换、数据链路层以太网帧头封装和解析、DMA等功能[78],无法支持RDMA的通信原语和传输方式等,因此需要专用的以太网RDMA网卡在兼容标准以太网卡功能的基础上增加对RDMA功能的支持.

    对于RDMA通信原语,如应用程序下发的WRITE请求,网卡需要DMA从用户空间中取出要写入远端的数据并在硬件中完成报文封装[36],以实现零拷贝、内核旁路和CPU卸载的通信特性. 由于用户态应用程序使用虚拟地址,网卡使用物理地址,因此需要网卡进行虚实地址转换(根据由内核态提前配置好的内存转换表(memory translation table,MTT)等信息)以实现直接访问主机内存[21]. 此外,对于RC传输方式,需要由网卡通过确认应答和重传等机制保证传输的可靠性[41].

    综合兼容以太网的特性和RDMA的功能需求,本文将以太网RDMA网卡的基础功能定义如下:

    1)兼容标准以太网卡具备的功能;

    2)支持RDMA报文封装与解析;

    3)支持RDMA传输方式和通信原语;

    4)支持虚实地址转换、DMA;

    5)对于RC传输方式,支持可靠传输.

    很多工作在基础功能上进行优化,如商用RoCEv2网卡[16]普遍支持PFC[10],ECN[11][26]功能构建无损网络环境以保证高带宽低延迟可靠传输,但学术界提出的适应有损网络的RoCEv2网卡则通过选择重传等功能[7]消除对PFC的依赖. 此外还有多租户性能隔离[55]、安全性[62]等功能的增强,详见第2,3节.

    本节根据目前工业界产品和学术界研究,在明确以太网RDMA网卡功能的基础上,总结其通用架构,并介绍其报文处理逻辑、DMA、可靠传输等功能部件.

    目前商用网卡内部通常是黑盒状态[14],开源RDMA网卡实现较少[36,58],在工业界,Xilinx于2018年推出的嵌入式RoCEv2网卡ETRNIC(embedded target RDMA enabled NIC)[79]及后续的ERNIC(embedded RDMA enabled NIC)[80]相关资料中描述了其内部部件及功能;在学术界,文献[12,14,36,39,55,57-59,81-82]等对RoCEv2网卡内部架构进行了介绍. 网卡供应商可以决定微体系结构级别的实现细节,不同的网卡架构会由于面向的场景、支持的功能、针对性的优化等而有差异,但由于IBTA(InfiniBand Trade Association)标准已经对RDMA分层架构、处理流程等进行了详细的定义[83],因此RDMA网卡的基本架构是相似的[82].

    根据1.2节定义的网卡基础功能和以上代表性网卡架构,以太网RDMA网卡通常包含以下部件:

    1)用于连接主机端CPU和内存的PCIe部件;

    2)用于连接网络端的MAC部件、PHY部件;

    3)用于处理本端或远端不同通信原语对应的RDMA请求和响应,进行报文封装和解析的报文处理逻辑部件;

    4)用于直接访问主机内存的虚实地址转换、DMA部件;

    5)用于支持RC传输的可靠传输部件;

    6)用于存储数据和元数据[82]信息的网卡SRAM(static random access memory)缓存;

    7)不同网卡架构中还可能有其他可选部件,以在存储资源、可靠传输、应用相关方面进行优化.

    据此,以太网RDMA网卡架构如图3所示. 网卡通常具有多个处理单元(processing unit,PU)用以并行处理QP[13,49],每个处理单元包含报文处理逻辑、可靠传输、其他可选部件等. 以下依据代表性网卡架构对网卡各关键部件进行阐述.

    图  3  以太网RDMA网卡模块架构图(以发送接收为例)
    Figure  3.  Ethernet RDMA NIC module architecture (transmit-receive as an example)

    PCIe部件[12,14,36,39,57-58]、MAC部件、PHY部件[39,58]:兼容标准以太网卡具备的连接主机端和网络端、进行以太网帧头封装和解析功能.

    报文处理逻辑:该部件对应1.2节以太网RDMA网卡基础功能中对报文封装解析、不同传输方式和通信原语的支持. RDMA网卡需处理4类报文,分别为本端请求、本端响应、远端请求、远端响应,对此存在依据发送接收或请求响应2种处理逻辑划分方式.

    在基于发送接收的报文处理逻辑中,需要发送的报文都经过发送报文处理逻辑进入网络,包括本端请求、对远端请求的响应及重传报文等;同理,接收到的报文处理都在接收报文处理逻辑完成,包括对本端请求的响应、远端请求等. 该方式在收发路径上进行了较为清晰的处理逻辑分离,2条路径各自流水处理并通过专用功能部件[80]、共享数据结构信息[36]等方式进行交互以在收到远端请求后转入发送路径回送响应报文和实现可靠传输. 大多网卡架构依据发送接收报文处理逻辑进行整体架构布局[12,36,39,55,59,79-82].

    在基于请求响应的报文处理逻辑中,则以发送本端请求和接收相应的响应(请求模块)、接收远端请求和发送相应的响应(响应模块)进行报文处理逻辑的划分. 由于不以收发进行逻辑划分,因此需仲裁模块汇聚发送方向上的本端请求(来自请求模块)和远端响应(来自响应模块),同理需分配模块将接收方向上的远端请求、本端响应分别送入相应模块. 中科院计算所先后提出的csRNA[58],ScalaRNIC[57]采用该处理逻辑. 相比于基于发送接收的报文处理逻辑,该方式不需收发路径之间的交互模块,但由于请求响应模块都需要收发报文而可能存在功能冗余.

    无论划分方式如何,相同类型报文的处理流程是相似的. 如对于本端发送WRITE请求报文,网卡通常通过Doorbell机制(即驱动程序通知网卡WQE已放入SQ,通常通过更新SQ的写入指针值到网卡寄存器实现[14])获取RDMA传输请求[12,14,57-58,60,82],通过解析WQE获取有效载荷描述符信息并发起DMA操作获取有效载荷,之后依次进行RETH(RDMA extended transport header),BTH(base transport header),UDP,IP报文封装以及ICRC(invariant cyclic redundancy check)填充[81],并通过MAC部件和PHY部件发送至网络. 之后若网卡收到远端ACK,则构造CQE上送CQ告知应用程序传输完成[14,59],否则进行报文重传(见可靠传输部分). 对于接收的远端WRITE请求报文,则依次进行ICRC校验、各层报文头解析,并根据可靠传输应答机制回送ACK或NAK(见可靠传输部分). 若WRITE请求报文按序接收且校验无误,则根据解析报文头获取的DMA长度等信息发起DMA操作并上送有效载荷.

    虚实地址转换、DMA:该部件对应1.2节以太网RDMA网卡基础功能中对虚实地址转换的支持,并兼容标准以太网卡DMA功能. 在正式通信之前注册MR时会在内核态将虚实地址映射关系记录在MTT中. 当网卡进行内存访问时,由地址转换部件根据MTT等信息将应用程序下发的虚拟地址转换为物理地址后通过DMA部件[14,39,57-59,79-80,82]获取主存数据.

    在网卡上通常不会只有1个模块需要通过虚实地址转换和DMA部件与主机内存交互,如获取传输请求模块需从主存获取相应的SQ WQE,获取和上送有效载荷模块需存取主存数据(如发送和接收WRITE请求时)等. 对此,通过将所有DMA操作请求集中汇聚到DMA部件中,由DMA调度仲裁模块对DMA请求进行有效检查、调度仲裁和缓冲后由DMA引擎执行DMA操作[14,39,57-59,82].

    可靠传输:该部件对应1.2节以太网RDMA网卡基础功能中对RC传输方式下可靠传输的支持,即需要保证数据的完整性、按序接收2方面. 对此,以太网RDMA网卡提供硬件卸载的可靠传输机制,即图3中ICRC校验和填充模块(数据完整性保证)、应答和重传模块(数据按序接收保证). ICRC校验通常在发送报文时进行ICRC计算和封装;在接收报文时重新计算和比对ICRC值,以检测报文在传输过程中是否发生了错误或被篡改.

    应答模块[79-81]即对可靠传输,响应(接收请求)端应答模块会根据BTH报头(见图2)中的报文序列号(packet sequence number,PSN)与网卡缓存的ePSN(expected PSN)是否匹配判断报文是否按序接收[36],并对RETH报头中的虚拟地址、DMA长度、访问权限等进行校验,若报文按序接收且校验无误,则回送ACK,否则丢弃数据包并回送NAK(或静默丢弃). 响应端应对收到的每个请求包进行ACK或NAK确认. 对此,响应端通常会进行确认合并,为避免其无限期合并确认,请求端可以使用BTH报头中的AckReq位强制要求响应端回送确认(如对于每个请求WQE的唯一或最后1个数据包应设置该位). 相应的[39,80],请求端在收到NAK或超时未收到响应时触发重传,重传机制包括go-back-0,go-back-N[84]以及选择重传[7]. 重传机制可以单独划分模块[14,79-80]或嵌入在报文收发处理过程[36,39,58]中实现.

    ICRC校验和应答重传保证了最基本的可靠传输,在大规模部署时,商用网卡普遍实现拥塞控制和流量控制以尽可能避免丢包重传,但部分学术界网卡实现仅做RDMA功能验证,未提及拥塞控制[36,55,57-59,81]或流量控制[55,57-59,79,81],因此本文将拥塞控制和流量控制归为面向可靠传输的可选优化部件,详见3.2节.

    网卡SRAM缓存:网卡功能部件在执行时往往需要使用网卡SRAM缓存. 网卡缓存信息主要包括数据和元数据信息. 数据缓存用于在收发方向上平衡网络传输带宽和网卡处理速率之间的性能差距. 元数据信息为支持RDMA传输所需的数据结构信息,通常包括直接访问主机内存所需的MTT,MPT(memory protection table),QP相关的QPC(QP context),WQE等[57]. 其中,MTT用于虚实地址转换,MPT用于检查地址访问权限. QPC则为每个QP维护DMA状态和连接状态等连接上下文信息,DMA状态信息包括DMA地址、SQ和RQ读写指针等,连接状态信息包括ePSN,MSN(message sequence number)、重传定时器时间间隔、拥塞控制窗口或速率等. WQE包括从SQ预取的发送WQE和从RQ预取的接收WQE[14,36]. 各模块与元数据信息之间的交互关系如图3所示,以发送报文处理逻辑为例,获取请求模块根据预取的WQE(缓存命中时)进行请求解析,获取载荷模块根据请求解析信息和对应QPC通过虚实地址转换(根据MTT和MPT)和DMA部件访问主存获取数据,报文封装模块也需根据对应QPC中的PSN等信息进行报文封装.

    对于上述QPC,MTT,WQE等信息,是否使用网卡缓存[14]、在网卡中部分缓存[58]或全部存储[36]、具体使用的网卡缓存级别[57]等取决于设计目标. 通常情况下,以上信息会在主机内存中全部存储,同时在RDMA网卡中部分缓存. 但具体的设计选择需要根据网卡缓存容量和缓存命中率等进行权衡[82],如香港科技大学提出的SRNIC[14]通过SQ调度等方式消除网卡中的WQE缓存;SRNIC和ETRNIC[79]将QPC信息全部存储在网卡上以避免QPC缓存未命中带来的性能损失;中科院计算所提出的ScalaRNIC[57]则对网卡缓存进行了优先级划分并尽可能提高高优先级缓存信息的命中率,详见3.1节.

    可选部件:在实现RDMA网卡基础功能之上,现有的研究通常面向存储资源、可靠传输、应用相关等方面进行优化,通过改进上述基础功能部件或引入新的部件以提升网卡性能或扩展网卡功能. 如在存储资源方面,对于网卡缓存资源,csRNA[58]设计QPC连接调度器和管理模块实现非阻塞连接调度等. 对于主机内存资源,RIMA[67]设计尾指针查找和更新模块对共享接收内存区域进行注册管理优化等. 在可靠传输方面,对于拥塞控制,HPCC[39]在网卡上设计实现拥塞控制模块;对于流量控制,商用网卡通常支持PFC功能;对于重传机制,MELO[30]在网卡中设计实现选择重传等. 在应用相关方面,对于分布式存储系统,D-RDMA[85]对DMA部件进行优化改进以提升数据库系统中数据混洗等操作性能;对于数据中心应用,Optimize TX[55]设计性能隔离模块以减少多租户环境流间性能干扰等,详见第3节.

    表2对以上在描述网卡架构和功能部件时参考的代表性网卡架构进行了统计对比. 不同网卡架构普遍支持MAC、PHY、可靠传输、报文处理功能,但在各功能部件的具体实现可能存在差异,如对于接收报文模块处理逻辑,Xilinx ETRNIC[79]由于其仅支持发送READ/WRITE请求(不支持接收),在接收路径上主要完成响应报文的处理;对于发送报文处理逻辑中获取传输请求部分,弗劳恩霍夫研究所提出的Efficient[81]以低资源开销实现RoCEv2,对于READ请求,本端通过自定义预RDMA协议(基于RC SEND)将待读数据大小和注册内存区域信息发送至远端,由远端通过Doorbell机制下发WRITE请求实现本端READ请求功能. 此外,ETRNIC[79],ERNIC[80],Efficient[81]作为嵌入式RDMA解决方案,未通过PCIe连接标准主机CPU端,而是通过AXI总线连接MicroBlaze处理器和DDR等完成双端建链和数据存取等操作,因此不具备标准RDMA网卡中的PCIe、虚实地址转换和DMA部件.

    表  2  RoCEv2代表性网卡架构对比
    Table  2.  Comparison of Typical RoCEv2 NIC Architectures
    发表年份会议/期刊/厂商网卡功能部件通信原语QP
    数量
    报文处理逻辑PCIe、DMA、虚实地址转换可选部件
    拥塞控制流量控制
    2018XilinxETRNIC*[79]发送/
    接收
    ×××127
    2019SIGCOMMHPCC[39]××300
    2020EuroSysStRoM[36]16 000
    2021ICNPStaR[59]×120
    2021XilinxERNIC[80]×2 047
    2022TRETSEfficient[81]××1
    2022ICCDcsRNA[58]请求/
    响应
    ××15 000
    2023ISCASScalaRNIC**[57]320
    2023NSDISRNIC[14]发送/
    接收
    ×10 000
    2023GLSVLSIOptimize TX[55]×16
    注:以上网卡均支持MAC、PHY、可靠传输基础功能. 可选部件以拥塞控制和流量控制为例说明. 通信原语:①SEND/RECV;②READ;③WRITE;④SEND with imm|SEND with invalidate|WRITE with imm. —表示未说明. *:ETRNIC只支持发送READ和WRITE请求(不支持接收). **:ScalaRNIC高优先级QP数量支持320个,一般优先级可支持>25 600个.
    下载: 导出CSV 
    | 显示表格

    RDMA允许直接访问远端内存以提供低CPU开销、低延迟和高带宽的网络传输,可以满足当前数据中心应用及云存储等交互式系统的需求. 但在现有系统中部署以太网RDMA网卡仍然面临很多问题和挑战,需要综合考虑存储容量、部署规模、网络环境、现有应用程序的兼容性和可移植性等多方面因素. 目前已有较多的研究工作基于以太网RDMA网卡进行改进和优化,以充分发挥其性能优势. 本节将主要从存储资源、可靠传输、应用相关3个方面分类阐述现有的研究如何针对以太网RDMA网卡进行性能优化或功能增强. 图4统计了本文以太网RDMA网卡优化方向的相关论文.

    图  4  以太网RDMA网卡优化总体框架图
    Figure  4.  Ethernet RDMA NIC optimization overall frame diagram

    RDMA硬件卸载和内核旁路等特性要求在网卡中缓存QPC,MTT等元数据信息以维护QP连接状态和进行直接内存访问等,在主机内存中存储QP,QPC,MTT等并预先注册内存区域MR,以支持网卡接收应用程序下发的RDMA操作和进行直接内存访问等,因此存储空间的使用策略和注册访问机制是否高效将直接影响系统的整体性能[107]. 本节主要介绍面向网卡缓存资源的连接可扩展性优化和面向主机内存资源的注册访问优化相关的研究工作.

    对于构建在多台机器之上的大规模分布式应用程序,往往需要使用大量并发连接进行频繁的网络通信[59]. 然而由于网卡片上缓存容量非常有限(如Mellanox ConnectX-5的片上缓存容量为2MB)[14],只能支持有限数量的QP连接,或当连接数量增加至一定值时系统性能显著下降,即存在连接可扩展性问题. 商用网卡普遍面临该问题,如ETRNIC[79]将所有的连接元数据信息都存储在网卡中,因此最多只支持127条连接;NVIDIA Mellanox ConnectX系列则在网卡上缓存部分元数据信息,这使其可以支持更多的连接,但当活跃的QP连接数超过网卡缓存大小,会由于缓存未命中而需要在主机内存和网卡之间进行频繁的数据交换导致网卡性能急剧下降. 如对于ConnectX-6网卡,当网卡需要维护的QP数量从128增长到16 384时,吞吐量下降了46%,甚至在QP连接数量超过256时吞吐量就开始下降[58].

    针对网卡有限缓存资源带来的连接可扩展性问题,目前的研究工作主要从减少网卡缓存信息、增加网卡缓存命中率以及减少可靠连接数3个方面进行优化.

    1)减少网卡缓存信息. 通过扩展报文头、上送主机内存、转移至远端等方式减少网卡存储的元数据信息.

    香港科技大学在NSDI 2023提出的SRNIC[14]针对网卡上的通用数据结构和选择重传相关的数据结构(沿用IRN[7](3.2.2节):未完成请求表、重排缓冲区、位图)进行优化. 对于通用数据结构,SRNIC采用全部存储(对QPC)或部分缓存(对MTT)的方式减少缓存未命中率,并设计SQ调度器,对预取但未使用的WQE通过丢弃而非缓存的策略实现无WQE缓存的SQ调度. 对于选择重传相关的数据结构,SRNIC通过报文头扩展消除了未完成请求表和重排缓冲区;通过上送主机内存消除了位图部分,并将乱序报文的元数据信息送入软件重传模块进一步处理. SRNIC使用4.4MB缓存可支持10 000条QP连接,但其片上缓存需求与QP连接数仍呈线性关系,且上载软件重传的方式在丢包率较高时会引入较大CPU开销.

    湖南大学在ICNP 2021提出的StaR[59]则直接将服务器端(高并发连接)的连接状态信息完全转移到客户端(低并发连接),在服务器端中只基于客户端发送的报文中携带的连接状态信息进行报文处理和DMA等操作. 对于服务器端而言,StaR解决了连接扩展性问题,但其局限在于只适用于通信双方并发连接数不对称的客户端服务器场景.

    2)增加网卡缓存命中率. 通过高效的缓存管理、预取、连接调度等方式增加缓存命中率及减少缓存未命中对性能的影响.

    中科院在ICCD 2022提出的csRNA[58]和在ISCAS 2023提出的ScalaRNIC[57]采用该优化思路. 上述SRNIC[14]在网卡中存储全部QPC的方式虽可以避免出现QPC缓存未命中的情况影响网卡性能,但也使得网卡可支持连接数受网卡QPC存储容量的限制,csRNA则采用在网卡中部分缓存QPC的方式以支持更多连接数(可达15 000). 对于使用QPC缓存带来的头阻塞问题(缓存未命中会阻塞对后续QPC访问请求的处理),csRNA设计QPC调度器和管理模块实现非阻塞连接调度. 由调度器首先调度准备好的连接,由管理模块维护QPC缓存和处理QPC访问请求,并在缓存未命中时一方面暂存该请求并发起DMA操作获取相应QPC,另一方面直接处理后续命中的访问请求. 为避免语义错误,QPC管理模块还解决不同QPC请求间的依赖关系以保证同一QP连接上的顺序处理. csRNA可以在活跃连接数超过15 000的情况下实现接近峰值的消息速率,但QPC调度和管理模块处理逻辑复杂且引入了较多新的片上数据结构. 此外,csRNA只针对QPC进行优化,未考虑其他连接上下文信息.

    以上csRNA仅针对网卡中的QPC缓存进行非阻塞连接调度和缓存管理优化,ScalaRNIC[57]则针对网卡中的QPC,MTT,MPT,CQC(CQ context)4类缓存对其访问模式和管理机制进行优化. 在缓存访问模式方面,ScalaRNIC通过QPC转发机制减少处理过程中访问QPC缓存的次数,通过MTT/MPT/CQC预取机制减少访问等待时间并在缓存未命中时实现延迟隐藏. 在缓存管理机制方面,ScalaRNIC使用细粒度(8B为单位)缓存分区,并将其划分为高优先级和普通部分,其2部分缓存占比和优先级软件可配置,同时不同类型缓存容量也可根据其访问特性(如时间和空间局部性特征)进行配置. 通过上述机制,ScalaRNIC对于高优先级部分的连接上下文信息访问可保持近100%的缓存命中率,但对于非高优先级的访存,其缓存命中率与缓存容量密切相关,当连接数超过容量限制,系统性能仍会下降.

    3)减少可靠连接数. 通过使用UD、连接共享等方式避免或减少建立可靠连接数,从而减少网卡需缓存的连接状态信息.

    ①使用UD而非RC传输方式可避免建立1对1的QP连接. 卡耐基梅隆大学提出的FaSST[70]使用UD提升网卡的可扩展性,并使用双边原语实现快速远程过程调用(remote procedure call,RPC),但并不保证可靠传输. 中国科学技术大学提出的RoUD[52]和威斯康星大学麦迪逊分校提出的1RMA[21]则在使用UD的基础上将拥塞控制、重传和流控机制等可靠传输功能上载至软件传输层. UD相比RC更简单且扩展性更好,但UD不支持单边原语,无法传输大于4KB的数据,且在传输层实现可靠传输重新引入了CPU开销.

    ②使用动态连接共享(dynamically connected transport,DCT)[108]、扩展可靠连接(extended reliable connection,XRC)[109]、跨进程/线程的连接共享等方式减少连接数. DCT[108]传输方式可以通过为请求建立动态临时连接的方式减少连接所需资源,但可能需要频繁的建立拆除连接,存在性能损失和复杂性问题. XRC[109]传输方式允许请求端以单个连接与同一远端主机的所有进程通信,微软研究院在NSDI 2014提出的FaRM[5]采用了类似的思路,通过远端多线程使用本端单连接、本端跨线程连接共享2种方式,将所需连接数从2×m×t2减至2×m×t/q(其中m为机器数,t为每台机器线程数,q为共享连接的线程数),但需要根据不同集群规模分别确定最优q值,且当集群规模较大时该方式仍无法有效减少连接数.

    FaRM支持连接共享,但由于需要使用互斥锁来串行化对共享连接的访问,其同步QP共享模式在连接争用的情况下可能导致80%的性能损失[70]. 对此南京大学在APNet 2018提出的Avatar[50](及后续[13,49])实现了跨应用程序的无锁QP共享,应用程序生成的WR并不直接下发至QP,而是通过Avatar复用层中的worker线程(到同一远程节点的连接共享该worker)根据WR将WQE下发到共享QP,从而消除对QP的锁争用,实现了1 024条连接共享1个QP. 连接共享的方式有效减少了对网卡缓存资源的使用,但由于需内核态参与,考虑到系统调用开销,用户空间和内核空间频繁的转换可能带来较大的性能损失.

    此外,还可以通过分时复用限制网卡需要提供服务的连接数,清华大学在EuroSys 2019提出的ScaleRPC[41]对连接进行分组,通过1次只为有限数量(根据分组优先级、缓存大小、网卡和CPU处理能力动态调整,20~70之间)连接提供服务实现网卡的分时复用,从而避免了网卡上的高并发连接数. 但该优化方式同样会增加CPU开销,甚至会破坏不同连接之间的依赖关系[59].

    表3对上述网卡缓存资源优化的相关工作进行了总结. 以上扩展报文头的优化方式不兼容标准以太网RDMA报文格式,转移至远端的方式仅适用于客户端-服务器场景,通用性不高. 使用UD传输方式虽扩展性好,但不能发挥RDMA传输优势,CPU资源开销高. 表3所示的其他优化方式虽可缓解网卡连接可扩展性限制,但尚无方案完全解决该问题.

    表  3  网卡缓存资源优化方案总结
    Table  3.  Summary of NIC Cache Resource Optimization Schemes
    优化方向优化方式典型方案
    减少
    缓存
    扩展报文头SRNIC[14]
    上送主机内存
    转移至远端StaR[59]
    增加
    命中率
    优化缓存管理csRNA[58]
    优化连接调度
    预取转发ScalaRNIC[57]
    减少
    连接数
    使用UDFaSST[70],RoUD[52],1RMA[21]
    连接共享DCT[108],XRC[109],FaRM[5]
    Avatar[50]
    分时复用ScaleRPC[41]
    下载: 导出CSV 
    | 显示表格

    RDMA直接读写远端内存建立在应用程序预先在主机内存中注册MR(存取收发数据)的基础上. 此外,在内存中还需预先创建和维护QP,CQ,QPC,MTT,MPT等数据结构用于应用程序和网卡间交互、QP连接状态维护、直接内存访问等[4]. 对于主机内存中RDMA相关的存储区域和各类数据结构,目前的研究工作主要从内存注册管理的易用性和高效性、内存访问争用2方面进行优化.

    1)内存注册管理. 针对内存注册管理,RDMA允许应用程序直接访问硬件网卡,即在硬件级别注册管理和保护内存资源,该低级抽象与建立在高级抽象之上的应用程序之间并不匹配,导致应用程序难以充分发挥RDMA性能优势,目前的研究工作主要通过添加软件中间层、修改内核驱动程序、改进硬件网卡架构等方式对内存注册管理的易用性和高效性等方面进行优化.

    ①添加软件中间层. 普渡大学在SOSP 2017提出的LITE[66]在Linux内核空间构建LITE层,将MR,QP等资源的管理和保护功能转移到LITE,并为应用程序提供内存操作等API. 如对于MR,LITE仅为网卡注册1个全局MR并向应用程序提供虚拟内存区域LMR,由LITE进行LMR的地址映射和权限检查从而隐藏LMR底层细节,为上层提供1个易使用的高级RDMA资源抽象. 针对添加中间层的系统调用和内存复制开销,LITE采用部分功能上载、物理地址直接寻址等技术进行优化.

    南京大学在INFOCOM 2021提出的Nem[49]则对内存注册管理的高效性进行优化,通过在软件中间层中进行混合内存管理减少频繁MR注册和取消注册的开销. RDMA对于大消息通常使用memreg注册MR后进行数据传输,对于小消息则提前注册1个空间较大的MR,将要传递的消息memcpy复制至该MR以避免频繁注册MR阻塞程序运行. Nem在此基础上,对大消息采用商用网卡(如ConnectX-5)提供的按需分页(on demanding paging,ODP)功能消除memreg开销,对小消息采用流水memcpy(消息分段与预取)机制减少传输延迟. LITE和Nem可以更安全高效的管理和使用内存资源,但使用软件中间层不可避免会存在性能损失并引入一定的CPU开销.

    ②修改内核驱动程序. FaRM[5]针对在内存中注册MR较大时MTT条目数(以4KB为单位进行映射)过多导致网卡频繁缓存未命中的问题,修改内核驱动程序实现以大页(物理连续且对齐的2GB内存区域)为单位的MR注册管理,将MTT地址映射条目数从50多万条减少为1条,从而提升了注册MR空间大小的可扩展性,但使用大页也会导致内存占用增加以及物理内存碎片等问题[66].

    ③改进硬件网卡架构. 以上研究工作主要在软件层面进行MR等资源的注册管理优化,英伟达在TACO 2020提出的RIMA[67]则通过改进硬件网卡架构专门针对SRQ(shared receive queue)对应共享接收内存区域的注册管理进行优化. SEND/RECV双边操作需要响应端预先注册分配接收内存区域和下发RQ WQE,SRQ通过多QP共享1个RQ来减少需预分配的内存量. 但由于SRQ限制对不同操作请求均按照固定最大值(1MB)进行内存预分配,因此使用SRQ仍存在较显著的内存浪费和内存碎片等问题.

    对此,RIMA在SRQ基础上进行改进,如图5所示. 在网卡中,RIMA根据接收数据包中携带的QP标识和消息大小进行尾指针查找(增加尾指针查找表)和更新(增加加法器);在主机内存中,RIMA将共享接收内存区域在逻辑上作为1个连续区域的循环队列进行管理,通过头指针更新指示最早未完成请求对应数据的位置及进行空间回收,根据网卡尾指针更新指示当前接收数据包有效载荷应放入的内存空间,并在尾指针越过可用空间警戒线时提前注册分配内存空间以隐藏延迟. 在网卡侧,RIMA通过较小的硬件开销实现了共享接收内存区域的灵活高效管理,但其仅针对使用双边原语时的接收端内存进行优化.

    图  5  共享接收内存管理优化模块:RIMA[67]
    Figure  5.  Shared receive memory management optimization module: RIMA[67]

    2)内存访问争用. 针对内存访问争用,网卡和CPU在内存访问上的高争用可能导致网卡不能获得足够的存储器带宽资源,使得数据包在网卡缓冲区排队时溢出丢失,进而导致网卡在网络带宽尚未充分利用时就触发拥塞控制机制,影响网络性能.

    阿里巴巴在arXiv 2023提出在最后一级缓存(last level cache,LLC)中为网卡保留一块区域,直接将QP等数据结构放入LLC中,实现远程直接缓存访问(remote direct cache access,RDCA)[3]. 通过RDCA,网卡可以直接利用缓存的高带宽支持线速操作,同时避免了内存访问争用导致的网卡丢包问题. 但尽管RDCA使用了多种优化技术来减少对LLC的消耗,其RDMA资源仍需占用20%的LLC,因此该方式的主机缓存开销较大,且其系统性能和可扩展性会受到缓存大小的限制.

    表4对上述主机内存资源优化的相关工作进行了总结. 对于内存注册管理,LITE[66],Nem[49],FaRM[5]主要针对MR等资源的注册和管理,在软件层面简化用户编程和提升资源管理效率;RIMA[67]则针对使用SRQ存在的内存碎片等问题,在硬件层面改进网卡架构实现了SRQ对应共享接收内存区域灵活高效的注册管理. 对于内存访问争用,RDCA[3]采用了一种较为新颖的做法,不使用主机内存而是直接在主机缓存中管理QP等资源,但该方式显然对主机缓存的要求较高.

    表  4  主机内存资源优化方案总结
    Table  4.  Summary of Host Memory Resource Optimization Schemes
    优化方向优化方式典型方案
    内存注册管理优化添加软件中间层LITE[66],Nem[49]
    修改内核驱动FaRM[5]
    改进网卡架构RIMA[67]
    内存访问争用优化上送主机缓存RDCA[3]
    下载: 导出CSV 
    | 显示表格

    在RDMA应用于高性能计算(high performance computing,HPC)时,IB网络中使用专用网卡和交换机并通过基于信用的流控策略构建无损网络环境. 当RDMA迁移到基于以太网构建的数据中心网络时,由于普通以太网是不可靠传输媒介,在传输过程中可能会由于网络拥塞、服务质量(quality of service,QoS)策略等导致丢包. 为了实现和IB类似的高性能RDMA操作并满足RC传输方式下报文可靠传输的需求,在RDMA兼容以太网形式的协议实现中,iWARP直接在其网卡中卸载TCP/IP实现可靠传输;对于RoCE,现有的研究工作主要采用拥塞控制、流量控制并结合重传机制实现可靠传输以最大程度发挥RDMA的性能优势. 本节主要围绕RoCE介绍基于ECN等的拥塞控制、基于优先级等的流量控制,以及重传机制相关的go-back-N、选择重传等工作.

    拥塞控制的主要目标是防止过多数据注入到网络中,避免路由器或链路过载导致的传输延迟增加、丢包率上升等问题,以最大限度保证网络稳定性和传输性能. 现有的拥塞控制有基于丢包或ECN等的拥塞感知方式,基于速率或窗口等控制方式,基于软件、FPGA、ASIC等实现方式以及基于网卡或交换机等实现平台. 对于拥塞控制机制,更多介绍可见文献[110-111]. 相比以上文献,本节主要基于不同的拥塞感知方式阐述网卡对拥塞控制的支持.

    传统的TCP及改进的TCP(如BIC-TCP[112],TCP Cubic[113])等使用丢包作为拥塞感知信号,在未出现丢包时不断增加拥塞窗口大小. 该方式可以尽可能提升网络利用率,但其并非针对数据中心网络环境专门设计,且使用丢包作为感知信号无法及时响应网络拥塞. 现有针对数据中心RDMA网络设计的拥塞控制中普遍采用的拥塞感知信号包括ECN,RTT(round trip time)和INT(inband network telemetry).

    1)基于ECN的拥塞控制. 基于ECN的拥塞控制需要网卡和交换机均支持ECN功能. 在网络拥塞时,由交换机为数据包添加标记,接收端网卡需根据ECN标记构造和发送拥塞通知包(congestion notification packet,CNP),并完成接收速率计算等工作,发送端网卡需根据收到的CNP包依据流级拥塞控制算法进行数据包级发送速率或拥塞窗口调整. 微软在SIGCOMM 2015提出的DCQCN[86]在发送端网卡根据接收数据包是否携带ECN标记分别采用类似DCTCP[114]和QCN[115]的发送速率调整方式,DCQCN在Mellanox ConnectX-3 Pro硬件网卡中实现发送端和接收端的流级拥塞控制状态机. 普渡大学在ToN 2020提出的Dart[65]则对拥塞采用分而治之的思想,针对接收端拥塞,通过发送速率直接分配实现快速收敛,针对网络拥塞,在空间局部网络拥塞时通过有序流偏转实现快速收敛,并在其他情况下回退到迭代收敛速度较慢的DCQCN. 由于网卡固件修改需供应商支持,Dart在软件应用层提供算法实现所需交互参数. 清华大学在NSDI 2020提出的PCN[44]同样采用接收端驱动的发送速率调整以加快收敛,设计NP-ECN在接收端网卡进行拥塞识别以区分真正的拥塞流,并使用DPDK(data plane development kit)网卡实现PCN. 以上基于ECN的拥塞控制算法通常有较多(如DCQCN有15个)需调整的控制参数[39],如速率降低因子、目标速率、CNP发送周期等,因此其实现效果很依赖于控制参数的选定.

    2)基于RTT的拥塞控制. 以上基于ECN的拥塞控制依赖于交换机标记数据包,基于RTT的拥塞控制则直接根据端到端延迟对网络拥塞状态的反映进行数据包级发送速率或窗口的调整,不需交换机支持,但如何获得精确测量的RTT值是关键. 目前,Mellanox,Chelsio等厂商已在硬件网卡提供微秒级高精度定时器和数据包时间戳,Linux内核也为应用程序提供了访问网卡硬件时间戳的接口. 谷歌在SIGCOMM 2015提出的TIMELY[25]要求在接收端网卡中保证硬件级的ACK生成和在高优先级队列中发送,在发送端网卡中精确记录RDMA操作完成时间,在主机软件中TIMELY流级拥塞控制根据RTT梯度控制数据包发送速率的调整. 其后续在SIGCOMM 2020提出的工作Swift[24]同样使用网卡精确时间戳,在软件使用拥塞控制算法,Swift将拥塞区分为网络拥塞和主机拥塞,对二者分别根据固定目标延迟基于AIMD(additive increase multiplicative decrease)调整拥塞窗口. 南京大学在ICNP 2022提出的RET[87]在Swift使用固定目标延迟的基础上进行改进,结合ECN标记频率估计网络队列状态信息以获得准确的目标延迟值. 威斯康星大学麦迪逊分校提出的1RMA[21]采用类似的实现思路,在硬件网卡进行延迟测量,在软件实现拥塞控制算法控制发送速率调整. 相比于ECN,基于RTT的拥塞控制简单高效且可部署性强,但需要硬件精确测量RTT并在其不失效的情况下尽快调整发送速率或窗口.

    此外,英伟达基于RTT信息使用ML(machine learning)进行拥塞控制[88],其将基于RL(reinforcement learning)拥塞控制算法[116]的复杂神经网络提炼为决策树,从而将推理时间从450μs减少为0.9μs,并部署在ConnectX-6Dx网卡可编程拥塞控制引擎上实时运行. 该方式可以较好地适应负载动态变化的网络环境但实现复杂度和部署的难度较大.

    3)基于INT的拥塞控制. 基于INT的拥塞控制可以根据获得的链路负载信息实现精确的流级拥塞控制. 阿里巴巴在SIGCOMM 2019提出的HPCC[39]采用该方式,HPCC中由交换机向数据包中插入INT元数据(时间戳、队列长度、链路带宽容量等),接收端网卡将INT信息插入至ACK响应包. 发送方网卡在收到ACK后根据INT信息来细粒度感知网络状态并进行基于未确认字节数的发送窗口调整,从而可以快速提高流量并控制其低于链路容量从而获得高网络利用率,或适当降低流量以避免拥塞. HPCC基于商用FPGA可编程网卡和P4可编程交换机实现了算法原型. 相比于ECN和RTT,基于INT的HPCC只有3个需调整的参数并可以根据网络状况进行快速精确控制,但显然对交换机的依赖性很高且开销较大. 表5对上述以太网RDMA拥塞控制相关工作进行了总结.

    表  5  拥塞控制优化方案总结
    Table  5.  Summary of Congestion Control Optimization Schemes
    拥塞感知感知控制网卡支持典型方案算法实现
    ECNCNP报文封装解析、速率限制器DCQCN[92]基于硬件网卡
    Dart[65]软件实现(协同硬
    件网卡DCQCN)
    PCN[44]基于DPDK网卡
    RTT数据包时间戳、
    速率限制器
    TIMELY[25]软件实现
    1RMA[21]软件实现
    RL-CC[88]基于可编程网卡
    数据包时间戳、
    软件拥塞窗口
    Swift[24]软件实现
    RET[87]软件实现
    INTINT报文封装解析、
    硬件拥塞窗口
    HPCC[39]基于可编程网卡
    下载: 导出CSV 
    | 显示表格

    拥塞控制的主要目的是使网络负载不超过网络的传送能力,而流量控制则关注接收方的接收和处理能力,主要目的是使发送方的发送速率不超过接收方的接收能力,以解决点对点或端对端的收发速率不匹配的问题[117]. 目前数据中心网络中主要采用基于优先级的流控,此外学术界相关研究中还有基于网络带宽延迟积的流控、基于信用的流控以及流量动态规划等.

    1)基于优先级的流量控制(priority based flow control,PFC)[9]. 拥塞控制可以提高网络传输质量,但并不保证RoCE RC传输方式所需的可靠传输,在突发流量、非连续流量等模式下仍易出现缓冲区溢出导致数据包丢失,进而影响RDMA传输性能,因此通常依赖PFC构建无损网络来保证可靠传输. PFC在网卡中实现基于优先级的队列管理,并在网络拥塞时通过向上游交换机或网卡发送PFC暂停帧来避免缓冲区溢出,从而提供点对点逐跳的基于优先级的流控. 然而原始基于2层VLAN的PFC将数据包优先级携带在VLAN Tag的PCP(priority code point)中,在数据中心大规模部署(交换机运行在3层IP网络环境)时,跨越子网边界的通信无法保留VLAN中的PCP,其根本问题在于数据包优先级和2层VLAN不必要的耦合. 对此,微软在SIGCOMM 2016提出基于3层IP报文头中DSCP(differentiated services code point,差分服务代码点)字段的PFC机制[9]. DSCP字段用于承载QoS优先级标签以便在网络拥塞时对不同优先级网络流量进行分类处理,基于DSCP的PFC只需将IP报文头中的DSCP值映射为PFC对应的优先级即可,该改进方式已经广泛得到商用网卡和交换机支持.

    PFC应用部署广泛且可构建无损网络,但当发送暂停帧时同一优先级队列的所有流量都会受到影响,而不区分具体的流,因此在大规模数据中心网络部署时存在头阻塞、拥塞扩散以及死锁等问题[10,25,29,118]. 目前的研究工作通常使用PFC进行快速响应来防止丢包,同时结合使用端到端流级拥塞控制,如DCQCN等以避免持续触发PFC,实现快速响应和长期稳定的平衡[29],见3.2.1节.

    2)基于网络带宽延迟积的流量控制(bandwidth delay product based flow control,BDP-FC). 相比于RoCE依赖PFC构建无损网络,加州大学伯克利分校在SIGCOMM 2018提出的IRN[7]更认同iWARP的理念,即在网卡中有效处理丢包,而不是使网络无损. 但区别于iWARP在网卡中卸载整个TCP/IP协议栈,IRN以尽可能小的开销和网卡修改为出发点,在网卡中采用基于硬件的选择重传(见3.2.3节)和端到端数据包级的流控机制,即BDP-FC. BDP-FC由网卡依据BDP和QP MTU计算出限制流在网络中未确认数据包数量的固定上限值,并依据该值进行流控. 此外,为支持BDP-FC所需的逐包确认,网卡需额外增加对读响应报文的ACK/NAK. 相比于TCP字节流级别的流控,BDP-FC包级流控和固定上限值可以在减少网络中不必要的排队提升性能的同时减少网卡实现选择重传所需维护的状态开销;相比于PFC通过点到点逐跳反压以尽可能构建无损网络,BDP-FC采用的端到端包级流控不能保证无损(IRN认为设计好的丢失恢复机制比无损网络更重要,见3.2.3节),但实现复杂度低,不需要交换机参与且不会带来死锁、拥塞扩散等问题.

    3)基于信用的流量控制(credit-based flow control). 传统IB网络中基于信用的流控需要交换机逐跳参与支持,难以扩展到数据中心规模. 韩国科学技术院在SIGCOMM 2017提出的ExpressPass[90]则基于信用进行带宽分配,在交换机处只需速率限制功能. 接收端提前发送信用包,由交换机限制不同链路上的信用包数,使发送端根据接收的信用包发送数据,从而确保数据流不会超过链路容量. 对于信用包,由网卡构造以太网帧(84~92B间随机)并引入发送时间随机抖动以避免信用包同步到达交换机,以便交换机执行公平的信用包丢弃. 此外,ExpressPass接收端网卡以信用包丢失率作为拥塞指标,并据此进行信用发送速率调整. ExpressPass在SoftNIC中实现其核心组件(基于信用的流控和速率限制器等),它有效解决了incast突发流问题,可以在发送数据前有效控制拥塞,但同时使用信用包会带来一定的带宽浪费(尤其是短流).

    4)流量动态规划. 麻省理工学院在SIGCOMM 2014提出的Fastpass[89]使用一种集中式控制架构进行流量动态规划,核心思想是对端节点的数据包发送进行集中式的严格控制来实现网络的分时复用以预先避免产生拥塞. Fastpass主要包括端节点和仲裁器2部分,端节点作为客户端将待发送数据包信息通过自定义FCP(fastpass control protocol)发送至仲裁器,由仲裁器作为服务端确定其发送时间和传输路径并返回响应包至端节点. Fastpass可以用于支持数据中心RDMA网络的可靠传输且提供确定性低传输延迟,但在大规模部署时集中式仲裁器的计算和网络吞吐量显然会成为瓶颈. 此外,全网时间同步以及端节点和仲裁器之间的交互等会引入新的通信开销. 表6对上述以太网RDMA流量控制相关工作进行了总结.

    表  6  流量控制优化方案总结
    Table  6.  Summary of Flow Control Optimization Schemes
    典型方案核心思想网卡支持
    DSCP PFC[9]点对点优先级流控基于优先级的队列管理和流控、
    携带DSCP报文的封装解析、
    PFC暂停帧构造响应
    BDP-FC[7]端对端数据包级流控基于BDP的固定窗口流控、
    增加对读响应的ACK/NAK
    ExpressPass[90]端对端信用流控基于信用的流控、信用包封装解析、
    速率限制器
    Fastpass[89]集中式流控FCP报文封装解析、时间同步
    下载: 导出CSV 
    | 显示表格

    在上述拥塞控制和流量控制中,基于速率的控制都需使用网卡中的速率限制器来对每个流进行发送速率调节. 为满足硬件集成速率限制器的性能、准确性、可扩展性等需求,香港科技大学以SRNIC[14]网卡架构为基础,在APNet 2023中提出速率限制器Tassel[60]. 如图6所示,Tassel将经典的基于时间的加权共享算法WF2Q+扩展到以太网RDMA网卡场景下的速率限制. Tassel通过事件综合调度活跃、准备就绪且有信用的有效QP以避免无效调度,并设计从获取WQE、计算数据包传输时间、将紧急数据包插入时间轴,到参照全局计时器的系统时间对紧急数据包进行监控、排序和调度的整个速率限制算法处理流程. Tassel可以提供数据包级精确可扩展的发送速率调节,但增加了调度相关的数据结构,且需要完成数据包传输时间计算、排序、调度等,内部实现逻辑较为复杂.

    图  6  速率限制优化模块:Tassel[60]
    Figure  6.  Rate-limiting optimization module: Tassel[60]

    尽管结合PFC,DCQCN等机制已经可以尽可能改善网络传输环境,实现一定程度的无损网络,但设备或链路故障等原因导致的丢包、超时未送达等无可避免,对此RoCE采用go-back-0,go-back-N或选择重传机制来配合流量控制和拥塞控制实现可靠传输.

    1)Go-back-0.go-back-0重传方式要求接收方按序收到所有数据包,否则将从对应消息的第1个数据包开始重传. 该重传机制对于网卡实现而言最为简单,但同时在丢包时会占用大量网络带宽和系统资源. 即便丢包率极低(PFC保证),RDMA的性能也会急剧下降,甚至在链路以线速充分利用的情况下(全部带宽都用于重传),应用程序级别的有效吞吐量也为0[9]. 因此,该重传方式已普遍被go-back-N取代.

    2)Go-back-N.go-back-N重传方式则根据NAK响应包携带的PSN从丢包处开始重传[1]. go-back-N虽然同样存在带宽浪费(单个数据包丢失最多浪费RTT×C个字节(其中C为链路容量)),但几乎和go-back-0一样简单,对硬件网卡实现较为友好[9].

    ①硬件实现. go-back-N已在Mellanox,Intel等商用网卡中得到广泛部署,如Mellanox自ConnectX-4网卡起,基于go-back-N实现弹性RoCE(resilient RoCE)[91]. 早期经验显示,RoCE需构造无损网络实现良好的传输性能,因此数据中心通常依赖PFC进行流控. 但在大规模部署时PFC会带来死锁、管理复杂等一系列问题,弹性RoCE使用DCQCN结合go-back-N以在有损以太网络上无缝运行(无PFC),简化了RoCE部署. 但由于DCQCN无法保证在所有动态流量模式下的可靠传输,因此Mellanox仍建议启用PFC.

    ②软硬件协同实现. 威斯康星大学麦迪逊分校在SoCC 2018提出的RoGUE[6]同样结合拥塞控制和go-back-N/0机制消除RoCE对PFC的依赖,它在verbs编程接口之上软件实现拥塞控制相关逻辑,同时利用硬件高精度时间戳和速率限制器等辅助软件实现基于RTT的拥塞控制. 对于重传,RoGUE使用网卡go-back-N机制作为基础重传方案,应用程序可设置网卡重传尝试次数(RoGUE设置为1),若硬件重传仍未成功,则由软件继续尝试重传. 由于硬件网卡并不告知软件已正确传输的数据包数量,因此软件采用go-back-0重传. 为隐藏软件重传延迟并保证应用程序可及时下发新操作请求(重传期间QP置于错误状态无法接收新请求),RoGUE设计影子QP机制,为每个活跃QP维护相应的影子QP. 当活跃QP中发生丢包重传时,RoGUE会在影子QP中继续接收新请求(该QP转换为新的活跃QP). 但由于无PFC流控,软件拥塞控制会引入处理延迟,同时使用的重传机制本身不够高效,因此必然影响RDMA传输性能.

    3)选择重传.go-back-N机制下丢包重传仍需占用较多带宽,如在原始链路吞吐量为97Gbps的情况下,当丢包率超过0.1%时,Mellanox ConnectX-6的有效吞吐量会迅速下降;当丢包率超出1%时,有效吞吐量会降至25Gbps[14]. 在不使用PFC的情况下,重传性能对于在有损以太网中部署RDMA更显重要[119]. 目前学术界已有相关研究通过选择重传增强网卡有效处理丢包的能力,并将其结合拥塞控制实现基于有损以太网的可靠传输.

    ①硬件实现. 微软研究院在APNet 2017提出的MELO[30]较早尝试在RoCE中使用基于硬件的选择重传代替go-back-N机制,并通过数据和元数据分离存储、所有并发连接共享元数据结构2种优化技术尽可能减少选择重传引入的片上存储资源消耗. MELO提升了网卡对有损网络的适应能力,但并未对PFC的必要性进行讨论,因此只在启用PFC的环境中实现. 中国科学技术大学提出的RoUD[52]则结合选择重传和拥塞控制算法LDCP消除RoCE对PFC的依赖,并在可编程多核网卡(uNIC)和ConnectX-6网卡上进行了部署.

    IRN[7]则结合选择重传和BDP-FC消除对PFC的依赖. 由于BDP-FC(见3.2.2节)并不保证无损,IRN通过选择重传适应有损网络环境. 为此,IRN将原本请求端发送和接收采用的统一PSN空间划分为sPSN和rPSN,分别用于跟踪发送的请求包和接收的响应包. 为支持乱序数据包处理,对于原本请求端只在消息首包中携带的信息,IRN将其添加到每个数据包头;对于要求到达的数据包与其WQE匹配的应用,IRN将WQE序列号携带在数据包头中进行标识. 此外,对于许多RDMA操作,请求端会在消息尾包中携带完成本次操作所需的元数据信息(如SEND/WRITE with imm的立即数据). 对于原本响应端收到尾包后回送ACK及上送CQE(对SEND/WRITE with imm等)的操作,IRN响应端使用位图记录乱序数据包到达情况,在尾包到达后预先生成CQE并存入主机内存,在所有数据包到达后回送ACK并将预先生成的CQE上送应用程序.

    相比于RoCE(带PFC)和弹性RoCE,IRN可以在无PFC和显式拥塞控制的情况下达到较好的传输性能,但需要额外在网卡上维护选择重传相关的状态信息,如记录未收到确认数据包对应PSN等信息的未完成请求表(outstanding request table,ORT)、记录数据包是否按序接收的位图(2-bitmap)等.

    ②软硬件协同实现. 该方面相关工作通过将部分功能上载至软件以实现性能与扩展性、灵活性之间的平衡. 香港科技大学在NSDI 2023提出的SRNIC[14]在上述IRN基础之上,将数据包处理划分为快速和慢速处理路径,在硬件网卡中快速处理顺序数据包,在软件中实现乱序数据包处理的选择重传逻辑,以一定的性能损失换取网卡的连接可扩展性,见3.1.1节. 此外,完全在硬件中实现拥塞控制和丢失重传等机制不利于网络管理员进行自定义的硬件更改和灵活的拥塞控制算法部署,阿里巴巴在OSDI 2023提出的Flor[37]采用软硬件协同的实现方式,在不修改现有网卡的基础上将无PFC依赖的拥塞控制和选择重传上载软件层实现. 软硬件协同的方式以较低的实现成本消除了对PFC的依赖,但同时软件实现的拥塞控制和重传以及软硬件之间的切换和交互也会引入一定的存储资源和CPU处理开销. 表7对上述重传机制相关优化工作进行了总结.

    表  7  重传机制优化方案总结
    Table  7.  Summary of Retransmission Mechanism Optimization Schemes
    重传机制实现形式名称优化方式
    Go-back-N硬件弹性RoCE[91]结合DCQCN适应有损
    软硬协同RoGUE[6]结合软件实现TIMELY适应有损
    选择重传硬件MELO[30]优化选择重传网卡存储资源消耗
    RoUD[52]结合LDCP适应有损
    IRN[7]结合BDP-FC适应有损
    软硬协同SRNIC[14]基于IRN软件实现选择重传适应有损
    Flor[37]软件实现选择重传和拥塞控制适应有损
    下载: 导出CSV 
    | 显示表格

    面对数据中心多样化的部署需求和应用场景,如分布式存储、多租户性能隔离等,构建高性能的RDMA系统需要仔细选择传输模式和通信原语以充分发挥其性能优势,并调整软硬件结构进行适配[107]. 在软件层面结合RDMA硬件特性通过应用和扩展RDMA原语、添加软件中间层、虚拟化、加密验证等方式适配不同部署需求和场景特点,在硬件层面通过改进网卡架构、添加功能模块来增强网卡功能. 本节主要介绍在分布式存储系统、数据中心应用中基于以太网RDMA网卡的优化研究工作.

    作为数据中心网络中为上层应用提供存储服务的基础设施,分布式存储系统将数据分散存储在多个设备上,并通过网络连接进行管理和访问. 对于分布式存储,更多介绍可见[45,107]. 相比以上文献,本节侧重于从分布式存储类型、应用2个方面阐述以太网RDMA网卡面向分布式存储系统的优化工作.

    1)分布式存储类型:分布式存储按照存储类型可分为块存储、对象存储、文件存储,三者以不同的方式和层次保存、整理和呈现数据. 其中块存储将数据拆分成块并单独存储各个块,对象存储将管理数据链接至关联的元数据,文件存储则采用文件和文件夹的层次结构存储数据[120].

    在块存储方面,华中科技大学在2022年提出的分布式块存储系统Flame[121]结合RDMA技术从通信模型、传输策略和RDMA资源管理3个方面进行优化,采用贯穿式通信模型、读写转换、动态技术轮询获取CQE等方式在块存储系统中充分发挥RDMA性能优势. 但由于块存储涉及底层裸磁盘,需要考虑数据完整性、并发访问等问题,目前研究较少,以下主要介绍对象存储和文件存储的相关工作.

    ①对象存储. 对象存储将数据和元数据存储在一个对象中,并通过标识符唯一标识,即基于键值对进行存储,基于键值操作进行访问和修改. 对象存储可用于存储机器学习模型参数、图计算的节点和边等非结构化数据[33]. 传统基于TCP/IP的对象存储键值操作难以满足数据中心应用通信带宽需求[5],对此RDMA被广泛应用以提升其传输性能. 现有的键值操作相关研究主要在软件层面通过应用和扩展RDMA原语的方式进行性能优化.

    其一,使用现有网卡提供的RDMA原语执行键值操作. 应用不同通信原语(单边、双边、混合单双边)RDMA的传输性能不同,纽约大学在ATC 2013提出的Pilaf[92]使用READ优化GET操作,使用SEND/RECV优化PUT操作. FaRM[5]同样使用READ完成GET操作,并将集群中机器内存公开组成共享地址空间从而为上层应用提供简单的编程模型. 中国科学院计算技术研究所提出的HiStore[56]则分别对GET和SCAN操作应用单边和双边原语以优化读写性能. 卡耐基梅隆大学提出的HERD[71]同样混合使用单双边原语,HERD认为当单边操作需要多个RTT时,只需单RTT的双边操作更具性能和可扩展性优势. 在HERD中客户端通过UC WRITE向服务器发送GET或PUT请求,服务器在执行完请求后使用UD Send向客户端发送回复. 其后续提出的FaSST[70]则认为单边原语会增加软件复杂性,且在网卡上存储连接状态会限制可扩展性,因此完全使用UD SEND/RECV进行传输,并通过集成协程、Doorbell批处理等方式进行延迟隐藏和性能优化.

    其二,扩展现有网卡提供的RDMA原语以适配键值操作. 单边原语可以实现更好的GET性能,但需要更高的通信和同步开销,相应PUT性能会降低;使用双边原语具有更好的可扩展性但同时会受到服务器CPU性能限制. 微软研究院在SOSP 2017提出的KV-Direct[33]使用基于FPGA的可编程网卡将READ和WRITE操作扩展为键值操作和矢量操作,并支持用户定义的更新函数. KV-Direct还通过设计的乱序执行引擎等减少和隐藏网卡的PCIe访问延迟,实现了比基于CPU的分布式KVS高3倍的能效.

    ②文件存储. 文件存储将数据存储到文件,将文件组织到文件夹,将文件夹组织到目录和子目录的层次结构中,并使用分布式文件系统对文件进行访问、管理和权限控制[122]. 非易失主存(non volatile main memory,NVMM)可以在持久存储数据的同时提供与动态随机存取存储(dynamic random access memory,DRAM)相当的高速读写性能,NVMM的出现将分布式文件系统数据路径上的性能瓶颈从访存转移至网络堆栈处理开销和软件延迟[93],对此,现有的相关研究主要在软件层面通过应用RDMA原语、添加软件中间层的方式进行性能优化.

    其一,根据现有网卡提供的RDMA原语重新设计文件系统. 清华大学提出的Octopus+[46]将RDMA和NVMM紧耦合以设计文件系统,并分别针对数据和元数据访问进行优化,对数据操作其直接访问共享持久内存,对元数据则引入自识别的RPC并结合WRITE和ATOMIC操作等实现RDMA和文件系统的有效集成. 加州大学圣地亚哥分校提出的Orion[93]将文件系统的功能和网络操作组合到1个层中,同样将RDMA深度集成到基于NVMM的文件系统中以加速其元数据和数据访问.

    其二,添加软件中间层适配文件系统的内存管理特点. NVMM文件系统以文件进行内存管理,RDMA网卡则以内存区域(MR)进行远程访问,二者不同的内存抽象层次需要较大的转换开销,对此上述Orion[93]在NSDI 2020的后续工作FileMR[94]创建1个结合MR和文件的抽象层,客户端可通过RDMA直接访问文件,并通过文件偏移量进行内容寻址. 在网卡缓存有限的情况下,NVMM较大的容量需要网卡频繁与主存通信获取虚实地址转换信息,对此,FileMR采用基于范围的转换,将可变大小的虚拟地址范围映射为物理地址,从而减少MTT所需空间和注册时间.

    2)分布式存储应用. 基于分布式存储的应用,如数据库系统和云存储系统等使用分布式存储作为底层的存储支持,并向上层用户提供高效、可靠的数据管理或存储服务. 以下主要介绍基于分布式存储的数据库系统、云存储系统相关工作.

    ①基于分布式存储的数据库系统. 分布式数据库系统主要用于存储和管理结构化数据,并提供数据查询、事务处理等功能. 面向数据库系统,现有的研究工作通过应用和扩展RDMA原语、添加软件中间层、改进硬件网卡架构等方式保证数据库系统的高可用性、高性能和可维护性.

    其一,应用和扩展现有网卡提供的RDMA原语提升数据库的可用性. 分布式数据库系统通常通过数据复制以适当的冗余备份来容忍单机故障,实现高可用性. 传统的数据复制算法以处理冗余为代价尽可能减少副本之间的网络通信,然而基于RDMA的高性能网络将瓶颈转移至CPU,对此布朗大学提出的Active Memory[95]使用WRITE操作直接对远端备份节点进行更新,从而以增加一定网络流量为代价消除了复制过程中备份节点进行冗余计算的CPU开销. 卡内基梅隆大学提出的HyperLoop[72]则扩展RDMA原语(gWRITE等),由网卡直接访问和修改数据库内容,从而实现旁路CPU的复制事务处理并提供可预测的低处理延迟.

    其二,添加软件中间层以实现数据库系统的高可维护性. 对于大规模生产集群的数据库系统,提升系统的开发和维护效率十分必要. 对此,清华大学在CLUSTER 2019中开发用户空间中间层X-RDMA[47],通过提供高度抽象的数据结构(context,channel,msg)和API来简化RDMA编程,并通过seq ack窗口和keepAlive选项扩展RDMA协议以提升发送端对接收端处理进度和活动状态的感知. 此外,X-RDMA通过流量控制、资源管理、性能分析和调试等组件,进一步提升系统的健壮性、可扩展性以及可维护性.

    其三,改进硬件网卡架构以提升数据库系统传输性能. 数据库系统中常见的数据混洗操作等可能产生大量非连续数据,处理这些数据需要频繁DMA,占用的通信和处理开销较大. 弗里堡大学在CIDR 2022提出的D-RDMA[85]通过改进硬件网卡解决该问题,其核心思路为让网卡接管DMA调度,从而允许主机应用程序更紧凑地描述要传输的区域. 如图7所示,D-RDMA允许应用程序使用非连续区域(non-contiguous regions,NCR)向网卡发起请求,NCR可包含比单个消息和数据块更大的区域,并同时包含数据和数据间隙的信息. 对于NCR请求,由优化器决定DMA传输范围,由分段存储器暂存NCR数据,由装配器根据优化器提供的掩码信息组装有效载荷. D-RDMA可将网络吞吐量从18Gbps提高到98Gbps(基于100Gbps ConnectX-5),并保持接近零的CPU开销,但对网卡与上层应用的交互方式改动较大,不易兼容现有RDMA应用.

    图  7  DMA访问优化模块:D-RDMA[85]
    Figure  7.  DMA access optimization module: D-RDMA[85]

    ②基于分布式存储的云存储系统. 云存储通过互联网对存储资源进行抽象化、汇集和共享[120]. 目前领先的云存储系统,如阿里巴巴Pangu[38]、微软Azure[32,123]均采用“计算存储分解”的理念,并可根据使用场景提供块存储、对象存储、文件存储等不同的分布式存储类型.

    阿里巴巴Pangu在NSDI 2021[38]中指出其在存储后端(存储集群内)部署RoCEv2以提供微秒级访问延迟和近100Gbps吞吐量的网络服务,通过应用层共享链路的模式减少QP数量,并通过RoCEv2和TCP混合部署保持系统的高可用性. 在存储前端(计算和存储集群之间),阿里巴巴在ATC 2023中指出其使用用户空间TCP软件堆栈LUNA[97]而非RDMA以在降低延迟和CPU开销的同时保证可扩展性和互操作性,提供跨数据中心通信的支持,并进一步在SIGCOMM 2022中提出可靠UDP堆栈Solar[96]实现网络存储的联合硬件加速. 相比于RDMA只卸载网络堆栈,Solar将网络数据包和存储数据块的概念统一,使弹性块存储(elastic block storage,EBS)的数据路径(包括存储虚拟化部分)可完全卸载到硬件.

    Pangu在存储后端应用RDMA,微软Azure[32]在NSDI 2023中则提出同时在存储前端和后端应用RDMA,并同样提供RoCEv2和TCP混合部署. 在存储前端,RoCEv2可实现从单个数据中心扩展到跨数据中心的数据传输. 对此,微软开发新的基于RDMA的存储协议分别用于存储集群内(sU-RDMA)及集群间通信(sK-RDMA),并针对集群间异构网卡的互操作性问题,更新网卡固件统一DCQCN的行为,以避免DCQCN实现差异(生成和响应拥塞通知包(CNP)的粒度等)引起的性能损失. 表8对上述分布式存储相关优化工作进行了总结.

    表  8  分布式存储优化方案总结
    Table  8.  Summary of Distributed Storage Optimization Schemes
    优化方向优化方式典型方案
    存储类型对象存储重构键值操作Pilaf[92],FaRM[5],HiStore[56],HERD[71],FaSST[70]
    扩展RDMAKV-Direct[33]
    文件存储重构文件系统Octopus+[46],Orion[93]
    添加软件中间层FileMR[94]
    存储应用数据库系统应用扩展RDMAActive Memory[95]
    HyperLoop[72]
    添加软件中间层X-RDMA[47]
    改进硬件网卡D-RDMA[85]
    云存储系统重构存储系统Pangu[38],LUNA[97]
    Solar[96],Azure[32]
    下载: 导出CSV 
    | 显示表格

    面对数据中心中承载的大数据处理[90,124-125]、机器学习[126-127]、搜索、流媒体服务等各种应用,完全使用原生RDMA构建多应用程序共享的数据中心网络难以满足其性能、安全性等方面需求. 本节主要阐述以太网RDMA网卡面向数据中心应用需求的多租户性能隔离、安全性及可编程性相关的优化工作.

    1)多租户性能隔离. 使用多租户技术可使多个延迟敏感(latency sensitive,LS)或带宽敏感(bandwidth sensitive,BS)应用程序共享单个硬件网卡,提升网卡资源利用率. 但RDMA在将数据平面卸载到网卡以减少CPU开销的同时,也无法使用基于CPU的资源分配和流仲裁机制等.

    在多租户环境下,这会带来不可预测的消息尾部延迟、不公平的带宽共享等性能干扰问题. 密西根大学在KBNets 2017[77]中基于ConnectX-4网卡对LS和BS流共享网卡进行了性能测试,发现BS流间、LS流间、BS与LS流间均存在性能干扰. 杜克大学在NSDI 2023中构建的Husky[82]则综合网卡带宽、处理单元、缓存以及PCIe带宽4类网卡资源对多租户性能隔离解决方案进行测试评估,并指出目前的商用RDMA网卡均无法提供性能隔离. 现有学术界的相关工作主要通过虚拟化、添加软件中间层、改进硬件网卡架构3种方式实现一定程度的性能隔离.

    ①使用虚拟化技术. 虚拟化将单个硬件网卡资源虚拟化为多个网卡资源供虚拟机或容器使用. 相比于在裸机环境下执行,虚拟化可以为不同租户的应用提供性能隔离保护,并通过硬件复用实现更高的网卡资源利用率.

    对于虚拟机的虚拟化,目前相关研究主要集中在软件半虚拟化、硬件虚拟化和混合虚拟化. 在软件半虚拟化方面,VMware提出的vRDMA[98]通过客户端前端驱动和主机端后端驱动配合实现半虚拟化. 中国科学技术大学提出的vSocket[53]针对云环境中基于Socket的应用程序,通过内核连接重用和RDMA连接的虚拟化而非硬件网卡虚拟化,消除了半虚拟化IO方案的前后端数据复制开销. 在硬件虚拟化方面,由Intel提出的单根IO虚拟化(single root I/O virtualization,SR-IOV)[128]已经得到了广泛部署和应用,在SR-IOV中虚拟机可以直接访问硬件网卡以提供接近裸机的性能,但由于需要硬件和平台支持,灵活性和可维护性不足. 在混合虚拟化方面,IBM研究院提出的HyV[99]基于RDMA控制和数据操作路径分离的概念,对于控制操作由虚拟机管理程序参与进行虚拟化,对于数据操作则完全绕过虚拟机在网卡中执行. 相比于SR-IOV,HyV在高性能数据操作和灵活资源管理之间取得了一定的平衡. 华为提出的MasQ[4]延续了HyV的混合虚拟化思路,在虚拟专用云(virtual private cloud,VPC)中部署了虚拟化RDMA,并在控制路径上进行租户隔离及安全等方面的增强.

    对于容器的虚拟化,HyV等虚拟化技术虽可用于容器,但仍存在一定限制(如混合虚拟化不能支持灵活的数据平面策略等). 卡内基梅隆大学提出的FreeFlow[73]使用服务器上运行的软件虚拟交换机对容器间通信的控制路径和数据路径进行管理,实现了专用于容器化云的半虚拟化RDMA,并可在一定CPU开销下,实现与原生RDMA相当的吞吐量和延迟.

    ②添加软件中间层. 谷歌在SOSP 2019提出的Snap[23]在应用程序和网卡之间添加软件中间层,并根据不同处理需求(调度延迟、性能隔离、CPU效率)提供专用、共享和最少处理单元3种调度模式从而实现不同强度的性能隔离,如在使用专用处理单元时,应用程序不与其他应用程序共享CPU和调度决策,虽然可以获得更强的性能隔离,但同时也会带来更高的CPU和内存成本. 密西根大学在NSDI 2022提出的Justitia[100]则通过软件中间层实现租户级连接管理. Justitia添加整形器通过连接拆分和消息整形动态调整消息大小、速率等,并根据接收端反馈信息调整资源分配,实现应用程序级的连接管理和可控的带宽共享. 此外,Justitia使用守护进程依据到不同接收方的参考流延迟测量值检测资源争用,进而根据尾部延迟目标为延迟敏感流提供可预测延迟. Nem[49]同样在软件中间层实现性能隔离,Nem通过硬件QoS将QP分为8个优先级来隔离LS和BS流. 对于不同连接共享的同一QP,Nem则通过BS WR分段(4KB)来减轻其对LS WR的影响.

    ③改进硬件网卡架构. 同样针对性能隔离,中国科学院计算技术研究所在GLSVLSI 2023提出的Optimize TX[55]则直接改进接收端硬件网卡架构,如图8所示,对于LS,BS流间性能隔离,Optimize TX对其进行分离缓存和2倍加权轮询调度(2-weighted round-robin,2-WRR),并通过BS流切片执行(在1次数据传输后将未完成处理的WQE信息写回切片状态等待再次调度)解决BS流对LS流的头阻塞问题. 针对BS流间的性能隔离,Optimize TX使用切片状态隔离背压机制避免单BS流WQE缓存队列满信号与状态写入模块允许读信号之间的耦合,并根据工作负载特性对不同的BS流进行自适应WRR调度. Optimize TX在增加一定调度处理逻辑和缓存开销的情况下,以较低的CPU开销实现了较优的性能隔离. 表9对上述性能隔离相关优化工作进行了总结.

    图  8  性能隔离优化模块:Optimize TX[55]
    Figure  8.  Performance isolation optimization module: Optimize TX[55]
    表  9  性能隔离优化方案总结
    Table  9.  Summary of Performance Isolation Optimization Schemes
    优化方式典型方案方案特点
    虚拟化软件半虚拟化vRDMA[98]
    vSocket[53]
    客户端前端驱动和
    主机端后端驱动配合
    硬件虚拟化SR-IOV[128]可提供接近裸机的性能
    混合虚拟化HyV[99]
    MasQ[4]
    仅RDMA控制操作
    参与虚拟化
    容器虚拟化FreeFlow[73]可满足容器化云对
    可移植性迁移等的要求
    添加软件中间层Snap[23],Justitia[100],Nem[49]可实现较为灵活的
    流调度和资源分配
    改进硬件网卡架构Optimize TX[55]较好解决BS流对
    LS流的头阻塞问题
    下载: 导出CSV 
    | 显示表格

    2)安全性.RDMA体系结构的设计主要关注性能而非安全性,其在旁路CPU的情况下直接将内存暴露给远端,并仅根据收到的数据包是否与其状态信息匹配(如MPT,MR,rkey等)来识别恶意内存访问[61]. 网络窃听者可以轻易获取应用程序的敏感信息甚至篡改数据包内容,这会损害应用程序的机密性和完整性. 目前的相关工作对RDMA的安全漏洞进行了探索,并通过加密验证等方式增强其安全性.

    苏黎世联邦理工学院在ReDMArk[61]中通过对各种威胁模型下RDMA安全问题的研究,发现原生RDMA缺乏安全的身份验证机制,且现有网卡(Mellanox,Broadcom等)存在多个漏洞,如攻击者可以发起拒绝服务攻击、注入欺骗性RDMA数据包等. 针对安全的身份验证机制,其后续工作sRDMA[62]为RDMA设计SRC(secure reliable connection) QP,该QP使用对称密码(基于OpenSSL)进行加密和身份验证,并通过保护域(protection domain,PD)级密钥取代QP级密钥减少引入的网卡缓存开销. 针对ReDMArk发现的漏洞,莱斯大学提出的Bedrock[104]在可编程交换机(也可部署在可编程网卡上)实现了1套互补的防御措施.

    3)可编程性.RDMA可以提供高带宽和低延迟,但其仅完成从内存中存取数据的搬移工作,不对数据有效载荷进行处理,也并不为数据中心应用程序提供自定义处理能力. 目前的相关工作主要通过改进硬件网卡架构或使用智能网卡的方式增强其可编程能力.

    苏黎世联邦理工学院提出的sPIN[8]基于网内计算的思想,在RDMA的基础更进一步,其采用基于并行多核HPU(handler processing units)形式的网卡架构,直接将用户定义的简单的数据包处理操作卸载到网卡上来增强其可编程能力. 微软提出的StRoM[36]在sPIN数据包级处理的基础上,为用户提供更高级别的数据抽象(关注有效载荷)和编程抽象(从硬件描述语言提升到C/C++). 在网卡架构上,StRoM在RoCEv2协议栈和DMA引擎之间的数据路径上放置Kernel可编程组件以支持从网卡直接执行遍历远程数据结构等存储访问和处理操作. sPIN和StRoM直接部署在网卡数据路径上(on-path),加州大学伯克利分校在HotNets 2020提出的RMC[101]则基于智能网卡设计off-path的远程内存操作. RMC允许应用程序自定义扩展的单边操作,以满足实际应用中复杂的访问模式(如扫描远程数据结构),但RMC尚未实现,文献[101]仅对其部署挑战和可行性进行了论证.

    除上述面向数据中心应用的通用性优化,针对AI/HPC等新兴数据中心工作负载,阿里云在2021年提出的弹性RDMA(elastice RDMA,eRDMA)[103]基于iWARP支持AI/HPC应用程序,并通过自研拥塞控制算法实现有损网络中的良好性能,通过大规模RDMA加速显著提高分布式计算通信效率. 谷歌在2023年公布的Falcon[105]同样针对AI/HPC等场景,在UDP和RDMA协议间增加Falcon层,由Falcon事务处理层将上层RDMA verbs操作映射为请求-响应事务并保证RDMA顺序交付语义,由Falcon数据包转发层实现基于延迟的拥塞控制和多路径负载平衡等.

    eRDMA和Falcon基于RDMA进行扩展改进,亚马逊在Micro 2020中提出的可扩展可靠数据报(scalable reliable datagram,SRD)[102]和UEC联盟[129]在2023年提出的超以太网传输协议(ultra Ethernet transport,UET)[106]则认为RoCEv2在拥塞控制算法、丢包处理、依赖PFC,RC可扩展性等方面存在各种问题,无法满足AI和HPC对端到端数量、高带宽和分布式计算性能(如最小化尾部延迟)的需求,并重新设计传输协议以取代RoCEv2.

    目前,以太网RDMA网卡主要有基于ASIC,FPGA,SoC和软件实现4种方式,表10对工业界实现的商用以太网RDMA网卡进行了统计汇总. 除了表10中所示的基于RoCEv2或iWARP的网卡,阿里云自研eRDMA部署在其神龙架构MOC卡上[132],Amazon自研的SRD协议[102]部署在其AWS Nitro网卡上[133-134]. 以太网RDMA也存在软件形式的实现,如得克萨斯大学奥斯汀分校SRoCE[135]在用户空间实现RDMA;Linux内核中也实现softRoCE[136]和softiWARP[137]. 此外,学术界常采用FPGA对设计网卡进行原型验证,如SRNIC[14],StaR[59]等等.

    表  10  商用以太网RDMA网卡实现
    Table  10.  Commercial Ethernet RDMA NIC Implementation
    发布年份实现方式厂商代表产品支持协议应用场景
    2020ASICIntel100GbE E810[15]RoCEv2,
    iWARP
    HPC-AI、NFV、存储和混合云等高性能服务器工作负载、
    带宽密集型工作负载
    2021ASICNVIDIA Mellanox400GbE ConnectX-7[16]InfiniBand,RoCEv2超大规模数据中心、HPC、人工智能、科学计算
    2021ASICMarvellFastLinQ 100GbE QL45000系列[17]RoCEv1,
    RoCEv2,
    iWARP
    企业级数据中心、共有和私有云、托管服务提供商、电信
    2021FPGAXilinx100GbE ERNIC[80]RoCEv2传感器数据采集、视频和图像捕获和传输、运行 RoCEv2的远程存储节点
    2022ASICChelsio400GbE Terminator7[19]RoCEv2,
    iWARP
    数据中心网络、HPC、云计算、网络存储、流媒体应用、边缘产品
    2022NP-SoCHuawei
    Hisilicon
    基于Hi1822的200GbE SP670[18]RoCEv2OVS加速、DPI加速、虚拟化加速
    2023ASICBroadcom200GbE BCM957508-P1200G[20]RoCEv2云和Web2. 0数据中心服务器、企业级数据中心、HPC集群、机器学习集群、
    私有云、多节点容器平台、NVMe存储分解(NVMe oF)数据库服务器
    2023SoCAMD200GbE Pensando DSC2-200[130]RoCEv2为大型云服务提供商和超大规模服务系统(如Microsoft Azure,NetApp)
    提供计算、网络、存储和安全服务
    2023SoCNVIDIA Mellanox400GbE Bluefield-3 DPU[131]RoCEv2云网络、存储、安全、HPC/AI、电信与边缘计算
    下载: 导出CSV 
    | 显示表格

    基于ASIC实现的RDMA网卡可以最大程度发挥RDMA高带宽低延迟的性能优势,如Mellanox最新的ConnectX-7产品速度高达400Gbps,可用于AI、科学计算及大规模云数据中心工作负载,在工业界批量生产最具性价比. 但基于ASIC实现的RDMA网卡在应用于复杂多变或新兴场景时存在功能固定、使用灵活性较差的问题. 此外,ASIC的开发设计和验证成本高昂、周期较长,尤其是对于需要硬件卸载TCP/IP的iWARP网卡复杂度更甚,如Chelsio T7[19]与上一代T6[138]产品发布间隔长达6年.

    基于FPGA实现的RDMA网卡可以在兼容较好性能的同时保证一定的灵活性和可编程性,且处理资源丰富,开发周期较短,因此常用在学术界进行RDMA功能原型验证. 在工业界,Xilinx ERNIC[80]基于FPGA实现嵌入式RDMA,可用于边缘端传感器视频图像数据传输. 但FPGA编程难度仍较高,且在大规模部署时成本昂贵,在数据中心领域FPGA实现的RDMA网卡相关产品较少.

    基于SoC的网卡则往往集成包括ASIC、FPGA、软核等众多逻辑资源可用于集成RDMA功能,如使用NP(network processor)-SoC的华为Hi1822[18]在其NP流处理核心上实现RDMA逻辑,相对FPGA在灵活度和编程复杂度上更具优势,NVIDIA BlueField-3[131]则直接集成ConnectX-7控制器以支持RDMA功能. 相比基于ASIC和FPGA实现的RDMA网卡,基于SoC的网卡不仅仅实现RDMA,而往往集成硬件加速器以支持安全、存储等更丰富的功能.

    软件形式的RDMA实现性能最差,但不需要网卡、交换机等硬件支持,从而可以最低成本部署并兼容互通其他形式实现的RDMA网卡. 选择合适的网卡实现形式需要根据具体应用场景、性能和成本等综合考量.

    在商用网卡普遍黑盒的情况下,对网卡进行测试和评估十分必要. 一方面,数据中心运营商需要使用网卡供应商提供的无法访问的高度定制的硬件以及特定的系统配置,因此其在实际部署RDMA网卡之前需要进行充分的测试以避免暂停帧风暴等异常情况出现[12]. 另一方面,使用不同的RDMA选项在吞吐量方面最高会产生70倍的差异,在占用主机CPU方面可相差3.2倍[74],针对不同的应用场景和功能需求选择合适的原语、请求速度、消息大小、完成通知频率等以充分发挥硬件网卡的性能同样需要大量实际测试评估.

    RDMA网卡评估指标主要包括带宽、延迟、每秒消息数(messages per second,MPS)、CPU利用率等,对其评估主要有以下2种方式[12].

    1)运行一组代表性应用程序工作负载. 上海交通大学基于ConnectX-4网卡搭建实际本地机架级RDMA集群[76],并运行流行的大规模在线事务处理(online transaction processing,OLTP)工作负载TPC-C[139](模拟订单处理应用程序,CPU密集型)和SmallBank[140](模拟银行应用程序,网络密集型),对不同RDMA原语和传输方式的带宽和延迟进行对比评估. 南加州大学[141]将RDMA中工作负载分为多请求单响应(如负载平衡算法等[142])、单请求多响应(如分布式键值存储等[143])、多对多(如分离式操作系统等[66])3类,并基于ConnectX-3网卡搭建CloudLab集群[144],对不同RDMA原语的带宽进行测试评估. 威斯康星大学麦迪逊分校[69]同样基于CloudLab搭建集群并测试评估集群负载和配置对网卡带宽、延迟、CPU利用率的影响.

    此外,约翰斯霍普金斯大学在SIGCOMM 2023提出的Lumina[119]为用户提供流量生成器以生成代表性的RDMA工作负载,并结合可编程交换机注入各种网络事件,从而线速模拟不同的网络场景. Lumina将镜像数据包转储到专用服务器上以离线方式针对性分析RDMA的传输行为,以对网卡正确性和性能进行测试评估.

    2)使用性能评估工具. 在目前的性能评估工具中,NVIDIA Mellanox提供的perftest[145]开源测试工具集广泛用于IB和RoCE的软硬件调优、性能和功能(建链等)测试评估,提供的NEO-Host[146]管理软件向上提供大量诊断计数器等可用于数据中心运营商监控或配置网卡. 俄亥俄州超算中心开源的qperf工具[147]及俄亥俄州立大学开源的OSU(Ohio State University)微基准测试套件[148]同样支持对IB和RoCE进行带宽、延迟等性能测试. 卡内基梅隆大学[74]提供的rdma_bench开源软件[149]可用于测评RDMA操作性能及CPU和PCIe开销.

    以应用广泛的perftest为例,perftest是基于uverbs编写的基准测试程序,使用客户端-服务器(client-server)架构. 在客户端提供ib_write_bw()等函数用于RDMA操作的带宽、延迟测试,并由perftest进一步调用rdma-core核心库函数中ibv_reg_mr(),ibv_post_send()等与内核态或直接与硬件交互,完成从设备初始化、资源注册、连接建立、下发WR、获取WC等整个RDMA通信流程. 用户只需选择适当的测试参数(消息传输数据量、连接类型等)和测试命令,由perftest使用CPU周期计数器获取时间戳并进行带宽、延迟的计算,如Flor[37]用其对数据中心异构网卡互通进行性能评估,RoGUE[6]用其对网卡CPU利用率进行评估等等. 但perftest并不模拟实际流量,无法预测实际应用负载的工作情况.

    不同于上述工具单独测试硬件网卡,字节跳动在NSDI 2022提出的Collie[12]和在NSDI 2023提出的Hostping[40]诊断工具则综合考虑整个RDMA子系统进行性能瓶颈诊断. Collie联合端系统上的网卡、内存以及PCIe等硬件设备,构建了1个包含主机各种流量、消息大小、连接数以及内存区域配置的全面搜索空间,并基于硬件网卡提供的性能、诊断计数器使用模拟退火算法和触发异常条件的最小特征集(minimal feature set,MFS)算法来寻找触发性能异常(异常低吞吐量、PFC暂停帧风暴)的工作负载. 其后续工作Hostping则关注主机内网络瓶颈的监测和诊断. Hostping通过网卡和主机内端点间的环回测试测量主机内延迟和带宽作为瓶颈诊断指标,并利用硬件监视器和数据分析器快速诊断、识别和响应主机内网络瓶颈. 此外,很多研究工作使用Gem5模拟器[8,57-58,60]等模拟仿真网卡架构,并联合小规模环境(testbed)实际测试和大规模NS-3[6,13-14,21,29,39,44,51,65,150]或OMNeT++[7,68,151]网络模拟器仿真模拟相结合的方式对网卡性能、拥塞控制算法等进行评估.

    本文首先从以太网RDMA网卡的功能出发,对其通用模块架构进行了总结,并对比分析了其关键部件的功能实现方式;将以太网RDMA网卡的优化分为面向存储资源、可靠传输和应用相关3方面,并结合现有研究工作对相关优化技术进行详细的分类与剖析;最后对网卡的典型实现、性能评估方法和评估工具进行了汇总. 虽然现有的研究工作已采用多种优化方案来增强以太网RDMA网卡的扩展能力及其对网络和上层应用的适配能力,但在数据中心网络规模不断扩大、应用负载流量特性快速变化的情况下,以下3方面问题仍有待进一步研究.

    1)软硬件协同方面. 当前优化方式中,在硬件层面改进网卡架构虽可以实现较好的性能,但需增加新的网卡处理模块,难以实际应用部署,且不利于异构网卡互联互通. 在软件层面上载硬件功能、添加软件中间层等可降低硬件复杂度或简化用户编程,但会额外引入CPU开销降低性能,因此如何进行高效的软硬协同和跨层设计仍是在硬件高性能和软件高可用性之间折中权衡的关键问题.

    2)网络传输方面. 对于拥塞控制,无论RDMA运行于无损或有损网络,高效的拥塞控制对于数据中心网络传输性能都十分重要. 虽然已有较多相关研究,但尚无一种灵活、健壮且实施良好的拥塞控制机制可适配各种场景[38]. 在没有规范性拥塞管理的情况下,不同供应商甚至同一供应商的不同RDMA网卡间很难实现互操作性. 对于PFC和重传机制,基于PFC构造的无损网络往往采用go-back-N重传,但PFC会带来死锁、队头阻塞、拥塞扩散等一系列问题,阻碍了大规模数据中心网络的构建;另一方面,go-back-N不支持多路径或无序传输,且重传代价过于昂贵[1]. IRN[7]等采用的选择重传(ConnectX-6中已支持选择重传)或许是未来消除以太网RDMA对PFC依赖的有效途径.

    3)应用适配方面. 目前RDMA提供的单边操作类型难以满足众多应用需求,通过在网卡上卸载更多的数据操作[8,36]和为用户提供扩展的单边原语或新型队列[85]等以满足应用需要或简化RDMA编程等是研究趋势. 同时,随着数据中心规模的扩大和云化,以太网RDMA如何适配AI/HPC等新兴应用、如何实施合理的多租户性能隔离方案以及保障RDMA远程访问的安全性等问题变得十分重要. 此外,将RDMA扩展应用于区块链[152]、分布式机器学习[153]、数字超声数据采集系统[154]、射电天文系统[155]等数据中心之外的场景也值得探索.

    作者贡献声明:黄曼蒂和李韬共同负责学术界和工业界相关工作的搜集整理,论文整体架构的设计、撰写和修改;杨惠指导了以太网RDMA网卡优化部分并参与论文的完善和修改;李成龙指导了以太网RDMA网卡架构部分并参与论文整体架构的设计;张毓涛负责参考文献梳理,以及面向可靠传输优化中拥塞控制部分的补充;孙志刚负责论文审阅并提出指导意见. 黄曼蒂和李韬为共同第一作者.

    致谢 在此对审稿专家和编辑为本文提出的诸多宝贵建议表示衷心的感谢!

  • 图  1   MoE系统优化技术分类

    Figure  1.   Taxonomy of MoE systems optimization techniques

    图  2   MoE 模型架构

    Figure  2.   The architecture of MoE model

    图  3   MoE专家并行执行流程示例

    Figure  3.   An example of expert parallel execution flow of MoE

    图  4   MoE架构transformer模型

    Figure  4.   MoE-architectured transformer model

    图  5   核心研究方向与挑战对应关系

    Figure  5.   The relationship between core research directions and challenges

    图  6   MoE模型参数卸载示意图

    Figure  6.   Illustration of parameter offloading in MoE models

    图  7   一种典型的分层All-to-All通信方法

    Figure  7.   A typical hierarchical All-to-All communication approach

    图  8   张量并行组冗余通信数据消除

    Figure  8.   Elimination of redundant communication data in tensor parallel group

    图  9   强制限制节点间通信的数据量方法

    Figure  9.   Method of enforcing data volume limitation in inter-node communication

    图  10   专家动态容量

    Figure  10.   Dynamic capacity of experts

    图  11   专家放置策略示意图

    Figure  11.   Illustration of Expert placement strategy

    图  12   利用基于统计的激活预测方法分配资源

    Figure  12.   Resources allocation utilizing statistical-based activation prediction method

    图  13   基于机器学习的专家激活预测方法示意图

    Figure  13.   Illustration of machine learning-based expert activation prediction

    图  14   MoE层前向流水并行执行的时间线示例

    Figure  14.   An example timeline of forward propagation pipeline parallelism in an MoE layer

    图  15   数据、张量和专家并行

    Figure  15.   Data, tensor and expert parallelism

    图  16   自适应并行策略概览

    Figure  16.   Overview of adaptive parallel strategy

    表  1   MoE与集成学习对比

    Table  1   Comparison of MoE and Ensemble Learning

    类别 MoE 集成学习
    模型集成 都涉及整合多个模型结果以提高预测精度,都利用不同模型的优势来解决复杂问题
    应用目的 不仅提高模型预测精度和泛化能力,还提高模型收敛速度和执行效率 提高模型预测精度和泛化能力
    模型结构 由多个专家和门控网络组成,每个专家负责处理模型的一部分子任务,门控网络决定专家和子任务的映射关系 通常由多个独立训练的相同或不同算法模型构成
    任务分解 将复杂任务分解为相对简单的子任务,专家网络专注于处理特定子任务 通常不涉及任务分解,多个学习器同时处理整个任务,通过投票、加权或平均等方法整合结果
    训练方法 门控网络学习将任务分配给相应专家网络,专家网络专注于特定任务学习 各学习器独立训练,可使用不同的数据或算法,不涉及可学习的任务分配网络
    应用场景 适用于复杂且任务可以分解为不同子任务的场景 适用于提升模型泛化能力和鲁棒性,尤其在数据或者特征有限的情况
    稀疏性 只有少量专家在给定的时间被激活,提高计算效率 通常不具有稀疏性,所有模型都参与最终的预测
    动态性 根据输入数据动态激活最适合的专家网络 通常不具有动态性,模型的集成是静态的,且在训练过程就已确定
    下载: 导出CSV

    表  2   符号及其描述

    Table  2   Description of Symbols

    符号描述
    G每个节点内GPU的数量
    N节点总数
    PGPU设备总数P=GN
    下载: 导出CSV

    表  3   MoE系统优化的代表工作总结

    Table  3   Summary of Representative Works on MoE System Optimization

    类型 子类 适用场景 文献
    [69] [56] [57] [58] [63] [78] [109] [96] [126] [94] [95] [101]
    内存占用内存卸载设备内存有限,模型参数规模大,模型推理
    参数压缩
    通信延迟分层通信通用,特别适合小批量数据通信
    冗余消除模型推理或通过张量并行训练、推理
    其他*通用,Janus除外
    拓扑敏感路由模型训练,特别是网络拓扑复杂的集群
    计算效率动态容量通用,特别是专家数量多且偏好差异大的模型
    专家负载负载均衡损失用于训练,路由均衡门控均可
    设备负载专家负载差异明显、变化显著,设备数量多
    激活预测模型推理,但通常需要训练过程的统计数据
    静态流水非极致性能需求
    自适应流水模型规模大,执行开销大,极致性能需求
    内核计算通用
    并行扩展静态并行同一模型频繁使用,训练、推理开销不大
    自适应并行极致性能需求,模型频繁变化,大规模训练推理
    下载: 导出CSV
  • [1]

    Kaplan J, McCandlish S, Henighan T, et al. Scaling laws for neural language models[J]. arXiv preprint, arXiv: 2001.08361, 2020

    [2]

    Raffel C, Shazeer N, Roberts A, et al. Exploring the limits of transfer learning with a unified text-to-text transformer[J]. Journal of Machine Learning Research, 2020, 21(140): 1−67

    [3]

    Brown T, Mann B, Ryder N, et al. Language models are few-shot learners[C] //Proc of the 34th Int Conf on Neural Information Processing Systems. New York: Curran Associates, 2020: 1877−1901

    [4]

    Rae J W, Borgeaud S, Cai T, et al. Scaling language models: Methods, analysis & insights from training Gopher[J]. arXiv preprint, arXiv: 2112.11446, 2022

    [5]

    Chowdhery A, Narang S, Devlin J, et al. PaLM: Scaling language modeling with Pathways[J]. Journal of Machine Learning Research, 2023, 24(240): 1−113

    [6]

    Jacobs R A, Jordan M I, Nowlan S J, et al. Adaptive mixtures of local experts[J]. Neural Computation, 1991, 3(1): 79−87 doi: 10.1162/neco.1991.3.1.79

    [7]

    Riquelme C, Puigcerver J, Mustafa B, et al. Scaling vision with sparse mixture of experts[C] //Proc of the 35th Int Conf on Neural Information Processing Systems. New York: Curran Associates, 2021: 8583−8595

    [8]

    Fan Zhiwen, Sarkar R, Jiang Ziyu, et al. M3ViT: Mixture-of-experts vision transformer for efficient multi-task learning with model-accelerator co-design[C] //Proc of the 36th Int Conf on Neural Information Processing Systems. New York: Curran Associates, 2022: 28441−28457

    [9]

    Li Bo, Shen Yifei, Yang Jingkang, et al. Sparse mixture-of-experts are domain generalizable learners[J]. arXiv preprint, arXiv: 2206.04046, 2023

    [10]

    Xue Fuzhao, Shi Ziji, Wei Futao, et al. Go wider instead of deeper[C] //Proc of the 36th AAAI Conf on Artificial Intelligence. Palo Alto, CA: AAAI, 2022: 8779−8787

    [11]

    Shen Sheng, Yao Zhewei, Li Chunyuan, et al. Scaling vision-language models with sparse mixture of experts[J]. arXiv preprint, arXiv: 2303.07226, 2023

    [12]

    Dai Yong, Tang Duyu, Liu Liangxin, et al. One model, multiple modalities: A sparsely activated approach for text, sound, image, video and code[J]. arXiv preprint, arXiv: 2205.06126, 2022

    [13]

    Mustafa B, Riquelme C, Puigcerver J, et al. Multimodal contrastive learning with LIMoE: The language-image mixture of experts[C] //Proc of the 36th Int Conf on Neural Information Processing Systems. New York: Curran Associates, 2022: 9564−9576

    [14]

    Kumatani K, Gmyr R, Salinas F C, et al. Building a great multi-lingual teacher with sparsely-gated mixture of experts for speech recognition[J]. arXiv preprint, arXiv: 2112.05820, 2022

    [15]

    You Zhao, Feng Shulin, Su Dan, et al. SpeechMoE: Scaling to large acoustic models with dynamic routing mixture of experts[J]. arXiv preprint, arXiv: 2105.03036, 2021

    [16]

    You Z, Feng S, Su D, et al. Speechmoe2: Mixture-of-experts model with improved routing[C] //Proc of the 2022 IEEE Int Conf on Acoustics, Speech and Signal Processing. Piscataway, NJ: IEEE, 2022: 7217−7221

    [17]

    Li Dingcheng, Li Xu, Wang Jun, et al. Video recommendation with multi-gate mixture of experts soft actor critic[C] //Proc of the 43rd Int ACM SIGIR Conf on Research and Development in Information Retrieval. New York: ACM, 2020: 1553−1556

    [18] 曹泽麟,徐君,董振华,等. 基于多任务学习的位置倾向性得分预测算法[J]. 计算机研究与 发展,2023,60(1):85−94

    Cao Zelin, Xu Jun, Dong Zhenhua, et al. Prediction of the positional propensity scores based on multi task learning[J]. Journal of Computer Research and Development, 2023, 60(1): 85−94 (in Chinese)

    [19]

    Fedus W, Zoph B, Shazeer N. Switch transformers: Scaling to trillion parameter models with simple and efficient sparsity[J]. Journal of Machine Learning Research, 2022, 23(120): 1−39

    [20]

    Shazeer N, Mirhoseini A, Maziarz K, et al. Outrageously large neural networks: The sparsely-gated mixture-of-experts Layer[J]. arXiv preprint, arXiv: 1701.06538, 2017

    [21]

    Zoph B, Bello I, Kumar S, et al. ST-MoE: Designing stable and transferable sparse expert models[J]. arXiv preprint, arXiv: 2202.08906, 2022

    [22]

    Lee-Thorp J, Ainslie J. Sparse mixers: Combining MoE and mixing to build a more efficient bert[J]. arXiv preprint, arXiv: 2205.12399, 2022

    [23]

    Kudugunta S, Huang Y, Bapna A, et al. Beyond distillation: Task-level mixture-of-experts for efficient inference[J]. arXiv preprint, arXiv: 2110.03742, 2021

    [24]

    Du Nan, Huang Yanping, Dai A M, et al. GLaM: Efficient scaling of language models with mixture-of-experts[C] //Proc of the 39th Int Conf on Machine Learning. New York: PMLR, 2022: 5547−5569

    [25]

    Lou Yuxuan, Xue Fuzhao, Zheng Zangwei, et al. Cross-token modeling with conditional computation[J]. arXiv preprint, arXiv: 2109.02008, 2022

    [26]

    Lin Junyang, Men Rui, Yang An, et al. M6: A chinese multimodal pretrainer[J]. arXiv preprint, arXiv: 2103.00823, 2021

    [27]

    Lin Junyang, Yang An, Bai Jinze, et al. M6−10T: A sharing-delinking paradigm for efficient multi-trillion parameter pretraining[J]. arXiv preprint, arXiv: 2110.03888, 2021

    [28]

    Ren Xiaozhe, Zhou Pingyi, Meng Xinfan, et al. Pangu-Σ: Towards trillion parameter language model with sparse heterogeneous computing[J]. arXiv preprint, arXiv: 2303.10845, 2023

    [29]

    Jiang A Q, Sablayrolles A, Roux A, et al. Mixtral of experts[J]. arXiv preprint, arXiv: 2401.04088, 2024

    [30]

    Nguyen H D, Chamroukhi F. Practical and theoretical aspects of mixture‐of‐experts modeling: An overview[J]. Wiley Interdisciplinary Reviews: Data Mining and Knowledge Discovery, 2018, 8(4): e1246 doi: 10.1002/widm.1246

    [31]

    Masoudnia S, Ebrahimpour R. Mixture of experts: A literature survey[J]. Artificial Intelligence Review, 2014, 42(2): 275−293 doi: 10.1007/s10462-012-9338-y

    [32]

    Yuksel S E, Wilson J N, Gader P D. Twenty years of mixture of experts[J]. IEEE Transactions on Neural Networks and Learning Systems, 2012, 23(8): 1177−1193 doi: 10.1109/TNNLS.2012.2200299

    [33]

    Fedus W, Dean J, Zoph B. A review of sparse expert models in deep learning[J]. arXiv preprint, arXiv: 2209.01667, 2022

    [34]

    Liu Tianlin, Blondel M, Riquelme C, et al. Routers in vision mixture of experts: An empirical study[J]. arXiv preprint, arXiv: 2401.15969, 2024

    [35]

    Cai Weilin, Jiang Juyong, Wang Fan, et al. A survey on mixture of experts[J]. arXiv preprint, arXiv: 2407.06204, 2024

    [36]

    Lepikhin D, Lee H, Xu Yuandong, et al. GShard: Scaling giant models with conditional computation and automatic sharding [J]. arXiv preprint, arXiv: 2006.16668, 2020

    [37]

    Zhang Zhengyan, Lin Yankai, Liu Zhiyuan, et al. MoEfication: Transformer feed-forward layers are mixtures of experts[J]. arXiv preprint, arXiv: 2110.01786, 2021

    [38]

    Zuo Simiao, Zhang Qingru, Liang Chen, et al. MoEBERT: from bert to mixture-of-experts via importance-guided adaptation[J]. arXiv preprint, arXiv: 2204.07675, 2022

    [39]

    Zhu Tong, Qu Xiaoye, Dong Daize, et al. LLaMA-MoE: Building mixture-of-experts from LLaMA with continual pre-training[J]. arXiv preprint, arXiv: 2406.16554, 2024

    [40]

    Dai Damai, Deng Chenqi, Zhao Chenggang, et al. DeepSeekMoE: Towards ultimate expert specialization in mixture-of-experts language models[J]. arXiv preprint, arXiv: 2401.06066, 2024

    [41]

    Xue Fuzhao, Zheng Zian, Fu Yao, et al. OpenMoE: An early effort on open mixture-of-experts language models[J]. arXiv preprint, arXiv: 2402.01739, 2024

    [42]

    xAI. Open release of Grok−1[EB/OL]. [2024-08-02]. https://x.ai/blog/ grok-os

    [43]

    Reid M, Savinov N, Teplyashin D, et al. Gemini 1.5: Unlocking multimodal understanding across millions of tokens of context[J]. arXiv preprint, arXiv: 2403.05530, 2024

    [44]

    Snowflake AI Research Team. Snowflake Arctic: The best LLM for enterprise AI — Efficiently intelligent, truly open[EB/OL]. [2024-08-02]. https://www.snowflake.com/en/blog/arctic-open-efficient-foundati-on-language-models-snowflake/

    [45]

    The Mosaic Research Team. Introducin DBRX: A new state-of-the-art open LLM[EB/OL]. 2024 [2024-08-02]. https://www.databricks.com/blog/introducing-dbrx-new-state-art-open-llm

    [46]

    Choquette J, Gandhi W, Giroux O, et al. Nvidia A100 tensor core GPU: Performance and innovation[J]. IEEE Micro, 2021, 41(2): 29−35 doi: 10.1109/MM.2021.3061394

    [47]

    Choquette J. Nvidia Hopper H100 GPU: Scaling performance[J]. IEEE Micro, 2023, 43(3): 9−17 doi: 10.1109/MM.2023.3256796

    [48]

    Ren Jie, Rajbhandari S, Aminabadi R Y, et al. ZeRO-Offload: Democratizing billion-scale model training[C] //Proc of the 2021 USENIX Annual Technical Conf. Berkeley, CA: USENIX Association, 2021: 551−564

    [49]

    Chen Xioaming, Chen D Z, Hu X S. MoDNN: Memory optimal DNN training on GPUs[C] //Proc of the 21st conf & Exhibition on Design, Automation & Test in Europe. Piscataway, NJ: IEEE, 2018: 13−18

    [50]

    Shriram S B, Garg A, Kulkarni P. Dynamic memory management for GPU-based training of deep neural networks[C] //Proc of the 33rd IEEE Int Parallel and Distributed Processing Symp. Piscataway, NJ: IEEE, 2019: 200−209

    [51]

    Ren Jie, Luo Jiaolin, Wu Kai, et al. Sentinel: Efficient tensor migration and allocation on heterogeneous memory systems for deep learning[C] //Proc of the 27th IEEE Transactions Symp on High Performance Computer Architecture. Piscataway, NJ: IEEE, 2021: 598−611

    [52]

    Huang C C, Jin Gu, Li Jinyang. SwapAdvisor: Pushing deep learning beyond the GPU memory limit via smart swapping[C] //Proc of the 25th Int Conf on Architectural Support for Programming Languages and Operating Systems. New York: ACM, 2020: 1341−1355

    [53]

    Huang Haiyang, Ardalani N, Sun Anna, et al. Towards MoE deployment: Mitigating inefficiencies in mixture-of-expert (MoE) inference[J]. arXiv preprint, arXiv: 2303.06182, 2023

    [54]

    Eliseev A, Mazur D. Fast inference of mixture-of-experts language models with offloading[J]. arXiv preprint, arXiv: 2312.17238, 2023

    [55]

    Kong Rui, Li Yuanchun, Feng Qingtian, et al. Serving MoE models on resource-constrained edge devices via dynamic expert swapping[J]. arXiv preprint, arXiv: 2308.15030, 2023

    [56]

    Hwang R, Wei Jianyu, Cao Shijie, et al. Pre-gated MoE: An algorithm-system co-design for fast and scalable mixture-of-expert inference[J]. arXiv preprint, arXiv: 2308.12066, 2023

    [57]

    Shen Liang, Wu Zhihua, Gong Weibao, et al. SE-MoE: A scalable and efficient mixture-of-experts distributed training and inference system[J]. arXiv preprint, arXiv: 2205.10034, 2023

    [58]

    Liu Juncai, Wang J H, Jiang Yimin. Janus: A unified distributed training framework for sparse mixture-of-experts models[C] //Proc of the 37th ACM SIGCOMM 2023 Conf. New York: ACM, 2023: 486−498

    [59]

    Kim Y, Lim H, Han D. Scaling beyond the GPU memory limit for large mixture-of-experts model training[C] //Proc of the 41st Int Conf on Machine Learning. New York: PMLR, 2024: 24342−24353

    [60]

    Yi Rongjie, Guo Liwei, Wei Shiyun, et al. EdgeMoE: Fast on-device inference of MoE-based large language models[J]. arXiv preprint, arXiv: 2308.14352, 2023

    [61]

    Xue Leyang, Fu Yao, Lu Zhan, et al. MoE-Infinity: Activation-aware expert offloading for efficient MoE serving[J]. arXiv preprint, arXiv: 2401.14361, 2024

    [62]

    Kamahori K, Gu Yile, Zhu Kan, et al. Fiddler: CPU-GPU orchestration for fast inference of mixture-of-experts models[J]. arXiv preprint, arXiv: 2402.07033, 2024

    [63]

    Zhang Zheng, Xia Yaqi, Wang Hulin, et al. MPipeMoE: Memory efficient MoE for pre-trained models with adaptive pipeline parallelism[C] //Proc of the 37th IEEE Parallel and Distributed Processing Symp. Piscataway, NJ: IEEE, 2023: 167−177

    [64]

    Jain P, Jain A, Nrusimha A, et al. Checkmate: Breaking the memory wall with optimal tensor rematerialization[C/OL] //Proc of the 3rd Machine Learning and Systems. 2020 [2024-08-02]. https://proceedings.mlsys.org/paper_files/paper/2020/file/0b816ae8f06f8dd3543dc3d9ef196cab-Paper.pdf

    [65]

    Chen Tianqi, Xu Bing, Zhang Chiyuan, et al. Training deep nets with sublinear memory cost[J]. arXiv preprint, arXiv: 1604.06174. 2016

    [66]

    Peng Xuan, Shi Xuanhua, Dai Hulin, et al. Capuchin: Tensor-based GPU memory management for deep learning[C] //Proc of the 25th Int Conf on Architectural Support for Programming Languages and Operating Systems. New York: ACM, 2020: 891−905

    [67]

    Wang Linnan, Ye Jinmian, Zhao Yiyang, et al. SuperNeurons: Dynamic GPU memory management for training deep neural networks[J]. ACM SIGPLAN Notices, 2018, 53(1): 41−53 doi: 10.1145/3200691.3178491

    [68]

    Kim Y J, Awan A A, Muzio A, et al. Scalable and efficient MoE training for multitask multilingual models[J]. arXiv preprint, arXiv: 2109.10465, 2021

    [69]

    Singh S, Ruwase O, Awan A A, et al. A hybrid tensor-expert-data parallelism approach to optimize mixture-of-experts training[C] //Proc of the 37th Int Conf on Supercomputing. New York: ACM, 2023: 203−214

    [70]

    Heo T, Rashidi S, Man C, et al. Exploring memory expansion designs for training mixture-of-experts models[C/OL] //Proc of the 1st Workshop on Hot Topics in System Infrastructure. 2024 [2024-08-02]. https:// hotinfra23.github.io/papers/hotinfra23-paper4.pdf

    [71]

    Hinton G, Vinyals O, Dean J. Distilling the knowledge in a neural network[J]. arXiv preprint, arXiv: 1503.02531, 2015

    [72]

    Molchanov P, Tyree S, Karras T, et al. Pruning convolutional neural networks for resource efficient inference[J]. arXiv preprint, arXiv: 1611.06440, 2016

    [73]

    Han Song, Mao Huizi, Dally W J. Deep compression: Compressing deep neural networks with pruning, trained quantization and Huffman coding[J]. arXiv preprint, arXiv: 1510.00149, 2016

    [74]

    Dong Zhen, Yao Zzhewei, Arfeen D, et al. HAWQ-V2: Hessian aware trace-weighted quantization of neural networks[C] //Proc of the 34th Int Conf on Neural Information Processing Systems. New York: Curran Associates, 2020: 18518−18529

    [75]

    Micikevicius P, Narang S, Alben J, et al. Mixed precision training[J]. arXiv preprint, arXiv: 1710.03740, 2018

    [76]

    Dabre R, Fujita A. Recurrent stacking of layers in neural networks: An application to neural machine translation[J]. arXiv preprint, arXiv: 2106.10002, 2021

    [77]

    Lan Zhenzhong, Chen Mingda, Goodman S, et al. ALBERT: A lite BERT for self-supervised learning of language representations[J]. arXiv preprint, arXiv: 1909.11942, 2020

    [78]

    Rajbhandari S, Li Conglong, Yao Zhewei, et al. DeepSpeed-MoE: Advancing mixture-of-experts inference and training to power next-generation ai scale[C] //Proc of the 39th Int Conf on Machine Learning. New York: PMLR, 2022: 18332−18346

    [79]

    Koishekenov Y, Berard A, Nikoulina V. Memory-efficient NLLB−200: Language-specific expert pruning of a massively multilingual machine translation model[J]. arXiv preprint, arXiv: 2212.09811, 2022

    [80]

    Lu Xudong, Liu Qi, Xu Yuhui, et al. Not all experts are equal: Efficient expert pruning and skipping for mixture-of-experts large language models[J]. arXiv preprint, arXiv: 2402.14800, 2024

    [81]

    Muzio A, Sun A, He C. SEER-MoE: Sparse expert efficiency through regularization for mixture-of-experts[J]. arXiv preprint, arXiv: 2404.05089, 2024

    [82]

    Chowdhury M N R, Wang Meng, Maghraoui K E, et al. A provably effective method for pruning experts in fine-tuned sparse mixture-of-experts[J]. arXiv preprint, arXiv: 2405.16646, 2024

    [83]

    Liu Enshu, Zhu Junyi, Lin Zinan, et al. Efficient expert pruning for sparse mixture-of-experts language models: Enhancing performance and reducing inference costs[J]. arXiv preprint, arXiv: 2407.00945, 2024

    [84]

    Kim Y J, Fahim R, Awadalla H H. Mixture of quantized experts (MoQE): Complementary effect of low-bit quantization and robustness[J]. arXiv preprint, arXiv: 2310.02410, 2023

    [85]

    Frantar E, Alistarh D. QMoE: Practical sub−1-bit compression of trillion-parameter models[J]. arXiv preprint, arXiv: 2310.16795, 2023

    [86]

    Kim Y J, Henry R, Fahim R, et al. Who says elephants can't run: Bringing large scale MoE models into cloud scale production[J]. arXiv preprint, arXiv: 2211.10017, 2022

    [87]

    Kim Y J, Henry R, Fahim R, et al. FineQuant: Unlocking efficiency with fine-grained weight-only quantization for LLMs[J]. arXiv preprint, arXiv: 2308.09723, 2023

    [88]

    Imani H R, Amirany A, El-Ghazawi T. Mixture of experts with mixture of precisions for tuning quality of service[J]. arXiv preprint, arXiv: 2407.14417, 2024

    [89]

    Gao Zefeng, Liu Peiyu, Zhao Xin, et al. Parameter-efficient mixture-of-experts architecture for pre-trained language models[J]. arXiv preprint, arXiv: 2203.01104, 2022

    [90]

    He S, Fan R Z, Ding Liang, et al. Merging experts into one: Improving computational efficiency of mixture of experts[J]. arXiv preprint, arXiv: 2310.09832, 2023

    [91]

    Zhang Rongyu, Luo Yulin, Liu Jiaming, et al. Efficient deweahter mixture-of-experts with uncertainty-aware feature-wise linear modulation[C] //Proc of the 38th AAAI Conf on Artificial Intelligence. Palo Alto, CA: AAAI, 2024: 16812−16820

    [92]

    Chen Tianyu, Huang Shaohan, Xie Yuan, et al. Task-specific expert pruning for sparse mixture-of-experts[J]. arXiv preprint, arXiv: 2206.00277, 2022

    [93]

    Xue Fuzhao, He Xiaoxin, Ren Xiaozhe, et al. One student knows all experts know: From sparse to dense[J]. arXiv preprint, arXiv: 2201.10890, 2022

    [94]

    Li Jiamin, Jiang Yimin, Zhu Yibo, et al. Accelerating distributed MoE training and inference with Lina[C] //Proc of the 2023 USENIX Annual Technical Conf. Berkeley, CA: USENIX Association, 2023: 945−959

    [95]

    Nie Xiaonan, Zhao Pinxue, Miao Xupeng, et al. HetuMoE: An efficient trillion-scale mixture-of-expert distributed training system[J]. arXiv preprint, arXiv: 2203.14685, 2022

    [96]

    Hwang C, Cui Wei, Xiong Yifan, et al. Tutel: Adaptive mixture-of-experts at scale[C/OL] //Proc of the 6th Machine Learning and Systems. 2023 [2024-08-02]. https://proceedings.mlsys.org/paper_files/paper/2023/file/5616d34cf8ff73942cfd5aa922842556-Paper-mlsys2023.pdf

    [97]

    He Chaoyang, Zheng Suai, Zhang A, et al. SMILE: Scaling mixture-of-experts with efficient bi-level routing[J]. arXiv preprint, arXiv: 2212.05191, 2022

    [98]

    Shoeybi M, Patwary M, Puri R, et al. Megatron-LM: Training multi-billion parameter language models using model parallelism[J]. arXiv preprint, arXiv: 1909.08053, 2020

    [99]

    Yao Jinghan, Anthony Q, Shafi A, et al. Exploiting inter-layer expert affinity for accelerating mixture-of-experts model inference[C] //Proc of the 38th IEEE Int Parallel and Distributed Processing Symp. Piscataway, NJ: IEEE, 2024: 915−925

    [100]

    Liu Rui, Kim Y J, Muzio A, et al. Gating dropout: Communication-efficient regularization for sparsely activated transformers[C] //Proc of the 39th Int Conf on Machine Learning. New York: PMLR, 2022: 13782−13792

    [101]

    He Jiaao, Zhai Jidong, Antunes T, et al. FasterMoE: modeling and optimizing training of large-scale dynamic pre-trained models[C] //Proc of the 27th ACM SIGPLAN Symp on Principles and Practice of Parallel Programming. New York: ACM, 2022: 120−134

    [102]

    Chen Chang, Li Min, Wu Zhihua, et al. TA-MoE: Topology-aware large scale mixture-of-expert training[C] //Proc of the 36th Int Conf on Neural Information Processing Systems. New York: Curran Associates, 2022: 22173−22186

    [103]

    Zeng Zhiyuan, Xiong Deyi. SCoMoE: Efficient mixtures of experts with structured communication[C] //Proc of the 11th Int Conf on Learning Representations. Amherst, MA: OpenReview. net, 2023: 1−23

    [104]

    Kossmann F, Jia Zhihao, Aiken A. Optimizing mixture of experts using dynamic recompilations[J]. arXiv preprint, arXiv: 2205.01848, 2022

    [105]

    Zheng Bojian, Jiang Ziheng, Yu C H, et al. DietCode: Automatic optimization for dynamic tensor programs[C/OL] //Proc of the 5th Machine Learning and Systems. 2022 [2024-08-02]. https://proceedings.mlsys.org/paper_files/paper/2022/file/f89b79c9a28d4cae22ef9e557d9fa191-Paper.pdf

    [106]

    Zheng Zhen, Pan Zaifeng, Wang Dalin, et al. BladeDISC: Optimizing dynamic shape machine learning workloads via compiler approach[J]. Proceedings of ACM on Management of Data, 2023, 1(3): 1−29

    [107]

    Chen Simin, Wei Shiyi, Liu Cong, et al. DyCL: Dynamic neural network compilation via program rewriting and graph optimization[C] //Proc of the 32nd ACM SIGSOFT Int Symp on Software Testing and Analysis. New York: ACM, 2023: 614−626

    [108]

    Yu Feng, Li Guanglin, Zhao Jiacheng, et al. Optimizing dynamic-shape neural networks on accelerators via on-the-fly micro-kernel polymerization[C] //Proc of the 29th ACM Int Conf on Architectural Support for Programming Languages and Operating Systems. New York: ACM, 2024: 797−812

    [109]

    He Jiaao, Qiu Jiezhong, Zeng Aohan, et al. FastMoE: A fast mixture-of-expert training system[J]. arXiv preprint, arXiv: 2103.13262, 2021

    [110]

    Gale T, Narayanan D, Young C, et al. MegaBlocks: Efficient sparse training with mixture-of-experts[C/OL] //Proc of the 6th Machine Learning and Systems. 2023 [2024-08-02]. https://proceedings.mlsys.org/paper_files/paper/2023/file/5a54f79333768effe7e8927bcccffe40-Paper-mlsys2023.pdf

    [111]

    Zheng Ningxin, Jiang Huiqiang, Zhang Quanlu, et al. PIT: Optimization of dynamic sparse deep learning models via permutation invariant transformation[C] //Proc of the 29th Symp on Operating Systems Principles. New York: ACM, 2023: 331−347

    [112]

    Tan S, Shen Yikang, Panda R, et al. Scattered mixture-of-experts implementation[J]. arXiv preprint, arXiv: 2403.08245, 2024

    [113]

    Nie Xiaonan, Miao Xupeng, Cao Shijie, et al. EvoMoE: An evolutional mixture-of-experts training framework via dense-to-sparse gate[J]. arXiv preprint, arXiv: 2112.14397, 2022

    [114]

    Zhou Yanqi, Lei Tao, Liu Hanxiao, et al. Mixture-of-experts with expert choice routing[C] //Proc of the 36th Int Conf on Neural Information Processing Systems. New York: Curran Associates, 2022: 7103−7114

    [115]

    Zeng Zhiyuan, Guo Qipeng, Fei Zhaoye, et al. Turn waste into worth: Rectifying top-k router of MoE[J]. arXiv preprint, arXiv: 2402.12399, 2024

    [116]

    Lewis M, Bhosale S, Dettmers T, et al. Base layers: Simplifying training of large, sparse models[C] //Proc of the 38th Int Conf on Machine Learning. New York: PMLR, 2021: 6265−6274

    [117]

    Clark A, Casas D D L, Guy A, et al. Unified scaling laws for routed language models[C] //Proc of the 39th Int Conf on Machine Learning. New York: PMLR, 2022: 4057−4086

    [118]

    Liu Tianlin, Puigcerver J, Blondel M. Sparsity-constrained optimal transport[J]. arXiv preprint, arXiv: 2209.15466, 2023

    [119]

    Roller S, Sukhbaatar S, szlam arthur, et al. Hash layers for large sparse models[C] //Proc of the 35th Int Conf on Neural Information Processing Systems. New York: Curran Associates, 2021: 17555−17566

    [120]

    Zuo Simiao, Liu Xiaodong, Jiao Jian, et al. Taming sparsely activated transformer with stochastic experts[J]. arXiv preprint, arXiv: 2110.04260, 2022

    [121]

    Puigcerver J, Riquelme C, Mustafa B, et al. From sparse to soft mixtures of experts[J]. arXiv preprint, arXiv: 2308.00951, 2023

    [122]

    Yu Ping, Artetxe M, Ott M, et al. Efficient language modeling with sparse all-MLP[J]. arXiv preprint, arXiv: 2203.06850, 2022

    [123]

    Muqeeth M, Liu Haokun, Raffel C. Soft merging of experts with adaptive routing[J]. arXiv preprint, arXiv: 2306.03745, 2023

    [124]

    Hazimeh H, Zhao Zhe, Chowdhery A, et al. DSelect-k: Differentiable selection in the mixture of experts with applications to multi-task learning[C] //Proc of the 35th Int Conf on Neural Information Processing Systems. New York: Curran Associates, 2021: 29335−29347

    [125]

    Ibrahim S, Chen W, Hazimeh H, et al. COMET: Learning cardinality constrained mixture of experts with trees and local search[C] //Proc of the 29th ACM SIGKDD Conf on Knowledge Discovery and Data Mining. New York: ACM, 2023: 832−844

    [126]

    Zhai Mingshu, He Jiaao, Ma Zixuan, et al. SmartMoE: Efficiently training sparsely-activated models through combining offline and online parallelization[C] //Proc of the 2023 USENIX Annual Technical Conf. Berkeley, CA: USENIX Association, 2023: 961−975

    [127]

    Nie Xiaonan, Miao Xupeng, Wang Zilong, et al. FlexMoE: scaling large-scale sparse pre-trained model training via dynamic device placement[J]. Proceedings of ACM on Management of Data, 2023, 1(1): 1−19

    [128]

    Du Zhixu, Li Shiyu, Wu Yuhao, et al. SiDA: Sparsity-inspired data-aware serving for efficient and scalable large mixture-of-experts models[C/OL] //Proc of the 7th Machine Learning and Systems. 2024 [2024-08-02]. https://proceedings.mlsys.org/paper_files/paper/2024/file/698cfaf72a208aef2e78bcac55b74328-Paper-Conference.pdf

    [129]

    Shazeer N, Cheng Youlong, Parmar N, et al. Mesh-Tensorflow: Deep learning for supercomputers[C] //Proc of the 32nd Int Conf on Neural Information Processing Systems. New York: Curran Associates, 2018: 10435−10444

    [130]

    Samyam Rajbhandari, Rasley J, Ruwase O, et al. ZeRO: Memory optimizations toward training trillion parameter models[C/OL] //Proc of Int Conf for High Performance Computing, Networking, Storage and Analysis. Piscataway, NJ: IEEE, 2020 [2024-09-10]. https://dl.acm.org/ doi/abs/10.5555/3433701.3433727

    [131]

    Kosson A, Chiley V, Venigalla A, et al. Pipelined backpropagation at scale: Training large models without batches[C/OL] //Proc of the 4th Machine Learning and Systems. 2021 [2024-08-02]. https://proceedings.mlsys.org/paper_files/paper/2021/file/0c8abcf158ed12d0dd94480681186fda-Paper.pdf

    [132]

    Huang Yanping, Cheng Youlong, Bapna A, et al. GPipe: Efficient training of giant neural networks using pipeline parallelism[C] //Proc of the 33rd Int Conf on Neural Information Processing Systems. New York: Curran Associates, 2019: 103−112

    [133]

    Narayanan D, Harlap A, Phanishayee A, et al. PipeDream: Generalized pipeline parallelism for dnn training[C/OL] //Proc of the 27th ACM Symp on Operating Systems Principles. New York: ACM, 2019 [2024-09-10]. https://dl.acm.org/doi/abs/10.1145/3341301.3359646

    [134]

    Narayanan D, Phanishayee A, Shi Kaiyu, et al. Memory-efficient pipeline-parallel DNN training[C] //Proc of the 38th Int Conf on Machine Learning. New York: PMLR, 2021: 7937−7947

    [135]

    Fu Yichao, Yuhao Qing, Zhao Shixiong, et al. AMPipe: Accelerating MoE model training with intra-block pipelining[EB/OL]. 2024 [2024-08-02]. https://openreview.net/pdf?id=yLgr02IsXY

    [136]

    Jiang Chenyu, Tian Ye, Jia Zhen, et al. Lancet: Accelerating mixture-of-experts training via whole graph computation-communication overlapping[J]. arXiv preprint, arXiv: 2404.19429, 2024

    [137]

    Shi Shaohuai, Pan Xinglin, Chu Xiaowen, et al. PipeMoE: Accelerating mixture-of-experts through adaptive pipelining[C/OL] //Proc of the 2023 IEEE Conf on Computer Communications. Piscataway, NJ: IEEE, 2023 [2024-09-10]. https://ieeexplore.ieee.org/abstract/document/10228874

    [138]

    Aminabadi R Y, Rajbhandari S, Awan A A, et al. DeepSpeed-Inference: Enabling efficient inference of transformer models at unprecedented scale[C/OL] //Proc of Int Conf for High Performance Computing, Networking, Storage and Analysis. New York: ACM, 2022 [2024-09-10]. https://dl.acm.org/doi/abs/10.5555/3571885.3571946

    [139]

    Valiant L G. A bridging model for parallel computation[J]. Communications of the ACM, 1990, 33(8): 103−111 doi: 10.1145/79173.79181

    [140]

    Narayanan D, Shoeybi M, Casper J, et al. Efficient large-scale language model training on GPU clusters using Megatron-LM[C/OL] //Proc of Int Conf for High Performance Computing, Networking, Storage and Analysis. New York: ACM, 2021 [2024-09-10]. https://dl.acm.org/doi/ abs/10.1145/3458817.3476209

    [141]

    Wang Guanhua, Qin Heyang, Jacobs S A, et al. ZeRO++: Extremely efficient collective communication for giant model training[J]. arXiv preprint, arXiv: 2306.10209, 2023

    [142]

    Rajbhandari S, Ruwase O, Rasley J, et al. ZeRO-infinity: Breaking the GPU memory wall for extreme scale deep learning[C/OL] //Proc of Int Conf for High Performance Computing, Networking, Storage and Analysis. New York: ACM, 2021 [2024-09-10]. https://dl.acm.org/doi/ abs/10.1145/3458817.3476205

    [143]

    Jia Zhihao, Lin S, Qi C R, et al. Exploring hidden dimensions in parallelizing convolutional neural networks[C] // Proc of the 35th Int Conf on Machine Learning. New York: PMLR, 2018: 2279−2288

    [144]

    Zheng Lianmin, Li Zhuohan, Zhang Hao, et al. Alpa: Automating inter-and intra-operator parallelism for distributed deep learning[C] //Proc of the 16th USENIX Symp on Operating Systems Design and Implementation. Berkeley, CA: USENIX Association, 2022: 559−578

    [145]

    Li Zhuohan, Zheng Lianmin, Zhong Yinmin, et al. AlpaServe: Statistical multiplexing with model parallelism for deep learning serving[C] //Proc of the 17th USENIX Symp on Operating Systems Design and Implementation. Berkeley, CA: USENIX Association, 2023: 663−679

    [146]

    Jia Zhihao, Zaharia M, Aiken A. Beyond data and model parallelism for deep neural networks[C/OL] //Proc of the 2nd Machine Learning and Systems. 2019 [2024-08-02]. https://proceedings.mlsys.org/paper_files/paper/2019/file/b422680f3db0986ddd7f8f126baaf0fa-Paper.pdf

    [147]

    Artetxe M, Bhosale S, Goyal N, et al. Efficient large scale language modeling with mixtures of experts[J]. arXiv preprint, arXiv: 2112.10684, 2022

    [148]

    Zhao Yanli, Gu A, Varma R, et al. Pytorch FSDP: Experiences on scaling fully sharded data parallel[J]. arXiv preprint, arXiv: 2304.11277, 2023

图(16)  /  表(3)
计量
  • 文章访问数:  149
  • HTML全文浏览量:  139
  • PDF下载量:  104
  • 被引次数: 0
出版历程
  • 收稿日期:  2024-01-11
  • 修回日期:  2024-09-17
  • 录用日期:  2024-10-14
  • 网络出版日期:  2024-12-11

目录

/

返回文章
返回