System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于GPUDrirect RDMA技术的单网卡多GPU的数据传输方法及系统技术方案_技高网

一种基于GPUDrirect RDMA技术的单网卡多GPU的数据传输方法及系统技术方案

技术编号:41251791 阅读:2 留言:0更新日期:2024-05-09 23:59
本发明专利技术公开了一种基于GPUDrirect RDMA技术的单网卡多GPU的数据传输方法及系统,利用HCA支持多队列的特性和多核CPU具有并行性的优势,将4个GPU显存分别由4个逻辑核并行管理,实现4组逻辑核‑GPU通信队列。本发明专利技术将4路GPU API调用和CPU I/O传输操作解耦,允许CPU异步处理GPU I/O请求,4个GPU显存与HCA进行并行RDMA数据传输,而不需要在4个GPU与HCA之间来回切换RDMA通路。因此,GPU I/O调用返回更快,无需等待GPU I/O请求通过高延迟的PCIe总线传播,数据传输和GPU计算重叠。这样最小化了4个GPU到系统内存的访问,使得系统满足传输延迟低、节点资源利用率高、数据吞吐量高的要求,可以实现高性能的批量传输。

【技术实现步骤摘要】

本专利技术涉及一种基于gpudrirect rdma技术的单网卡多gpu的数据传输方法及系统,属于数据传输。


技术介绍

1、随着高性能计算、深度学习及大数据等应用的高速发展,网络速率逐渐向100gpbs过度,对网络传输速率和延时的要求不断提升。传统的tcp/ip技术在数据包处理过程中,要经过操作系统协议栈处理及多次数据搬移,大规模的数据传输任务会占用大部分的处理器资源和内存总线带宽。传统的tcp/ip技术在高带宽网络技术应用中,无法满足具有低通信延迟,资源利用率高的要求,并且网络延迟效应严重,也无法满足实时性要求。

2、nvidia的gpu提供了一种gupdriect技术,使得在分布式环境下gpu显存中的数据能够通过远程直接内访问rdma网卡直接传输到远端的gpu显存中,避免了显存到系统内存的数据拷贝操作,降低了数据传输的开销,rdma的这种特性能够让分布式环境下的网络通信具有很低的延迟,同时降低远端cpu的开销。。

3、理想情况下,在不改变硬件结构的条件下,系统中添加另三个gpu,应该可以使服务器的吞吐量翻3倍。但是,服务器上的pcie拓扑结构只允许四个gpu中的一个使用相同主机通道适配器(host channel adapter)hca,实现gupdriect rdma技术,另三个gpu必须退出rmda传输机制,使用传统的tcp/ip传输技术。在这种条件下,如果4个gpu都想使用gupdriect技术,就必须来回切换rdma通路,会导致网络数据传输不能充分利用系统的资源节点,系统性能会降低,数据传输吞吐量不能满足要求。


技术实现思路

1、本专利技术提供了一种基于gpudrirect rdma技术的单网卡多gpu的数据传输方法及系统,解决了
技术介绍
中披露的问题。

2、为了解决上述技术问题,本专利技术所采用的技术方案是:

3、一种基于gpudrirect rdma技术的单网卡多gpu的数据传输方法:

4、将4个gpu显存分别由4个逻辑核并行管理,实现4组逻辑核-gpu通信队列;

5、通过rss分流机制将同一链路的数据流分配到同一逻辑核-gpu通信队列;

6、通过软件分流机制将数据流平均分配给4组逻辑核-gpu通信队列;

7、4组逻辑核-gpu通信队列接收数据流。

8、进一步地,通过rss分流机制将同一链路的数据流量分配到同一逻辑核-gpu通信队列的方法为:当网络适配器接收到数据包后,根据数据包的五元组信息,计算对称rss哈希算法hash1的哈希值,建立对称rss哈希算法hash1的哈希值与4组逻辑核-gpu通信队列的映射关系,得到哈希映射表1,对随后接收的数据包,遍历哈希映射表1判断当前哈希值是否存在对应的通信队列,若存在说明是已记录的映射关系,直接分配到对应的通信队列;当计算的哈希值不在哈希映射表1时,表明是新的链路数据流,如果对称rss哈希算法hash1的哈希值对应的通信队列中逻辑核的负载小于或等于4个逻辑核的平均负载,将该数据流分配到对应的通信队列上。

9、进一步地,通过软件分流机制将数据流量平均分配给4组逻辑核-gpu通信队列的方法为:计算对称哈希算法hash2的哈希值,建立对称哈希算法hash2的哈希值与4组逻辑核-gpu通信队列的映射关系,得到哈希映射表2;对随后接收的数据包,遍历哈希映射表2判断当前哈希值是否存在对应的通信队列,若存在说明是已记录的映射关系,直接分配到对应的通信队列;当计算的哈希值不在哈希映射表2时,表明是新的链路数据流,如果对称rss哈希算法hash1的哈希值对应的通信队列中逻辑核负载大于当前的平均逻辑核负载,将该数据流分配到对称哈希算法hash2对应的通信队列。

10、进一步地,还包括将对称rss哈希算法hash1的哈希值和通信队列的映射关系更新到哈希映射表1;将对称哈希算法hash2的哈希值和通信队列的映射关系更新到哈希映射表2。

11、进一步地,还包括:在gpunet初始化时,使用标准的cpu接口初始化gpu网络缓冲区,为4个gpu分配4个独立的内存;建立内存虚拟地址到物理地址的映射表,并将gpu内存注到网卡的rdma硬件中;gpunet将rdma注册的内存作为内存池,为每个通信队列分配一个接收缓冲区和发送缓冲区。

12、进一步地,每组逻辑核-gpu通信队列接收数据流的过程为:

13、hca通过状态写回队列cq,通知逻辑核有新的数据将被接收;

14、逻辑核通过命令发送队列sq,向hca传递逻辑核与gpu之间的循环缓冲区的描述符信息;

15、数据包直接通过rdma从远程主机内存复制到了该gpu显存中;

16、hca通过状态写回队列cq通知逻辑核,数据接收完成;

17、逻辑核代表远程主机更新循环缓冲区,通知gpu有数据接收;

18、gpu调用grecv()函数读取数据,并更新循环缓冲区,表示数据接收完毕。所述更新触发逻辑核,通过命令发送队列sq,通知hca数据接收完成;

19、hca收到命令之后,更新远程主机,表示一个数据接收结束。

20、相应地,一种基于gpudrirect rdma技术的单网卡多gpu的数据传输系统,包括:多核负载均衡处理模块和数据传输模块;

21、所述数据传输模块包括4个逻辑核,将4个gpu显存分别由4个逻辑核并行管理,实现4组逻辑核-gpu通信队列;

22、所述多核负载均衡处理模块用于通过rss分流机制将同一链路的数据流分配到同一逻辑核-gpu通信队列;通过软件分流机制将数据流平均分配给4组逻辑核-gpu通信队列。

23、进一步地,所述数据传输模块还包括内存管理模块,所述内存管理模块用于为每个通信队列分配一个接收缓冲区和发送缓冲区。

24、进一步地,所述数据传输模块还包括流控制模块,所述流控制模块用于通过逻辑核与gpu之间的循环缓冲区以及逻辑核与hca之间的队列管理器实现每个连接流相关的网络缓冲区的流量控制。

25、进一步地,逻辑核与hca之间的队列包括状态写回队列cq和命令发送队列sq。

26、本专利技术所达到的有益效果:利用hca支持多队列的特性和多核cpu具有并行性的优势,将4个gpu显存分别由4个逻辑核并行管理,实现4组逻辑核-gpu通信队列。本专利技术将4路gpu api调用和cpu i/o传输操作解耦,允许cpu异步处理gpu i/o请求,4个gpu显存与hca进行并行rdma数据传输,而不需要在4个gpu与hca之间来回切换rdma通路。因此,gpu i/o调用返回更快,无需等待gpu i/o请求通过高延迟的pcie总线传播,数据传输和gpu计算重叠。这样最小化了4个gpu到系统内存的访问,使得系统满足传输延迟低、节点资源利用率高、数据吞吐量高的要求,可以实现高性能的批量传输。

本文档来自技高网...

【技术保护点】

1.一种基于GPUDrirect RDMA技术的单网卡多GPU的数据传输方法,其特征在于:

2.根据权利要求1所述的基于GPUDrirect RDMA技术的单网卡多GPU的数据传输方法,其特征在于,通过RSS分流机制将同一链路的数据流量分配到同一逻辑核-GPU通信队列的方法为:当网络适配器接收到数据包后,根据数据包的五元组信息,计算对称RSS哈希算法Hash1的哈希值,建立对称RSS哈希算法Hash1的哈希值与4组逻辑核-GPU通信队列的映射关系,得到哈希映射表1,对随后接收的数据包,遍历哈希映射表1判断当前哈希值是否存在对应的通信队列,若存在说明是已记录的映射关系,直接分配到对应的通信队列;当计算的哈希值不在哈希映射表1时,表明是新的链路数据流,如果对称RSS哈希算法Hash1的哈希值对应的通信队列中逻辑核的负载小于或等于4个逻辑核的平均负载,将该数据流分配到对应的通信队列上。

3.根据权利要求2所述的基于GPUDrirect RDMA技术的单网卡多GPU的数据传输方法,其特征在于,通过软件分流机制将数据流量平均分配给4组逻辑核-GPU通信队列的方法为:计算对称哈希算法Hash2的哈希值,建立对称哈希算法Hash2的哈希值与4组逻辑核-GPU通信队列的映射关系,得到哈希映射表2;对随后接收的数据包,遍历哈希映射表2判断当前哈希值是否存在对应的通信队列,若存在说明是已记录的映射关系,直接分配到对应的通信队列;当计算的哈希值不在哈希映射表2时,表明是新的链路数据流,如果对称RSS哈希算法Hash1的哈希值对应的通信队列中逻辑核负载大于当前的平均逻辑核负载,将该数据流分配到对称哈希算法Hash2对应的通信队列。

4.根据权利要求3所述的基于GPUDrirect RDMA技术的单网卡多GPU的数据传输方法,其特征在于,还包括将对称RSS哈希算法Hash1的哈希值和通信队列的映射关系更新到哈希映射表1;将对称哈希算法Hash2的哈希值和通信队列的映射关系更新到哈希映射表2。

5.根据权利要求1所述的基于GPUDrirect RDMA技术的单网卡多GPU的数据传输方法,其特征在于,还包括:在GPUNet初始化时,使用标准的CPU接口初始化GPU网络缓冲区,为4个GPU分配4个独立的内存;建立内存虚拟地址到物理地址的映射表,并将GPU内存注到网卡的RDMA硬件中;GPUNet将RDMA注册的内存作为内存池,为每个通信队列分配一个接收缓冲区和发送缓冲区。

6.根据权利要求1所述的基于GPUDrirect RDMA技术的单网卡多GPU的数据传输方法,其特征在于,每组逻辑核-GPU通信队列接收数据流的过程为:

7.一种基于GPUDrirect RDMA技术的单网卡多GPU的数据传输系统,其特征在于,包括:多核负载均衡处理模块和数据传输模块;

8.根据权利要求7所述的基于GPUDrirect RDMA技术的单网卡多GPU的数据传输系统,其特征在于,所述数据传输模块还包括内存管理模块,所述内存管理模块用于为每个通信队列分配一个接收缓冲区和发送缓冲区。

9.根据权利要求7所述的基于GPUDrirect RDMA技术的单网卡多GPU的数据传输系统,其特征在于,所述数据传输模块还包括流控制模块,所述流控制模块用于通过逻辑核与GPU之间的循环缓冲区以及逻辑核与HCA之间的队列管理器实现每个连接流相关的网络缓冲区的流量控制。

10.根据权利要求9所述的基于GPUDrirect RDMA技术的单网卡多GPU的数据传输系统,其特征在于,逻辑核与HCA之间的队列包括状态写回队列CQ和命令发送队列SQ。

...

【技术特征摘要】

1.一种基于gpudrirect rdma技术的单网卡多gpu的数据传输方法,其特征在于:

2.根据权利要求1所述的基于gpudrirect rdma技术的单网卡多gpu的数据传输方法,其特征在于,通过rss分流机制将同一链路的数据流量分配到同一逻辑核-gpu通信队列的方法为:当网络适配器接收到数据包后,根据数据包的五元组信息,计算对称rss哈希算法hash1的哈希值,建立对称rss哈希算法hash1的哈希值与4组逻辑核-gpu通信队列的映射关系,得到哈希映射表1,对随后接收的数据包,遍历哈希映射表1判断当前哈希值是否存在对应的通信队列,若存在说明是已记录的映射关系,直接分配到对应的通信队列;当计算的哈希值不在哈希映射表1时,表明是新的链路数据流,如果对称rss哈希算法hash1的哈希值对应的通信队列中逻辑核的负载小于或等于4个逻辑核的平均负载,将该数据流分配到对应的通信队列上。

3.根据权利要求2所述的基于gpudrirect rdma技术的单网卡多gpu的数据传输方法,其特征在于,通过软件分流机制将数据流量平均分配给4组逻辑核-gpu通信队列的方法为:计算对称哈希算法hash2的哈希值,建立对称哈希算法hash2的哈希值与4组逻辑核-gpu通信队列的映射关系,得到哈希映射表2;对随后接收的数据包,遍历哈希映射表2判断当前哈希值是否存在对应的通信队列,若存在说明是已记录的映射关系,直接分配到对应的通信队列;当计算的哈希值不在哈希映射表2时,表明是新的链路数据流,如果对称rss哈希算法hash1的哈希值对应的通信队列中逻辑核负载大于当前的平均逻辑核负载,将该数据流分配到对称哈希算法hash2对应的通信队列。

4.根据权利要求3所述的基于gpudrirect rdma技术的单网卡多gpu的数据传输方法,其...

【专利技术属性】
技术研发人员:杨露锁强岳晨阳郭燕奚智雯
申请(专利权)人:无锡先进技术研究院
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1