CN107480080B - 一种基于rdma的零拷贝数据流 - Google Patents

一种基于rdma的零拷贝数据流 Download PDF

Info

Publication number
CN107480080B
CN107480080B CN201710534535.0A CN201710534535A CN107480080B CN 107480080 B CN107480080 B CN 107480080B CN 201710534535 A CN201710534535 A CN 201710534535A CN 107480080 B CN107480080 B CN 107480080B
Authority
CN
China
Prior art keywords
rdma
data
memory
data stream
copy
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710534535.0A
Other languages
English (en)
Other versions
CN107480080A (zh
Inventor
陈凯
杨强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Zhixing Technology Co Ltd
Original Assignee
Shenzhen Zhixing Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Zhixing Technology Co Ltd filed Critical Shenzhen Zhixing Technology Co Ltd
Priority to CN201710534535.0A priority Critical patent/CN107480080B/zh
Publication of CN107480080A publication Critical patent/CN107480080A/zh
Application granted granted Critical
Publication of CN107480080B publication Critical patent/CN107480080B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于RDMA的零拷贝数据流,主要包括内存分配器和信息收集器;所述内存分配器,用来实现不同内存的分配规则;所述内存类型信息收集器,用于解析数据流计算图,并根据数据流计算图中每条边的数据源和数据接收节点来确定每个步骤的缓冲区管理规则。本发明的一种基于RDMA的零拷贝数据流,可以实现张量传输速率高、GPU的高速扩展以及消除不必要的内存拷贝的优点。

Description

一种基于RDMA的零拷贝数据流
技术领域
本发明涉及数据流技术领域,具体地,涉及一种基于RDMA的零拷贝数据流。
背景技术
商用交换机和网卡构建的高速网络架构是现代数据中心的关键组成部分。远程直接内存访问(RDMA)为应用程序提供零拷贝和CPU旁路通信。最近,RDMA over ConvergedEthernet(RoCE)通信协议已经受到广泛的关注,被认为是高吞吐量,低延迟的数据中心的40 / 100Gbps以太网络的核心通信协议层。然而,现有应用程序通常围绕基于伯克利套接字接口进行设计。为了将现有的程序不作修改地移植到RoCE通信协议上,现有应用程序通常会使用在用户空间模拟的套接字接口。这种设计需要应用程序将通信数据拷贝到专用的通信缓冲区中,其后网卡直接访问这些专用缓冲区并进行实际的数据传输。这种设计有其优点:网卡直接访问的内存缓冲区需要通过设置输入输地址转换将虚拟内存页面锁定在物理内存中,而设置输入输出地址转换器是一项昂贵的操作,当需要传输的数据规模很小的时候,设置地址转换需要时间可能是数据传输本身的好几倍。因此有必要将网卡直接访问的内存缓冲区与应用程序隔离开来,需要时通过将数据拷贝至网卡直接访问的内存缓冲区来实现通信。
数据流是Apache Hadoop、Apache Spark和TensorFlow等数据分析框架中流行的架构模式。数据流是有向无环图,其中每个节点具有多个输入和输出的预定义操作。对于分布式数据流,通常数据流图在所有的训练节点之间进行划分,使得每个边缘被分割成一个通信阶段,其中上一阶段的输出通过通信通道传输成为下一阶段的输入。这些输出和输入通常是大型和不可变(通过计算产生后不被再次修改)的数据块。 在当前应用程序设计中,由于软件架构分层的特点,这些数据块通常会在产生后被移动到不同的子系统进行进一步处理 ,例如序列化和通信前的进一步压缩。当前数据流框架中的处理方法是:直接将其拷贝至网卡直接访问的内存缓冲区,然后进行网络传输。由于这些大型数据块的规模可达几十兆甚至几百兆字节,复制带来的延迟可达数十毫秒。在低速的网络中(网络协议栈一般是TCP/IP/以太网),这样的复制开销相对网络硬件传输的时间而言并不显著;然而在现代40/100Gpbs网络中,由于网络硬件本身的传输性能大幅度提高,拷贝这些大型数据块至内存缓冲区带来的开销在整个数据传输的流水线中变成了重要的瓶颈。在这种情况下,RDMA零拷贝和内核旁路的带来的性能优势被这些开销所掩盖。
然而,如果我们采用整体设计的数据流计算/通信流水线,通过网卡直接访问这些数据块而无需再次移动,则可以消除大部分这些开销,包括设置内存地址转换,从而充分利用RDMA在通信层的性能优势。
发明内容
本发明的目的在于,针对上述问题,提出一种基于RDMA的零拷贝数据流,以实现张量传输速率高、GPU的高速扩展以及消除不必要的内存拷贝的优点。
为实现上述目的,本发明采用的技术方案是:一种基于RDMA的零拷贝数据流,主要包括内存分配器和信息收集器;
所述内存分配器,用来实现不同内存的分配规则;
所述内存类型信息收集器,用于解析数据流计算图,并根据数据流计算图中每条边的数据源和数据接收节点来确定每个步骤的缓冲区管理规则。
进一步地,所述内存分配器包括DMA和RDMA。
进一步地,所述DMA用来对设备直接进行数据的存取。
进一步地,所述设备包括显卡、网卡或处理器。
进一步地,所述RDMA用来对远程数据进行直接存取。
进一步地,所述内存类型信息收集器包括解析模块和数据流模块。
进一步地,所述解析模块分别与所述数据流模块、DMA和RDMA相连接。
进一步地,所述数据流模块以数据流图结构表示数据的流向以及节点分布,用来向所述解析模块提供内存分配信息。
进一步地,所述解析模块包括解析器,用来对数据块所需的内存进行分类。
本发明一种基于RDMA的零拷贝数据流,主要包括内存分配器和信息收集器;所述内存分配器,用来实现不同内存的分配规则;所述内存类型信息收集器,用于解析数据流计算图,并根据数据流计算图中每条边的数据源和数据接收节点来确定每个步骤的缓冲区管理规则,可以实现张量传输速率高、GPU的高速扩展以及消除不必要的内存拷贝的优点。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明所述一种基于RDMA的零拷贝数据流的结构示意图;
图2为本发明所述一种基于RDMA的零拷贝数据流的训练吞吐量与基于gRPC训练吞吐量对比图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
如图1所示,一种基于RDMA的零拷贝数据流,主要包括内存分配器和信息收集器;
所述内存分配器,用来实现不同内存的分配规则;
所述内存类型信息收集器,用于解析数据流计算图,并根据数据流计算图中每条边的数据源和数据接收节点来确定每个步骤的缓冲区管理规则,注册到地址转换表中的缓冲区将在计算和通信子系统之间共享,并且当两个子系统都不再继续使用缓冲区时,缓冲区将被释放。地址转换表中的页面访问控制机制被用于避免并发读写可能导致的数据不一致问题。
内存分配器包括DMA和RDMA。DMA用来对设备直接进行数据的存取。设备包括显卡、网卡或处理器。 RDMA用来对远程数据进行直接存取。
内存类型信息收集器包括解析模块和数据流模块。解析模块分别与所述数据流模块、DMA和RDMA相连接。数据模块采以用数据流图结构表示数据的流向以及节点分布,用来向所述解析模块提供内存分配信息。解析模块包括解析器,用来对数据块所需的内存进行分类。
我们在TensorFlow之上设计并实现零拷贝数据流,因为它允许使用自定义的内存分配器替换内存分配策略。在我们的内存分配器中:
1、从TensorFlow的数据流计算图收集内存分配的信息。
只有作为跨节点发送或接收的张量(Tensor)会被注册为RDMA缓冲区。因为节点内部跨设备发送或接收的 Tensor(例如显卡到CPU),会经过服务器内部的通信协议(如PCI-e)进行传输,只会被注册为显卡直接访问的缓冲区。内存注册紧随在内存分配之后,而取消内存注册恰好在内存释放之前。
在其开源版本中,TensorFlow使用基于HTTP / 2的gRPC传输其张量,我们对其进行了修改。
2、使用带外RDMA传输来传输数据以绕过RPC系统。我们使用了CPU进行RPC与带外RDMA信道的同步与状态管理。
为了直接支持GPU作为源或接收节点的传输,我们设法在节点内部PCI-e拓扑结构允许时直接进行GPU Direct RDMA,即网卡通过PCI-e直接读写通过同一个PCI-e网桥连接的GPU的显存。
当GPU Direct RDMA通过CPU-socket level link(即不同的非对称内存访问或NUMA节点)的路径上时,我们观察到了一定的性能损失。CPU-socket level link 是跨PCI-e 网桥通信时使用的方法,亦即由 CPU 来作为不同 PCI-e 网桥通信时的中转。因为使用了 CPU 进行中转,显存内部的数据必须先行拷贝至内存子系统,无法直接使用网卡进行跨 PCI-e 网桥读写。因此,这些张量会在发送到GPU和网卡之前先行拷贝到内存中作为临时中转。 RDMA张量缓冲区也分配在与网卡相同的NUMA节点中。 为了简化我们的实现,我们只使用单向RDMA read with invalidate,对于较小的缓冲区,它只需要单次往返来完成张量传输。
我们在测试集群上评估本发明的实现。
实验台由连接到Mellanox MSN2100-BB2F 40GbE RoCE交换机的4台服务器组成。
每个服务器都安装有Mellanox MT27500 40GbE网卡,双6核Intel Xeon E5-2603v4 CPU,2台NVidia K40m GPU以及256 GB DDR4- 2400MHz内存。
无损以太网络的实现采用了通过交换机配置基于优先级的流量控制(PFC)。
我们训练的基于MNIST手写数字识别的小规模数据集的卷积神经网络模型显示,在每次传输的张量为1MB左右时,零拷贝数据流的吞吐量约为TensorFlow 开源版本的3倍;1GB左右时,我们的吞吐量达到了其开源版本的26倍。在张量大小在1MB-1GB这个范围变化时,我们可以得到零拷贝数据流在张量规模越大的时候,获得的性能提升越明显这一结论。在这个范围之外,可以确定零拷贝数据流没有性能损失。
对于大规模的真实用例,我们训练了基于ImageNet物体识别数据集的分布式版本的VGG16 卷积神经网络模型,由Google的性能测试套件提供。模型参数的总大小为528 MB。该模型在同步模式下训练而不是异步模式,因此每个训练节点将计算相同次数的迭代以避免对性能的随机扰动。我们使用与训练节点相同数量的参数服务器,即每个节点一个参数服务器,参数服务器使用主机内存。
在TensorFlow 1.1版本之上,我们的原型显示了基于开源软件gRPC传输的性能提升了7.63倍,其中Google 官方开源的版本在我们的测试集群上表现为每秒处理37.37张图片,而本发明可以达每秒到284.87张图片,实验数据如下所示:
Figure DEST_PATH_IMAGE002
如图2所示,我们基于RDMA的零拷贝数据流并使用具有内存复制的通信专用缓冲区的实现可以在原始的基于gRPC的张量传输上在作业完成时间(通过图像的训练吞吐量测量)上实现整体7.62倍的性能提升,在计算缩放方面,与单GPU相比,它总共扩展到8个GPU,缩放因子为6.6倍(理论上限为8倍)。当没有网络通信时,与单节点多GPU设置(理想情况)相比,其性能达到99.7%。对于我们的RDMA内存分配器,整个张量传输管道中的用于内存注册的平均开销时间约占2.7%,而82.6%的RDMA传输不会导致额外的内存注册开销。我们完全避免了内存中多余的数据块拷贝。
至少可以达到以下有益效果:
本发明一种基于RDMA的零拷贝数据流,主要包括内存分配器和信息收集器;所述内存分配器,用来实现不同内存的分配规则;所述内存类型信息收集器,用于解析数据流计算图,并根据数据流计算图中每条边的数据源和数据接收节点来确定每个步骤的缓冲区管理规则,可以实现张量传输速率高、GPU的高速扩展以及消除不必要的内存拷贝的优点。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种基于RDMA的零拷贝数据流,其特征在于,主要包括内存分配器和信息收集器;
所述内存分配器,用来实现不同内存的分配规则;
所述内存类型信息收集器,用于解析数据流计算图,并根据数据流计算图中每条边的数据源和数据接收节点来确定每个步骤的缓冲区管理规则;其中,
所述数据流为有向无环图,其中每个节点具有多个输入和输出的预定义操作;所述数据流包括分布式数据流,所述分布式数据流在所有的训练节点之间进行划分,使得每个边缘被分割成一个通信阶段,其中上一阶段的输出通过通信通道传输成为下一阶段的输入;所述的输出和输入,包括大型和不可变的数据块;所述数据块能够被训练节点的计算子系统和通信子系统处理;采用整体设计的数据流计算/通信流水线,使所述计算子系统/通信子系统根据所述计算/通信流水线依次直接访问所述数据块;
当所述内存分配器分配内存,注册缓冲区;使注册到地址转换表中的缓冲区能够在节点的计算和通信子系统之间共享;当所述节点计算子系统和通信子系统不再继续使用缓冲区时,则释放所述缓冲区。
2.根据权利要求1所述的一种基于RDMA的零拷贝数据流,其特征在于,所述内存分配器包括DMA和RDMA。
3.根据权利要求2所述的一种基于RDMA的零拷贝数据流,其特征在于,所述DMA用来对设备直接进行数据的存取。
4.根据权利要求3所述的一种基于RDMA的零拷贝数据流,其特征在于,所述设备包括显卡、网卡或处理器。
5.根据权利要求2所述的一种基于RDMA的零拷贝数据流,其特征在于,所述RDMA用来对远程数据进行直接存取。
6.根据权利要求1所述的一种基于RDMA的零拷贝数据流,其特征在于,所述内存类型信息收集器包括解析模块和数据流模块。
7.根据权利要求2或6所述的一种基于RDMA的零拷贝数据流,其特征在于,所述解析模块分别与所述数据流模块、DMA和RDMA相连接。
8.根据权利要求6所述的一种基于RDMA的零拷贝数据流,其特征在于,所述数据流模块以数据流图结构表示数据的流向以及节点分布,用来向所述解析模块提供内存分配信息。
9.根据权利要求6所述的一种基于RDMA的零拷贝数据流,其特征在于,所述解析模块包括解析器,用来对数据块所需的内存进行分类。
CN201710534535.0A 2017-07-03 2017-07-03 一种基于rdma的零拷贝数据流 Active CN107480080B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710534535.0A CN107480080B (zh) 2017-07-03 2017-07-03 一种基于rdma的零拷贝数据流

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710534535.0A CN107480080B (zh) 2017-07-03 2017-07-03 一种基于rdma的零拷贝数据流

Publications (2)

Publication Number Publication Date
CN107480080A CN107480080A (zh) 2017-12-15
CN107480080B true CN107480080B (zh) 2021-03-23

Family

ID=60595311

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710534535.0A Active CN107480080B (zh) 2017-07-03 2017-07-03 一种基于rdma的零拷贝数据流

Country Status (1)

Country Link
CN (1) CN107480080B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108804040B (zh) * 2018-06-05 2020-07-07 上海孚典智能科技有限公司 基于内核旁路技术的Hadoop map-reduce计算加速方法
CN109861967A (zh) * 2018-12-10 2019-06-07 中国人民银行清算总中心 基于Spark Shuffle的远程直接内存访问系统
CN109815162A (zh) * 2019-01-28 2019-05-28 Oppo广东移动通信有限公司 内存管理方法、装置、移动终端及存储介质
CN110177118B (zh) * 2019-06-13 2022-03-29 上海海事大学 一种基于rdma的rpc通信方法
CN111241011B (zh) * 2019-12-31 2022-04-15 清华大学 一种分布式持久性内存的全局地址空间管理方法
CN113064846A (zh) * 2021-04-14 2021-07-02 中南大学 基于Rsockets协议的零拷贝数据传输方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101150488A (zh) * 2007-11-15 2008-03-26 曙光信息产业(北京)有限公司 一种零拷贝网络报文接收方法
TW201211898A (en) * 2010-04-30 2012-03-16 Ibm Zero copy data transmission in a software based RDMA network stack
CN104038569A (zh) * 2014-06-24 2014-09-10 浪潮电子信息产业股份有限公司 一种基于地址映射的集群通信模型
CN104239249A (zh) * 2014-09-16 2014-12-24 国家计算机网络与信息安全管理中心 Pci-e零拷贝dma数据传输方法
CN104333533A (zh) * 2014-09-12 2015-02-04 北京华电天益信息科技有限公司 一种用于工业控制系统网络的数据包零拷贝获取方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9558146B2 (en) * 2013-07-18 2017-01-31 Intel Corporation IWARP RDMA read extensions
US11151446B2 (en) * 2015-10-28 2021-10-19 Google Llc Stream-based accelerator processing of computational graphs

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101150488A (zh) * 2007-11-15 2008-03-26 曙光信息产业(北京)有限公司 一种零拷贝网络报文接收方法
CN101150488B (zh) * 2007-11-15 2012-01-25 曙光信息产业(北京)有限公司 一种零拷贝网络报文接收方法
TW201211898A (en) * 2010-04-30 2012-03-16 Ibm Zero copy data transmission in a software based RDMA network stack
CN104038569A (zh) * 2014-06-24 2014-09-10 浪潮电子信息产业股份有限公司 一种基于地址映射的集群通信模型
CN104333533A (zh) * 2014-09-12 2015-02-04 北京华电天益信息科技有限公司 一种用于工业控制系统网络的数据包零拷贝获取方法
CN104239249A (zh) * 2014-09-16 2014-12-24 国家计算机网络与信息安全管理中心 Pci-e零拷贝dma数据传输方法

Also Published As

Publication number Publication date
CN107480080A (zh) 2017-12-15

Similar Documents

Publication Publication Date Title
CN107480080B (zh) 一种基于rdma的零拷贝数据流
US9734063B2 (en) Scale-out non-uniform memory access
US20200285950A1 (en) Structured Weight Based Sparsity In An Artificial Neural Network Compiler
US9880971B2 (en) Memory appliance for accessing memory
Yi et al. Towards zero copy dataflows using rdma
US11502867B2 (en) Injection limiting and wave synchronization for scalable in-network computation
US20200279133A1 (en) Structured Sparsity Guided Training In An Artificial Neural Network
Daglis et al. Manycore network interfaces for in-memory rack-scale computing
JP2018045700A (ja) ネットワークプロセッサにおけるマルチコア相互接続
CN114756388B (zh) 一种基于rdma的集群系统节点间按需共享内存的方法
Ren et al. irdma: Efficient use of rdma in distributed deep learning systems
DE102023105565A1 (de) VERFAHREN UND VORRICHTUNG FÜR EFFIZIENTEN ZUGRIFF AUF MEHRDIMENSIONALE DATENSTRUKTUREN UND/ODER ANDERE GROßE DATENBLÖCKE
Thao Nguyen et al. Efficient MPI‐AllReduce for large‐scale deep learning on GPU‐clusters
Kim et al. Accelerating GNN training with locality-aware partial execution
Qiu et al. Mammoth data in the cloud: clustering social images
WO2015094721A2 (en) Apparatuses and methods for writing masked data to a buffer
CN110908929A (zh) 用于高带宽缩放的一致数据高速缓存
Li et al. Improving spark performance with zero-copy buffer management and RDMA
Hemmatpour et al. Analyzing in-memory nosql landscape
Cui et al. Scalable deep learning on distributed GPUs with a GPU-specialized parameter server
Choi et al. Performance evaluation of a remote block device with high-speed cluster interconnects
Khazankin et al. System architecture for deep packet inspection in high-speed networks
Potluri et al. Efficient breadth first search on multi-gpu systems using gpu-centric openshmem
Ou et al. An efficient design for fast memory registration in RDMA
Novakovic Rack-Scale Memory Pooling for Datacenters

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB03 Change of inventor or designer information

Inventor after: Chen Kai

Inventor after: Yang Qiang

Inventor before: Yi Bairen

Inventor before: Chen Li

Inventor before: Chen Kai

CB03 Change of inventor or designer information
TA01 Transfer of patent application right

Effective date of registration: 20201204

Address after: 518000 1803, block C, Dachong business center, Nanshan District, Shenzhen City, Guangdong Province

Applicant after: Shenzhen Zhixing Technology Co., Ltd

Address before: Room 1701, 17 / F, Shui on centre, 6-8 Harbour Road, Wan Chai, Hong Kong, China

Applicant before: RED BIRD TECHNOLOGY Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant