CN117914775A - 面向异构计算的高带宽数据传输方法、cpu及系统 - Google Patents
面向异构计算的高带宽数据传输方法、cpu及系统 Download PDFInfo
- Publication number
- CN117914775A CN117914775A CN202410322529.9A CN202410322529A CN117914775A CN 117914775 A CN117914775 A CN 117914775A CN 202410322529 A CN202410322529 A CN 202410322529A CN 117914775 A CN117914775 A CN 117914775A
- Authority
- CN
- China
- Prior art keywords
- data
- path
- transmission
- target
- determining
- 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.)
- Granted
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 394
- 238000000034 method Methods 0.000 title claims abstract description 83
- 238000012545 processing Methods 0.000 claims abstract description 43
- 238000004590 computer program Methods 0.000 claims abstract description 20
- 230000008569 process Effects 0.000 claims description 7
- 230000008859 change Effects 0.000 claims description 5
- 230000001934 delay Effects 0.000 claims description 5
- 238000005516 engineering process Methods 0.000 claims description 4
- 239000000758 substrate Substances 0.000 claims 6
- 239000000523 sample Substances 0.000 claims 2
- 230000001133 acceleration Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供了一种面向异构计算的高带宽数据传输方法、CPU、系统、存储介质、电子设备及计算机程序产品,其中,该方法包括:基于接收设备的数据处理能力,将目标数据划分为多组数据;确定所述发送设备与所述接收设备之间用于传输目标组数据的目标传输参数;将所述目标传输参数配置给所述发送设备,以指示所述发送设备按照所述目标传输参数将所述目标组数据传输给所述接收设备。
Description
技术领域
本申请实施例涉及数据传输领域,具体而言,涉及一种面向异构计算的高带宽数据传输方法、CPU、系统、存储介质、电子设备及计算机程序产品。
背景技术
异构加速计算是一种利用不同类型的处理器(例如,CPU、GPU、FPGA等等)来加速计算的技术,其主要原理是将不同类型的处理器组合在一起,以实现更高效的计算,相关技术中,由于处理器设备之间的传输带宽不足,对异构加速计算的速度造成了限制,针对上述问题,相关技术中尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种面向异构计算的高带宽数据传输方法、CPU、系统、存储介质、电子设备及计算机程序产品,以至少解决相关技术中由于处理器设备之间的传输带宽不足对异构加速计算的速度造成限制的问题。
根据本申请的一个实施例,提供了一种面向异构计算的高带宽数据传输方法,包括:基于接收设备的数据处理能力,将目标数据划分为多组数据,其中,所述目标数据为发送设备待发送给所述接收设备的数据,所述发送设备与所述接收设备之间包括多条允许进行数据传输的传输路径;确定所述发送设备与所述接收设备之间用于传输目标组数据的目标传输参数,其中,所述目标传输参数包括用于传输所述目标组数据的目标传输路径,以及,通过所述目标传输路径中包括的每条路径传输的所述目标组数据的数据量,其中,所述目标组数据为所述多组数据中包括的任一组数据,所述目标传输路径为多条所述传输路径中包括的至少两条路径,所述目标传输路径中包括的任意两条路径传输所述目标组数据的数据量的传输时间的差值小于预定阈值;将所述目标传输参数配置给所述发送设备,以指示所述发送设备按照所述目标传输参数将所述目标组数据传输给所述接收设备。
在一个示例性实施例中,所述基于接收设备的数据处理能力,将目标数据划分为多组数据,包括:基于所述接收设备的数据处理能力,确定所述接收设备在一次数据处理中支持处理的数据的第一数据量;以所述第一数据量为划分粒度,将所述目标数据划分为所述多组数据。
在一个示例性实施例中,以所述第一数据量为划分粒度,将所述目标数据划分为所述多组数据包括:将所述目标数据的数据量与所述第一数据量相除,得到相除结果;在所述相除结果中仅包括目标商值的情况下,将所述目标数据划分为所述目标商值个数据量为所述第一数据量的数据组;在所述相除结果中包括目标商值以及余数的情况下,将所述目标数据划分为所述目标商值加1个数据组,其中,所述多组数据中包括所述目标商值个数据量为所述第一数据量的数据组以及1个数据量为第二数据量的数据组。
在一个示例性实施例中,所述确定所述发送设备与所述接收设备之间用于传输目标组数据的目标传输参数,包括:根据所述多条允许进行数据传输的传输路径的带宽和延时确定出所述目标传输路径;确定所述目标传输路径中包括的每条路径的第一传输参数,其中,所述第一传输参数包括:所述每条路径的延时值、带宽值/>、第一参数/> 和第二参数,/> 为基础初始化时间、/> 为初始化时间随待传输的数据量的变化率,/> 为所述每条路径的标识信息;根据所述第一传输参数确定所述每条路径传输的所述目标组数据的数据量。
在一个示例性实施例中,所述方法还包括:通过如下方式确定所述每条路径的初始化时间:/>,其中,x为所述每条路径待传输的数据量。
在一个示例性实施例中,所述根据所述第一传输参数确定所述每条路径传输的所述目标数据的数据量包括:根据所述第一传输参数,通过如下公式确定所述每条路径单独传输所述目标组数据所需的第一传输时间/>:/>,其中,/>为所述目标组数据的标识信息;基于多个所述第一传输时间确定第二传输时间,其中,所述第二传输时间为多个所述第一传输时间中包括的值最小的第一传输时间;根据所述第二传输时间确定目标传输时间;根据所述目标传输时间以及所述第一传输参数,确定所述每条路径传输的所述目标组数据的数据量。
在一个示例性实施例中,根据所述目标传输时间以及所述第一传输参数,确定所述每条路径传输的所述目标组数据的数据量包括:根据所述目标传输时间以及所述第一传输参数,通过如下公式,确定所述每条路径传输的所述目标组数据的数据量:,其中,/>为所述目标传输时间。
在一个示例性实施例中,所述根据所述第二传输时间确定目标传输时间包括:确定所述每条路径在所述第二传输时间内传输的数据量之和,得到第三数据量;基于所述第三数据量与所述目标组数据的数据量之间的大小关系,确定所述目标传输时间。
在一个示例性实施例中,基于所述第三数据量与所述目标组数据的数据量之间的大小关系,确定所述目标传输时间包括:重复执行如下步骤,直到更新后的第三数据量小于所述目标组数据的数据量为止:将所述第二传输时间的值更新为当前所的述第二传输时间减去第一时长所得到的值,其中,所述第一时长大于零;确定所述每条路径在更新后的第二传输时间内传输的数据量之和,得到更新后的第三数据量;确定所述更新后的第三数据量与所述目标组数据量的大小关系;将最后一次的前一次得到的更新后的第二传输时间确定为所述目标传输时间。
在一个示例性实施例中,确定所述每条路径在当前确定出的第二传输时间内传输的数据量之和包括:通过如下公式确定所述每条路径在当前确定出的第二传输时间内传输的数据量:/>,其中,/>为所述当前确定出的第二传输时间;通过如下公式确定所述每条路径在当前确定出的第二传输时间内传输的数据量之和/>:/>, 其中,M为所述目标传输路径中包括的路径条数。
在一个示例性实施例中,确定所述第一传输参数中包括的所述延时值包括:通过如下方式确定第一路径的延时值,其中,所述第一路径为所述目标传输路径中包括的任一条路径:确定所述第一路径中包括的各个第一路径段的延时值;将各个所述第一路径段的延时值的和值确定为所述延时值。
在一个示例性实施例中,确定所述第一传输参数中包括的所述带宽值包括:通过如下方式确定第二路径的带宽值,其中,所述第二路径为所述目标传输路径中包括的任一条路径:确定所述第二路径中包括的各个第二路径段的带宽值;将多个所述第二路径段的带宽值中包括的最小带宽值确定为所述带宽值。
在一个示例性实施例中,在确定所述每条路径传输的所述目标组数据的数据量之后,所述方法还包括:将所述每条路径传输的数据进行字节对齐,以使所述每条路径传输的数据量满足所述每条路径支持传输的数据的最小传输单位的整数倍,以及,所述每条路径传输的数据量的总和与所述目标组数据的数据量相等。
在一个示例性实施例中,所述方法还包括:确定预先分别为所述每条路径配置的第一中央处理器CPU核;利用分别为所述每条路径配置的所述第一中央处理器CPU核为所述每条路径进行初始化操作。
在一个示例性实施例中,利用分别为所述每条路径配置的所述第一中央处理器CPU核为所述每条路径进行初始化操作包括:利用分别为所述每条路径配置的所述第一中央处理器CPU核对应清除为所述每条路径设置的标志位,其中,所述标志位为所述发送设备设置的,所述标志位用于指示对应的所述每条路径当前次数据传输完成状态。
在一个示例性实施例中,所述方法还包括:所述发送设备在确定通过第三路径完成当前次数据传输的情况下,将为所述第三路径设置的标志位的值更新为第一值,其中,所述第三路径为所述目标传输路径中包括的任一条路径,所述第一值用于指示所述第三路径已完成当前次数据传输。
在一个示例性实施例中,所述方法还包括:利用第二CPU核对为所述每条路径设置的标志位进行轮询,其中,所述标志位为所述发送设备设置的,所述标志位用于指示对应的所述每条路径当前次数据传输完成状态;在确定出为所述每条路径设置的标志位取值均为第一值的情况下,确定出所述目标组数据传输完成。
在一个示例性实施例中,在确定出所述目标组数据传输完成的情况下,所述方法还包括:将所述目标组数据的数据量以及所述目标组数据的存储地址通知给所述接收设备。
在一个示例性实施例中,所述方法还包括:所述接收设备在接收到所述目标组数据的数据量以及所述目标组数据的存储地址的情况下,对所述目标组数据进行处理。
附图说明
图1是根据本申请实施例的面向异构计算的高带宽数据传输方法的服务器设备的硬件结构框图;
图2是根据本申请实施例的面向异构计算的高带宽数据传输方法的流程图一;
图3是根据本申请实施例的面向异构计算的高带宽数据传输方法的系统架构示意图;
图4是根据本申请实施例的面向异构计算的高带宽数据传输方法的设备接口示意图;
图5是根据本申请实施例的面向异构计算的高带宽数据传输方法的数据传输过程示意图;
图6是根据本申请实施例的面向异构计算的高带宽数据传输方法的流程图二;
图7是根据本申请实施例的面向异构计算的高带宽数据传输方法的流程图三;
图8是根据本申请实施例的CPU的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请的实施例。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
首先对本发明涉及的相关技术进行说明:
异构加速计算是一种利用不同类型的处理器(例如,CPU(Central ProcessingUnit,中央处理器)、GPU(Graphics Processing Unit,图形处理器)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)等等)来加速计算的技术,其主要原理是将不同类型的处理器组合在一起,以实现更高效的计算。异构计算加速可以充分利用不同类型处理器的优势,例如,在科学计算中,CPU可以处理复杂的算法而GPU可以处理大规模并行计算,通过将任务分配给不同的处理器并行执行可以提高计算效率。在某些应用中,数据处理占据了大量的计算时间,通过使用GPU等处理器,可以提高数据处理的速度和效率。然而,异构计算需要把数据拷贝至异构加速设备上的内存,计算结束后需要将结果返回给CPU。异构计算的过程一般是先把数据从源设备(例如,磁盘、异构加速设备)拷贝至主机内存,再将主机内存的数据拷贝至异构加速设备,异构加速设备执行结束后将结果拷贝至主机内存,最后由主机将处理结果返回给用户或存储起来。相关技术中,由于设备之间传输带宽有限,因此,对异构加速计算的速度造成了限制。
针对相关技术中的上述问题,在本发明实施例中,提出了对应的解决方法,下面结合实施例对本发明进行说明:
本申请实施例中所提供的方法实施例可以在服务器设备或者类似的运算装置中执行。以运行在服务器设备上为例,图1是本申请实施例的面向异构计算的高带宽数据传输方法的服务器设备的硬件结构框图。如图1所示,服务器设备可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,其中,上述服务器设备还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述服务器设备的结构造成限定。例如,服务器设备还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本申请实施例中的面向异构计算的高带宽数据传输方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至服务器设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括服务器设备的通信供应方提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种面向异构计算的高带宽数据传输方法,图2是根据本申请实施例的面向异构计算的高带宽数据传输方法的流程图一,如图2所示,该流程包括如下步骤:
步骤S202,基于接收设备的数据处理能力,将目标数据划分为多组数据,其中,所述目标数据为发送设备待发送给所述接收设备的数据,所述发送设备与所述接收设备之间包括多条允许进行数据传输的传输路径;
步骤S204,确定所述发送设备与所述接收设备之间用于传输目标组数据的目标传输参数,其中,所述目标传输参数包括用于传输所述目标组数据的目标传输路径,以及,通过所述目标传输路径中包括的每条路径传输的所述目标组数据的数据量,其中,所述目标组数据为所述多组数据中包括的任一组数据,所述目标传输路径为多条所述传输路径中包括的至少两条路径,所述目标传输路径中包括的任意两条路径传输所述目标组数据的数据量的传输时间的差值小于预定阈值;
步骤S206,将所述目标传输参数配置给所述发送设备,以指示所述发送设备按照所述目标传输参数将所述目标组数据传输给所述接收设备。
在步骤S202中,所述接收设备的数据处理能力包括但不限于:所述接收设备能同时完成数据接收和处理的数据量等等,所述发送设备与所述接收设备包括但不限于:存储设备、异构加速设备等等;其中,所述存储设备包括但不限于:硬盘驱动器、固态硬盘、闪存驱动器、内存条、光盘、磁带等等;所述异构加速设备,包括但不限于:图形处理器、多核处理器、数字信号处理器、特定领域的集成电路、协处理器、神经网络处理器、加速器卡等等。
在步骤S204中,所述发送设备与所述接收设备之间存在多条传输路径,可根据传输的优选需求从多条传输路径中确定出所述目标传输路径,并且,针对不同批次的数据传输(即,不同组数据的传输),可以采用相同的多条路径进行传输,也可以采用不同的路径进行传输,具体采用何种路径进行传输可以基于实际需求进行调整。其中,所述优选需求包括但不限于:最短路径优先、最小成本路径优先、最大带宽路径优先、最小延迟路径优先、最小拥塞路径优先、最可靠路径优先、最小跳数路径优先等等,当然,针对不同批次的数据传输,所选取的目标传输路径也可以均是发送设备和接收设备之间的全部传输路径。
图3是根据本申请实施例的面向异构计算的高带宽数据传输方法的系统架构示意图,如图3所示,示例性的,设备B与设备C之间需要进行数据传输,其中设备B为所述发送设备,设备C为所述接收设备,为了提高设备B和设备C之间的传输带宽,示例性的,设备B和设备C之间设计了3条数据传输路径(在实际应用中也可以涉及更多条传输路径,例如,5条,7条等等,此处的3条仅为示例性说明),路径1和路径2皆采用PCIe Peer-to-Peer技术,路径3采用Infiniband外部总线(此处所描述的各路径的类型也仅是示例性说明,在实际应用中可以设置成其他的类型,其中,不同的路径类型可以是不同的,也可以是相同的,比如,三条路径均为基于Peer-to-Peer技术所设置的路径,或者,三条路径均为Infiniband外部总线等等),其中,所述传输路径的总线种类包括但不限于:RoCE、NVLink、CXL等等,在使用所述总线进行设备间数据传输时,优选示例是避开CPU,所述传输路径的总线种类可根据需求进行选择,图4是根据本申请实施例的面向异构计算的高带宽数据传输方法的设备接口示意图,如图4所示,设备B和设备C都具有三个外部接口,其中,示例性的,两个设备的接口单元1和接口单元2都是PCIe接口,接口单元3为Infiniband接口。设备B和设备C的接口单元1都接在主机主板上同一个PCIe Switch 2上形成传输路径1,设备B和设备C的接口单元2都接在主机主板上同一个PCIe Switch 3上形成传输路径2,其中,设备B和设备C的接口单元3可以直接通过光纤直连或通过一个或多个Infiniband 交换机连接形成传输路径3。
示例性的,上述步骤的执行主体包括但不限于:与所述发送设备和所述接收设备直接分别相连的第一CPU(例如,图3中的CPU A)、与所述第一CPU相连的第二CPU(例如,图3中的CPU B),当然,也可以是未在图3中示出的与上述发送设备和接收设备直接或间接连接的其他CPU,或者是其他的具备类似功能或能力的设备或系统。示例性的,如图3所示,由于所述CPUA与所述设备B和设备C分别直接相连,因此,CPU A为更优的选择,使用所述CPU A执行上述步骤有利于提高本实施例中面向异构计算的高带宽数据传输方法的速度。
通过上述步骤,由于将待传输的数据分多个批次进行传输,其中,针对每个批次数据的传输,在传输设备之间会采用多条传输路径进行传输,并对每条路径传输的数据量进行分配,因此,解决了相关技术中由于处理器设备之间的传输带宽不足对异构加速计算的速度造成限制的问题,提高了异构加速计算的速度。
在一个可选的实施例中,所述基于接收设备的数据处理能力,将目标数据划分为多组数据,包括:基于所述接收设备的数据处理能力,确定所述接收设备在一次数据处理中支持处理的数据的第一数据量;以所述第一数据量为划分粒度,将所述目标数据划分为所述多组数据。
在上述步骤中,所述接收设备的数据处理能力包括但不限于:所述接收设备能同时完成数据接收和处理的数据量等等。
在一个可选的实施例中,以所述第一数据量为划分粒度,将所述目标数据划分为所述多组数据包括:将所述目标数据的数据量与所述第一数据量相除,得到相除结果;在所述相除结果中仅包括目标商值的情况下,将所述目标数据划分为所述目标商值个数据量为所述第一数据量的数据组;在所述相除结果中包括目标商值以及余数的情况下,将所述目标数据划分为所述目标商值加1个数据组,其中,所述多组数据中包括所述目标商值个数据量为所述第一数据量的数据组以及1个数据量为第二数据量的数据组。
在上述步骤中,示例性的,将所述目标数据的数据量记为T字节,将所述第一数据量记为S字节,如果T/S可以整除,则每组数据量相同为S字节,共分为T/S组;否则,分为(T-T%S)/S+1组,第1至(T-T%S)/S组的数据量为S字节,第(T-T%S)/S+1组数据量大小为T%S。
通过上述步骤,将所述目标数据按照固定的数据量进行划分,有助于减少数据传输时的开销,提高数据传输的效率。
在一个可选的实施例中,所述确定所述发送设备与所述接收设备之间用于传输目标组数据的目标传输参数,包括:根据所述多条允许进行数据传输的传输路径的带宽和延时确定出所述目标传输路径;确定所述目标传输路径中包括的每条路径的第一传输参数,其中,所述第一传输参数包括:所述每条路径的延时值、带宽值/>、第一参数/> 和第二参数,/> 为基础初始化时间、/>为初始化时间随待传输的数据量的变化率,/>为所述每条路径的标识信息;根据所述第一传输参数确定所述每条路径传输的所述目标组数据的数据量。
在上述步骤中,根据所述多条传输路径的带宽和延时确定出所述目标传输路径包括但不限于:确定所述多条传输路径中带宽较大、延时较小的路径为所述目标传输路径。
通过上述步骤,由于带宽较大的路径可以支持传输更大的数据量,因此,可以提高数据的整体传输速度,减少数据整体传输时间,有效减小延时较大的路径在数据传输过程中的延迟,提高数据传输的实时性和响应速度。
在一个可选的实施例中,所述方法还包括:通过如下方式确定所述每条路径的初始化时间:/>,其中,x为所述每条路径待传输的数据量。
在一个可选的实施例中,所述根据所述第一传输参数确定所述每条路径传输的所述目标数据的数据量包括:根据所述第一传输参数,通过如下公式确定所述每条路径单独传输所述目标组数据所需的第一传输时间/>:/>,其中,/>为所述目标组数据的标识信息;基于多个所述第一传输时间确定第二传输时间,其中,所述第二传输时间为多个所述第一传输时间中包括的值最小的第一传输时间;根据所述第二传输时间确定目标传输时间;根据所述目标传输时间以及所述第一传输参数,确定所述每条路径传输的所述目标组数据的数据量。
在上述步骤中,示例性的,图5是根据本申请实施例的面向异构计算的高带宽数据传输方法的数据传输过程示意图,将所述目标组数据的数据量按照所述传输路径的个数进行划分,以确保分配到各路径的数据量同时传完以达到性能最优。由于每条传输路径的特点不完全相同,因此分配给每条路径的数据的大小不同,示例性的,将所述目标数据划分为三组数据,每组数据通过三条路径进行传输的数据传输过程如图5所示。
在一个可选的实施例中,根据所述目标传输时间以及所述第一传输参数,确定所述每条路径传输的所述目标组数据的数据量包括:根据所述目标传输时间以及所述第一传输参数,通过如下公式,确定所述每条路径传输的所述目标组数据的数据量:,其中,/>为所述目标传输时间。
在一个可选的实施例中,所述根据所述第二传输时间确定目标传输时间包括:确定所述每条路径在所述第二传输时间内传输的数据量之和,得到第三数据量;基于所述第三数据量与所述目标组数据的数据量之间的大小关系,确定所述目标传输时间。
在一个可选的实施例中,基于所述第三数据量与所述目标组数据的数据量之间的大小关系,确定所述目标传输时间包括:重复执行如下步骤,直到更新后的第三数据量小于所述目标组数据的数据量为止:将所述第二传输时间的值更新为当前所的述第二传输时间减去第一时长所得到的值,其中,所述第一时长大于零;确定所述每条路径在更新后的第二传输时间内传输的数据量之和,得到更新后的第三数据量;确定所述更新后的第三数据量与所述目标组数据量的大小关系;将最后一次的前一次得到的更新后的第二传输时间确定为所述目标传输时间。
在上述步骤中,示例性的,根据所述第二传输时间确定目标传输时间的步骤如下,其中,所述第二传输时间记为T,所述目标传输时间记为T_Pre,所述第三数据量记为S_MAX,所述目标数据量记为P:
步骤1,计算并累加各传输路径在T时间内传输的数据量总和S_MAX;
步骤2,比较P和S_MAX;如果P≤S_MAX,则将本次T记录下来,同时将T减少一个预设的∆T,跳转至步骤1;如果P>S_MAX,则将上一次的T记为T_Pre。
在一个可选的实施例中,确定所述每条路径在当前确定出的第二传输时间内传输的数据量之和包括:通过如下公式确定所述每条路径在当前确定出的第二传输时间内传输的数据量:/>,其中,/>为所述当前确定出的第二传输时间;通过如下公式确定所述每条路径在当前确定出的第二传输时间内传输的数据量之和/>:/>, 其中,M为所述目标传输路径中包括的路径条数。
在一个可选的实施例中,确定所述第一传输参数中包括的所述延时值包括:通过如下方式确定第一路径的延时值,其中,所述第一路径为所述目标传输路径中包括的任一条路径:确定所述第一路径中包括的各个第一路径段的延时值;将各个所述第一路径段的延时值的和值确定为所述延时值。
在上述步骤中,针对每一条路径, 由于所述发送设备和所述接收设备之间可以包括至少一个交换机,因此,针对该条路径,会存在多种实现的具体方式,该情况下,可根据目标组数据的大小和种类,或者根据设备需求,或者根据其他预配置的信息,或者根据其他默认的设置规则,从该多种实现方式中选择确定出一条具体的传输路径,示例性的,在图3所示的路径1上,设备B、设备C均与交换机D、交换机E分别相连(此处仅以两个交换机为例),其中,设备B、设备C通过交换机D进行数据传输的路径记为路径1,设备B、设备C通过交换机E进行数据传输的路径记为路径2,交换机D的吞吐量大于交换机E,因此,在所述目标组数据量较大时,优选所述路径1进行数据传输。
在一个可选的实施例中,确定所述第一传输参数中包括的所述带宽值包括:通过如下方式确定第二路径的带宽值,其中,所述第二路径为所述目标传输路径中包括的任一条路径:确定所述第二路径中包括的各个第二路径段的带宽值;将多个所述第二路径段的带宽值中包括的最小带宽值确定为所述带宽值。
在一个可选的实施例中,在确定所述每条路径传输的所述目标组数据的数据量之后,所述方法还包括:将所述每条路径传输的数据进行字节对齐,以使所述每条路径传输的数据量满足所述每条路径支持传输的数据的最小传输单位的整数倍,以及,所述每条路径传输的数据量的总和与所述目标组数据的数据量相等。
通过上述步骤,通过进行字节对齐,使每条路径传输的数据量为最小传输单位的整数倍,可以最大化利用网络资源,避免数据传输过程中的资源浪费,并且,字节对齐可以确保数据在传输过程中能够高效地进行打包和解包操作,提高数据传输的效率和速度。
在一个可选的实施例中,所述方法还包括:确定预先分别为所述每条路径配置的第一中央处理器CPU核;利用分别为所述每条路径配置的所述第一中央处理器CPU核为所述每条路径进行初始化操作。
在上述步骤中,所述第一CPU核为上述步骤执行主体CPU的多个CPU核中的一个或多个,例如,所述第一CPU核为图3所示的CPU A或CPU B中所包括的多个CPU核中的一个或多个。
通过上述步骤,由于预先为每条路径配置第一CPU核用于初始化操作,可以确保每条路径都有专门的处理器核心进行处理,从而实现避免资源竞争、加速初始化、降低数据传输的时间的效果。
在一个可选的实施例中,利用分别为所述每条路径配置的所述第一中央处理器CPU核为所述每条路径进行初始化操作包括:利用分别为所述每条路径配置的所述第一中央处理器CPU核对应清除为所述每条路径设置的标志位,其中,所述标志位为所述发送设备设置的,所述标志位用于指示对应的所述每条路径当前次数据传输完成状态。
在上述步骤中,清除为所述每条路径设置的标志位,包括但不限于:将所述标志位的值进行更新,例如,将所述标志位的值置为0。
在一个可选的实施例中,所述方法还包括:所述发送设备在确定通过第三路径完成当前次数据传输的情况下,将为所述第三路径设置的标志位的值更新为第一值,其中,所述第三路径为所述目标传输路径中包括的任一条路径,所述第一值用于指示所述第三路径已完成当前次数据传输。
在上述步骤中,将为所述第三设置的标志位的值更新为第一值,包括但不限于:将所述标志位的值置为1,将为所述第三路径设置的标志位的值更新为第一值,包括但不限于:各传输路径在自身完成数据传输的情况下,将标志位的值更新为第一值;各传输路径在全部路径完成数据传输的情况下,同时将标志位的值更新为第一值。
在一个可选的实施例中,所述方法还包括:利用第二CPU核对为所述每条路径设置的标志位进行轮询,其中,所述标志位为所述发送设备设置的,所述标志位用于指示对应的所述每条路径当前次数据传输完成状态;在确定出为所述每条路径设置的标志位取值均为第一值的情况下,确定出所述目标组数据传输完成。
在上述步骤中,所述第二CPU核为上述步骤执行主体CPU的多个CPU核中的任意一个,所述第二CPU核可以是预先进行设置的或是随机选定的,例如,所述第一CPU核为图3所示的CPU A、CPU B中所包括的多个CPU核中的任意一个。
在一个可选的实施例中,在确定出所述目标组数据传输完成的情况下,所述方法还包括:将所述目标组数据的数据量以及所述目标组数据的存储地址通知给所述接收设备。
在上述步骤中,将所述目标组数据的数据量以及所述目标组数据的存储地址通知给所述接收设备,包括但不限于:在所述接收设备对应的寄存器中写入包含所述目标组数据的数据量、所述目标组数据的存储地址等信息的指令;通过DMA(Direct Memory Access,直接内存存取)控制器将数据传输的数据量和存储地址信息通知所述接收设备;以向所述接收设备发送中断信号的方式通知数据传输的数据量和存储地址信息;通过与所述接收设备共享内存的方式来传递数据传输的数据量和存储地址信息;通过总线将数据传输的数据量和存储地址信息通知所述接收设备。
在一个可选的实施例中,所述方法还包括:所述接收设备在接收到所述目标组数据的数据量以及所述目标组数据的存储地址的情况下,对所述目标组数据进行处理。
图6是根据本申请实施例的面向异构计算的高带宽数据传输方法的流程图二,如图6所示,将目标数据进行分组的具体步骤如下:
步骤S602,在目标数据的数据量为P字节的情况下,根据所述接收设备的最优处理的字节数S将所述目标数据进行分组,判断P/S是否可以整除,在可以整除的情况下,执行步骤S604,在不可以整除的情况下,执行步骤S606;
步骤S604,将所述目标数据分为P/S组,其中,每组的字节数为S;
步骤S606,将所述目标数据分为(P-P%S)/S+1组,其中,第1至(P-P%S)/S组的数据量为S字节,第(P-P%S)/S+1组数据量大小为P%S。
下面以目标组数据为第1组数据,传输路径为图3所示的三条传输路径为例,对各传输路径的数据量的分配方法进行说明,重复执行下面的步骤,直到所述P/S组或(P-P%S)/S+1组数据传输完成,其中,所述目标组数据的数据量为,第/> 路径分配的数据量为/> 字节,第/> 路径的带宽值/>(/>为第/> 路径中各路径段的最小带宽),第/> 路径的延时值为/>(/>为第/> 路径中各路径段的延时和),基础初始化时间为/>,初始化时间随待传输的数据量的变化率为/>:
图7是根据本申请实施例的面向异构计算的高带宽数据传输方法的流程图三,如图7所示,计算各传输路径应该分配的数据量大小的具体步骤如下:
步骤S702,建立数据传输集合,其中,该集合内每个成员包括该总线类型、带宽/>、延时/> 和初始化时间参数/> 和/>,下标/> 代表第/> 条路径,在本实施例中,所述数据传输集合共有3个成员{(PCIe,/>,/>,/>,/>)、(PCIe,/>,/>, /> ,/> )和(IB,/>,/>,/>,/> )};
步骤S704,通过如下公式,计算各路径单独传输所需要的时间,其中,第/> 路径单独传输该批数据需要的时间记为/>:/>;
步骤S706,比较各传输路径单独传输个数据需要的时间/>,取最小值得记为;
步骤S708,记传输个数据最优传输时间为T,将其初始值设为/>;
步骤S710,通过如下公式计算各传输路径在T时间内传输的数据量,并求出总和/>其中,公式如下:/>;
步骤S712,比较和/>;在/>的情况下,跳转到步骤S714,在/>情况下,则将前一次的T值T’作为最优传输时间T的值,跳转到步骤S716;
步骤S714,将本次T保存起来记录在T_Pre,同时将T减少一个预设的,跳转至步骤S710;
步骤S716,根据如下公式,确定出各条路径所应该分配的数据量:;
步骤S718,对各条传输路径的数据量进行取整,确保/>是整数且符合内存对齐要求,同时确保3条传输路径分配的数据量/>之和等于/>;
步骤S720,为各路径单独分配各自对应的CPU核,各传输路径同时做初始化操作,其中,所述初始化操作包括:清除所述各传输路径对应的传输完成标志位;
步骤S722,发送控制命令启动各路径的数据传输;
步骤S724,各路径传输结束后,发送设备设置对应寄存器的标志位,表示数据传输完成,其中,每一个标志位对应一条传输路径;
步骤S726,轮询各传输路径的传输完成标志位。在所有所述传输路径对应的传输完成标志位为预定值的情况下后,记为本组数据传输完成;
步骤S728,在本组数据传输完成的情况下,将本组传输的数据大小、数据的目标位置 通知接收设备,其中,所述通知方式为向所述目标设备的寄存器写入相关指令;
步骤S730,所述接收设备收到所述通知后,对所述本组数据进行处理。
在步骤S716和步骤S718中,各路径分配的各路径的最终传输时间数据量/>满足如下条件:/>。
在步骤S728中,所述轮询各传输路径的传输完成标志位的执行主体为CPU中的任一个CPU核。
通过上述步骤,在所述接收设备与所述发送设备之间采用多条总线进行数据传输,并依据不同总线的传输带宽、延时参数和目标设备最佳处理数据尺寸等因素,将数据分组并分配到不同总线上,充分利用多条总线的带宽同时并行传输数据,缓解了异构计算中数据传输性能瓶颈。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
在本实施例中还提供了一种CPU,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图8是根据本申请实施例的CPU的结构框图,如图8所示,该装置包括:划分模块82,用于基于接收设备的数据处理能力,将目标数据划分为多组数据,其中,所述目标数据为发送设备待发送给所述接收设备的数据,所述发送设备与所述接收设备之间包括多条允许进行数据传输的传输路径;第一确定模块84,用于确定所述发送设备与所述接收设备之间用于传输目标组数据的目标传输参数,其中,所述目标传输参数包括用于传输所述目标组数据的目标传输路径,以及,通过所述目标传输路径中包括的每条路径传输的所述目标组数据的数据量,其中,所述目标组数据为所述多组数据中包括的任一组数据,所述目标传输路径为多条所述传输路径中包括的至少两条路径,所述目标传输路径中包括的任意两条路径传输所述目标组数据的数据量的传输时间的差值小于预定阈值;发送模块86,用于将所述目标传输参数配置给所述发送设备,以指示所述发送设备按照所述目标传输参数将所述目标组数据传输给所述接收设备。
在一个可选的实施例中,所述划分模块82,包括:第一确定子模块,用于基于所述接收设备的数据处理能力,确定所述接收设备在一次数据处理中支持处理的数据的第一数据量;划分子模块,用于以所述第一数据量为划分粒度,将所述目标数据划分为所述多组数据。
在一个可选的实施例中,所述划分子模块,包括:相除单元,用于将所述目标数据的数据量与所述第一数据量相除,得到相除结果;第一划分单元,用于在所述相除结果中仅包括目标商值的情况下,将所述目标数据划分为所述目标商值个数据量为所述第一数据量的数据组;第二划分单元,用于在所述相除结果中包括目标商值以及余数的情况下,将所述目标数据划分为所述目标商值加1个数据组,其中,所述多组数据中包括所述目标商值个数据量为所述第一数据量的数据组以及1个数据量为第二数据量的数据组。
在一个可选的实施例中,所述第一确定模块84,包括:第二确定子模块,用于根据所述多条允许进行数据传输的传输路径的带宽和延时确定出所述目标传输路径;第三确定子模块,用于确定所述目标传输路径中包括的每条路径的第一传输参数,其中,所述第一传输参数包括:所述每条路径的延时值、带宽值/>、第一参数/> 和第二参数/>,/> 为基础初始化时间、/> 为初始化时间随待传输的数据量的变化率,/>为所述每条路径的标识信息;第四确定子模块,用于根据所述第一传输参数确定所述每条路径传输的所述目标组数据的数据量。
在一个可选的实施例中,所述装置还包括:第二确定模块,用于通过如下方式确定所述每条路径的初始化时间:/>,其中,x为所述每条路径待传输的数据量。
在一个可选的实施例中,所述第四确定子模块,包括:第一确定单元,用于根据所述第一传输参数,通过如下公式确定所述每条路径单独传输所述目标组数据所需的第一传输时间/>:/>,其中,/>为所述目标组数据的标识信息;第二确定单元,用于基于多个所述第一传输时间确定第二传输时间,其中,所述第二传输时间为多个所述第一传输时间中包括的值最小的第一传输时间;第三确定单元,用于根据所述第二传输时间确定目标传输时间;第四确定单元,用于根据所述目标传输时间以及所述第一传输参数,确定所述每条路径传输的所述目标组数据的数据量。
在一个可选的实施例中,所述第四确定单元,包括:第一确定子单元,用于根据所述目标传输时间以及所述第一传输参数,通过如下公式,确定所述每条路径传输的所述目标组数据的数据量:/>,其中,/>为所述目标传输时间。
在一个可选的实施例中,所述第三确定单元,包括:第二确定子单元,用于确定所述每条路径在所述第二传输时间内传输的数据量之和,得到第三数据量;第三确定子单元,用于基于所述第三数据量与所述目标组数据的数据量之间的大小关系,确定所述目标传输时间。
在一个可选的实施例中,所述第三确定子单元,包括:执行次子单元,用于重复执行如下步骤,直到更新后的第三数据量小于所述目标组数据的数据量为止:将所述第二传输时间的值更新为当前所的述第二传输时间减去第一时长所得到的值,其中,所述第一时长大于零;确定所述每条路径在更新后的第二传输时间内传输的数据量之和,得到更新后的第三数据量;确定所述更新后的第三数据量与所述目标组数据量的大小关系;第一确定次子单元,用于将最后一次的前一次得到的更新后的第二传输时间确定为所述目标传输时间。
在一个可选的实施例中,所述第二确定子单元,包括:第二确定次子单元,用于通过如下公式确定所述每条路径在当前确定出的第二传输时间内传输的数据量:,其中,/>为所述当前确定出的第二传输时间;第三确定次子单元,用于通过如下公式确定所述每条路径在当前确定出的第二传输时间内传输的数据量之和/>:, 其中,M为所述目标传输路径中包括的路径条数。
在一个可选的实施例中,所述第三确定子模块,包括:第五确定单元,用于通过如下方法确定所述第一传输参数中包括的所述延时值:通过如下方式确定第一路径的延时值,其中,所述第一路径为所述目标传输路径中包括的任一条路径:确定所述第一路径中包括的各个第一路径段的延时值;将各个所述第一路径段的延时值的和值确定为所述延时值。
在一个可选的实施例中,所述第三确定子模块,包括:第六确定单元,用于通过如下方法确定所述第一传输参数中包括的所述带宽值:通过如下方式确定第二路径的带宽值,其中,所述第二路径为所述目标传输路径中包括的任一条路径:确定所述第二路径中包括的各个第二路径段的带宽值;将多个所述第二路径段的带宽值中包括的最小带宽值确定为所述带宽值。
在一个可选的实施例中,所述装置还包括:对齐模块,用于在确定所述每条路径传输的所述目标组数据的数据量之后,将所述每条路径传输的数据进行字节对齐,以使所述每条路径传输的数据量满足所述每条路径支持传输的数据的最小传输单位的整数倍,以及,所述每条路径传输的数据量的总和与所述目标组数据的数据量相等。
在一个可选的实施例中,所述装置还包括:配置模块,用于确定预先分别为所述每条路径配置的第一中央处理器CPU核;初始化模块,用于利用分别为所述每条路径配置的所述第一中央处理器CPU核为所述每条路径进行初始化操作。
在一个可选的实施例中,所述初始化模块,包括:清除子模块,用于利用分别为所述每条路径配置的所述第一中央处理器CPU核对应清除为所述每条路径设置的标志位,其中,所述标志位为所述发送设备设置的,所述标志位用于指示对应的所述每条路径当前次数据传输完成状态。
在一个可选的实施例中,所述发送装置还包括:更新模块,用于所述发送设备在确定通过第三路径完成当前次数据传输的情况下,将为所述第三路径设置的标志位的值更新为第一值,其中,所述第三路径为所述目标传输路径中包括的任一条路径,所述第一值用于指示所述第三路径已完成当前次数据传输。
在一个可选的实施例中,所述装置还包括:轮询模块,用于利用第二CPU核对为所述每条路径设置的标志位进行轮询,其中,所述标志位为所述发送设备设置的,所述标志位用于指示对应的所述每条路径当前次数据传输完成状态;第三确定模块,用于在确定出为所述每条路径设置的标志位取值均为第一值的情况下,确定出所述目标组数据传输完成。
在一个可选的实施例中,所述装置还包括:通知模块,用于在确定出所述目标组数据传输完成的情况下,将所述目标组数据的数据量以及所述目标组数据的存储地址通知给所述接收设备。
在一个可选的实施例中,所述接收装置还包括:处理模块,用于所述接收设备在接收到所述目标组数据的数据量以及所述目标组数据的存储地址的情况下,对所述目标组数据进行处理。
本申请的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本申请的实施例还提供了一种电子设备,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述电子设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
本申请的实施例还提供了一种计算机程序产品,上述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述任一项方法实施例中的步骤。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (25)
1.一种面向异构计算的高带宽数据传输方法,其特征在于,
包括:
基于接收设备的数据处理能力,将目标数据划分为多组数据,其中,所述目标数据为发送设备待发送给所述接收设备的数据,所述发送设备与所述接收设备之间包括多条允许进行数据传输的传输路径;
确定所述发送设备与所述接收设备之间用于传输目标组数据的目标传输参数,其中,所述目标传输参数包括用于传输所述目标组数据的目标传输路径,以及,通过所述目标传输路径中包括的每条路径传输的所述目标组数据的数据量,其中,所述目标组数据为所述多组数据中包括的任一组数据,所述目标传输路径为多条所述传输路径中包括的至少两条路径,所述目标传输路径中包括的任意两条路径传输所述目标组数据的数据量的传输时间的差值小于预定阈值;
将所述目标传输参数配置给所述发送设备,以指示所述发送设备按照所述目标传输参数将所述目标组数据传输给所述接收设备。
2.根据权利要求1所述的方法,其特征在于,
所述基于接收设备的数据处理能力,将目标数据划分为多组数据,包括:
基于所述接收设备的数据处理能力,确定所述接收设备在一次数据处理中支持处理的数据的第一数据量;
以所述第一数据量为划分粒度,将所述目标数据划分为所述多组数据。
3.根据权利要求2所述的方法,其特征在于,
以所述第一数据量为划分粒度,将所述目标数据划分为所述多组数据包括:
将所述目标数据的数据量与所述第一数据量相除,得到相除结果;
在所述相除结果中仅包括目标商值的情况下,将所述目标数据划分为所述目标商值个数据量为所述第一数据量的数据组;
在所述相除结果中包括目标商值以及余数的情况下,将所述目标数据划分为所述目标商值加1个数据组,其中,所述多组数据中包括所述目标商值个数据量为所述第一数据量的数据组以及1个数据量为第二数据量的数据组。
4.根据权利要求1所述的方法,其特征在于,
所述确定所述发送设备与所述接收设备之间用于传输目标组数据的目标传输参数,包括:
根据所述多条允许进行数据传输的传输路径的带宽和延时确定出所述目标传输路径;
确定所述目标传输路径中包括的每条路径的第一传输参数,其中,所述第一传输参数包括:所述每条路径的延时值、带宽值/>、第一参数/> 和第二参数/>,/>为基础初始化时间、 为初始化时间随待传输的数据量的变化率,/> 为所述每条路径的标识信息;
根据所述第一传输参数确定所述每条路径传输的所述目标组数据的数据量。
5.根据权利要求4所述的方法,其特征在于,
所述方法还包括:
通过如下方式确定所述每条路径的初始化时间:
,
其中,x为所述每条路径待传输的数据量。
6.根据权利要求5所述的方法,其特征在于,
所述根据所述第一传输参数确定所述每条路径传输的所述目标数据的数据量包括:
根据所述第一传输参数,通过如下公式确定所述每条路径单独传输所述目标组数据所需的第一传输时间/>:
,
其中,为所述目标组数据的标识信息;
基于多个所述第一传输时间确定第二传输时间,其中,所述第二传输时间为多个所述第一传输时间中包括的值最小的第一传输时间;
根据所述第二传输时间确定目标传输时间;
根据所述目标传输时间以及所述第一传输参数,确定所述每条路径传输的所述目标组数据的数据量。
7.根据权利要求6所述的方法,其特征在于,
根据所述目标传输时间以及所述第一传输参数,确定所述每条路径传输的所述目标组数据的数据量包括:
根据所述目标传输时间以及所述第一传输参数,通过如下公式,确定所述每条路径传输的所述目标组数据的数据量:
,
其中,为所述目标传输时间。
8.根据权利要求6所述的方法,其特征在于,
所述根据所述第二传输时间确定目标传输时间包括:
确定所述每条路径在所述第二传输时间内传输的数据量之和,得到第三数据量;
基于所述第三数据量与所述目标组数据的数据量之间的大小关系,确定所述目标传输时间。
9.根据权利要求8所述的方法,其特征在于,
基于所述第三数据量与所述目标组数据的数据量之间的大小关系,确定所述目标传输时间包括:
重复执行如下步骤,直到更新后的第三数据量小于所述目标组数据的数据量为止:将所述第二传输时间的值更新为当前所的述第二传输时间减去第一时长所得到的值,其中,所述第一时长大于零;确定所述每条路径在更新后的第二传输时间内传输的数据量之和,得到更新后的第三数据量;确定所述更新后的第三数据量与所述目标组数据量的大小关系;
将最后一次的前一次得到的更新后的第二传输时间确定为所述目标传输时间。
10.根据权利要求8或9所述的方法,其特征在于,
确定所述每条路径在当前确定出的第二传输时间内传输的数据量之和包括:
通过如下公式确定所述每条路径在当前确定出的第二传输时间内传输的数据量:
,
其中,为所述当前确定出的第二传输时间;
通过如下公式确定所述每条路径在当前确定出的第二传输时间内传输的数据量之和:
,
其中,为所述目标传输路径中包括的路径条数。
11.根据权利要求4所述的方法,其特征在于,
确定所述第一传输参数中包括的所述延时值包括:
通过如下方式确定第一路径的延时值,其中,所述第一路径为所述目标传输路径中包括的任一条路径:
确定所述第一路径中包括的各个第一路径段的延时值;
将各个所述第一路径段的延时值的和值确定为所述延时值。
12.根据权利要求4所述的方法,其特征在于,
确定所述第一传输参数中包括的所述带宽值包括:
通过如下方式确定第二路径的带宽值,其中,所述第二路径为所述目标传输路径中包括的任一条路径:
确定所述第二路径中包括的各个第二路径段的带宽值;
将多个所述第二路径段的带宽值中包括的最小带宽值确定为所述带宽值。
13.根据权利要求6所述的方法,其特征在于,
在确定所述每条路径传输的所述目标组数据的数据量之后,所述方法还包括:
将所述每条路径传输的数据进行字节对齐,以使所述每条路径传输的数据量满足所述每条路径支持传输的数据的最小传输单位的整数倍,以及,所述每条路径传输的数据量的总和与所述目标组数据的数据量相等。
14.根据权利要求1所述的方法,其特征在于,
所述方法还包括:
确定预先分别为所述每条路径配置的第一中央处理器CPU核;
利用分别为所述每条路径配置的所述第一中央处理器CPU核为所述每条路径进行初始化操作。
15.根据权利要求14所述的方法,其特征在于,
利用分别为所述每条路径配置的所述第一中央处理器CPU核为所述每条路径进行初始化操作包括:
利用分别为所述每条路径配置的所述第一中央处理器CPU核对应清除为所述每条路径设置的标志位,其中,所述标志位为所述发送设备设置的,所述标志位用于指示对应的所述每条路径当前次数据传输完成状态。
16.根据权利要求1所述的方法,其特征在于,
所述方法还包括:
所述发送设备在确定通过第三路径完成当前次数据传输的情况下,将为所述第三路径设置的标志位的值更新为第一值,其中,所述第三路径为所述目标传输路径中包括的任一条路径,所述第一值用于指示所述第三路径已完成当前次数据传输。
17.根据权利要求1所述的方法,其特征在于,
所述方法还包括:
利用第二CPU核对为所述每条路径设置的标志位进行轮询,其中,所述标志位为所述发送设备设置的,所述标志位用于指示对应的所述每条路径当前次数据传输完成状态;
在确定出为所述每条路径设置的标志位取值均为第一值的情况下,确定出所述目标组数据传输完成。
18.根据权利要求17所述的方法,其特征在于,
在确定出所述目标组数据传输完成的情况下,所述方法还包括:
将所述目标组数据的数据量以及所述目标组数据的存储地址通知给所述接收设备。
19.根据权利要求18所述的方法,其特征在于,
所述方法还包括:
所述接收设备在接收到所述目标组数据的数据量以及所述目标组数据的存储地址的情况下,对所述目标组数据进行处理。
20.一种中央处理器CPU,其特征在于,
包括:
划分模块,用于基于接收设备的数据处理能力,将目标数据划分为多组数据,其中,所述目标数据为发送设备待发送给所述接收设备的数据,所述发送设备与所述接收设备之间包括多条允许进行数据传输的传输路径;
第一确定模块,用于确定所述发送设备与所述接收设备之间用于传输目标组数据的目标传输参数,其中,所述目标传输参数包括用于传输所述目标组数据的目标传输路径,以及,通过所述目标传输路径中包括的每条路径传输的所述目标组数据的数据量,其中,所述目标组数据为所述多组数据中包括的任一组数据,所述目标传输路径为多条所述传输路径中包括的至少两条路径,所述目标传输路径中包括的任意两条路径传输所述目标组数据的数据量的传输时间的差值小于预定阈值;
发送模块,用于将所述目标传输参数配置给所述发送设备,以指示所述发送设备按照所述目标传输参数将所述目标组数据传输给所述接收设备。
21.一种面向异构计算的高带宽数据传输系统,其特征在于,
包括:
权利要求20所述的CPU,所述接收设备以及所述发送设备,其中,
所述CPU与所述接收设备和所述发送设备连接,所述接收设备与所述接收设备之间包括多条允许进行数据传输的传输路径。
22.根据权利要求21所述的系统,其特征在于,
多条所述传输路径的类型包括以下至少之一:
采用PCIe Peer-to-Peer技术所建立的连接路径;
由目标总线连接的路径,其中,所述目标总线包括以下至少之一:Infiniband总线、RoCE协议总线、NVLink总线、CXL总线。
23.一种计算机可读存储介质,其特征在于,
所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现所述权利要求1至19任一项中所述的方法的步骤。
24.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,
所述处理器执行所述计算机程序时实现所述权利要求1至19任一项中所述的方法的步骤。
25.一种计算机程序产品,包括计算机程序,其特征在于,
所述计算机程序被处理器执行时实现权利要求1至19任一项中所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410322529.9A CN117914775B (zh) | 2024-03-20 | 2024-03-20 | 面向异构计算的高带宽数据传输方法、cpu及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410322529.9A CN117914775B (zh) | 2024-03-20 | 2024-03-20 | 面向异构计算的高带宽数据传输方法、cpu及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117914775A true CN117914775A (zh) | 2024-04-19 |
CN117914775B CN117914775B (zh) | 2024-06-25 |
Family
ID=90694100
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410322529.9A Active CN117914775B (zh) | 2024-03-20 | 2024-03-20 | 面向异构计算的高带宽数据传输方法、cpu及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117914775B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112616168A (zh) * | 2020-12-18 | 2021-04-06 | 深圳市微网力合信息技术有限公司 | 一种数据传输方法、装置、电子设备及存储介质 |
CN112689268A (zh) * | 2020-12-21 | 2021-04-20 | 一飞(海南)科技有限公司 | 编队无人机、组网提高多路由数据传输效率的方法及系统 |
CN113347681A (zh) * | 2021-05-31 | 2021-09-03 | 浙江大华技术股份有限公司 | 数据传输方法、装置、存储介质及电子装置 |
CN113595926A (zh) * | 2021-07-28 | 2021-11-02 | 南方电网数字电网研究院有限公司 | 基于数据中台的api数据传输方法、装置、设备和介质 |
CN114928870A (zh) * | 2022-06-09 | 2022-08-19 | 山东闻远通信技术有限公司 | 数据传输方法、装置、电子设备及存储介质 |
CN115914081A (zh) * | 2021-08-05 | 2023-04-04 | 北京金山云网络技术有限公司 | 测量网络往返时间的方法、装置、存储介质和电子设备 |
CN116664377A (zh) * | 2023-04-20 | 2023-08-29 | 飞腾信息技术有限公司 | 数据传输方法及相关装置 |
WO2023231897A1 (zh) * | 2022-06-01 | 2023-12-07 | 中兴通讯股份有限公司 | 数据传输方法、发送服务器、接收服务器及存储介质 |
CN117501723A (zh) * | 2021-09-30 | 2024-02-02 | Oppo广东移动通信有限公司 | 一种多路径传输方法及装置、通信设备 |
-
2024
- 2024-03-20 CN CN202410322529.9A patent/CN117914775B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112616168A (zh) * | 2020-12-18 | 2021-04-06 | 深圳市微网力合信息技术有限公司 | 一种数据传输方法、装置、电子设备及存储介质 |
CN112689268A (zh) * | 2020-12-21 | 2021-04-20 | 一飞(海南)科技有限公司 | 编队无人机、组网提高多路由数据传输效率的方法及系统 |
CN113347681A (zh) * | 2021-05-31 | 2021-09-03 | 浙江大华技术股份有限公司 | 数据传输方法、装置、存储介质及电子装置 |
CN113595926A (zh) * | 2021-07-28 | 2021-11-02 | 南方电网数字电网研究院有限公司 | 基于数据中台的api数据传输方法、装置、设备和介质 |
CN115914081A (zh) * | 2021-08-05 | 2023-04-04 | 北京金山云网络技术有限公司 | 测量网络往返时间的方法、装置、存储介质和电子设备 |
CN117501723A (zh) * | 2021-09-30 | 2024-02-02 | Oppo广东移动通信有限公司 | 一种多路径传输方法及装置、通信设备 |
WO2023231897A1 (zh) * | 2022-06-01 | 2023-12-07 | 中兴通讯股份有限公司 | 数据传输方法、发送服务器、接收服务器及存储介质 |
CN114928870A (zh) * | 2022-06-09 | 2022-08-19 | 山东闻远通信技术有限公司 | 数据传输方法、装置、电子设备及存储介质 |
CN116664377A (zh) * | 2023-04-20 | 2023-08-29 | 飞腾信息技术有限公司 | 数据传输方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN117914775B (zh) | 2024-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12001681B2 (en) | Distributed storage system and data processing method | |
CN109076029B (zh) | 用于非统一网络输入/输出访问加速的方法和装置 | |
CN110309088B (zh) | Zynq fpga芯片及其数据处理方法、存储介质 | |
KR102427550B1 (ko) | 재구성 가능한 멀티 포트들을 구비한 PCIe 스토리지 시스템을 위한 서비스 품질을 인식하는 입출력 관리 | |
EP3923549A1 (en) | Data downloading method and related apparatus | |
CN113138802B (zh) | 命令分发装置、方法、芯片、计算机设备及存储介质 | |
CN105511964A (zh) | I/o请求的处理方法和装置 | |
CN115298656A (zh) | 用于调度可共享pcie端点设备的系统和方法 | |
CN116166434A (zh) | 处理器分配方法及系统、装置、存储介质、电子设备 | |
CN117914775B (zh) | 面向异构计算的高带宽数据传输方法、cpu及系统 | |
CN116032746B (zh) | 资源池的信息处理方法及装置、存储介质及电子装置 | |
CN115994115B (zh) | 芯片控制方法、芯片组及电子设备 | |
CN105393234A (zh) | 用于管理usb数据传送的系统和方法 | |
EP3686738A1 (en) | Device and method for accelerating graphics processor units, and computer readable storage medium | |
CN104933010A (zh) | 一种重复数据删除方法和装置 | |
CN113472523A (zh) | 用户态协议栈报文处理优化方法、系统、装置及存储介质 | |
CN112905523B (zh) | 一种芯片及核间数据传输方法 | |
CN114637574A (zh) | 基于半虚拟化设备的数据处理方法、装置和系统 | |
WO2021208101A1 (zh) | 一种有状态业务的处理方法及装置 | |
JP6930381B2 (ja) | 情報処理システム、演算処理装置及び情報処理システムの制御方法 | |
CN114124825A (zh) | 一种数据传输的方法、系统、装置及存储介质 | |
CN113110950A (zh) | 处理器及通信方法、存储介质及计算设备 | |
CN112636949A (zh) | 一种电磁暂态实时并行仿真数据的通信方法及装置 | |
CN111614794B (zh) | 报文传输方法、装置、电子设备及存储介质 | |
CN113157610B (zh) | 数据保存方法及装置、存储介质、电子装置 |
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 | ||
GR01 | Patent grant |