CN117971745B - 一种数据处理系统、方法、装置、设备及介质 - Google Patents
一种数据处理系统、方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN117971745B CN117971745B CN202410371494.8A CN202410371494A CN117971745B CN 117971745 B CN117971745 B CN 117971745B CN 202410371494 A CN202410371494 A CN 202410371494A CN 117971745 B CN117971745 B CN 117971745B
- Authority
- CN
- China
- Prior art keywords
- data
- controller
- transmitted
- block
- size
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 111
- 238000000034 method Methods 0.000 title claims abstract description 82
- 230000005540 biological transmission Effects 0.000 claims abstract description 279
- 230000001133 acceleration Effects 0.000 claims abstract description 89
- 238000012546 transfer Methods 0.000 claims description 46
- 238000004590 computer program Methods 0.000 claims description 45
- 238000010801 machine learning Methods 0.000 claims description 19
- 238000006243 chemical reaction Methods 0.000 claims description 13
- 238000003672 processing method Methods 0.000 claims description 12
- 238000012549 training Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
Landscapes
- Bus Control (AREA)
Abstract
本发明公开了计算机技术领域内的一种数据处理系统、方法、装置、设备及介质。本发明中,主机能够确定加速设备对应的块数量传输阈值和块大小传输阈值;在需传输数据的块总量大于块数量传输阈值时,使第一控制器在存储器中以DMA方式处理需传输数据,以快速完成大量数据的DMA传输和处理;在需传输数据的单块特征大于块大小传输阈值时,使第二控制器在存储器中以DMA方式处理需传输数据,以最小资源耗完成少量数据的DMA传输和处理。由于第一控制器实现的DMA方式单次传输的数据量大于第二控制器实现的DMA方式单次传输的数据量,因此本发明可基于需传输数据自主决策并选择合适的DMA传输方式,适用于混合应用场景下的数据传输。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种数据处理系统、方法、装置、设备及介质。
背景技术
DMA(Direct Memory Access,直接存储器访问)是一种内存访问方式,主机的CPU无需参与传输过程,DMA控制器能够将数据从一个地址空间复制到另一个地址空间。当搬运的数据在物理地址上为离散时,需要多次进行块搬移,效率低。链式DMA可以解决多数据块的传输问题,但其不适合少量数据块的数据传输。
因此,如何根据实际传输需求选择相应的DMA方式,是本领域技术人员需要解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种数据处理系统、方法、装置、设备及介质,以根据实际传输需求选择相应的DMA方式。其具体方案如下:
第一方面,本发明提供了一种数据处理系统,包括:主机以及与所述主机连接的加速设备;
所述加速设备包括存储器、第一控制器和第二控制器;所述第一控制器实现的DMA方式单次传输的数据量大于所述第二控制器实现的DMA方式单次传输的数据量;
所述主机用于:确定所述加速设备对应的块数量传输阈值和块大小传输阈值;在需传输数据的块总量大于所述块数量传输阈值时,使所述第一控制器在所述存储器中以DMA方式处理所述需传输数据;在所述需传输数据的单块特征大于所述块大小传输阈值时,使所述第二控制器在所述存储器中以DMA方式处理所述需传输数据。
另一方面,所述主机用于:设定目标块数量和目标块大小,分别使所述第一控制器和所述第二控制器在所述存储器中以DMA方式处理所述目标块数量个目标块大小的数据块,并分别记录所述第一控制器的第一处理时间和所述第二控制器的第二处理时间,若所述第二处理时间大于所述第一处理时间,则将所述目标块数量确定为所述块数量传输阈值,将所述目标块大小确定为所述块大小传输阈值。
另一方面,所述主机用于:若所述第二处理时间不大于所述第一处理时间,则调整所述目标块数量和所述目标块大小,并针对调整后的目标块数量和调整后的目标块大小,执行分别使所述第一控制器和所述第二控制器在所述存储器中以DMA方式处理所述目标块数量个目标块大小的数据块以及后续其他步骤,直至所述第二处理时间大于所述第一处理时间。
另一方面,所述主机用于:以线性递增方式调整所述目标块数量和所述目标块大小;或,以指数递增方式调整所述目标块数量和所述目标块大小;或,按照机器学习调整策略调整所述目标块数量和所述目标块大小;或,按照公式y=aex+bxn+cx+d计算调整后的目标块数量或调整后的目标块大小,y表示调整后的目标块数量或调整后的目标块大小,a、b、c、d为预设常量,x为所述目标块数量或所述目标块大小。
另一方面,所述主机用于:在不同传输带宽的限制下,分别使所述第一控制器和所述第二控制器在所述存储器中以DMA方式处理所述目标块数量个目标块大小的数据块。
另一方面,所述主机用于:在所述需传输数据的单块特征小于所述块大小传输阈值时,使所述第一控制器在所述存储器中以DMA方式处理所述需传输数据。
另一方面,所述主机用于:统计所述需传输数据中的各个数据块的数据量均值,将所述数据量均值作为所述需传输数据的单块特征;或,将所述需传输数据中的首个数据块的数据量大小作为所述需传输数据的单块特征;或,将所述需传输数据中的最后一个数据块的数据量大小作为所述需传输数据的单块特征;或,将所述需传输数据中的中值位置的数据块的数据量大小作为所述需传输数据的单块特征;或,利用机器学习模型确定所述需传输数据的单块特征。
另一方面,所述主机用于:在需传输数据的块总量不大于所述块数量传输阈值时,对比所述需传输数据的单块特征与所述块大小传输阈值的大小。
另一方面,所述主机用于:获取传输配置信息,按照所述传输配置信息读取所述需传输数据;所述传输配置信息包括:所述需传输数据的数据大小、源地址和目的地址。
另一方面,所述主机用于:接收所述传输配置信息的更新指令,按照所述更新指令更新所述传输配置信息。
另一方面,所述加速设备还包括:与所述第一控制器和所述第二控制器均连接的协议转换模块;
相应地,所述协议转换模块用于接收所述主机发送的所述需传输数据的数据大小、源地址和目的地址。
另一方面,所述第一控制器用于:根据所述主机发送的所述需传输数据的描述符在所述存储器中以链式DMA方式处理所述需传输数据,并通过中断发送通知消息至所述主机。
另一方面,所述第二控制器用于:根据所述主机发送的所述需传输数据的源地址和目的地址在所述存储器中以块DMA方式处理所述需传输数据,并通过中断发送通知消息至所述主机。
另一方面,所述加速设备为多个,多个加速设备构成异构计算池。
另一方面,所述主机用于:通过加载所述加速设备的驱动来确定所述加速设备对应的块数量传输阈值和块大小传输阈值。
另一方面,所述主机用于:根据所述加速设备的驱动的更新操作,更新所述驱动,以便在所述主机加载所述加速设备的驱动时更新所述块数量传输阈值和所述块大小传输阈值。
另一方面,本发明提供了一种数据处理方法,应用于主机,所述主机连接有加速设备;所述加速设备包括存储器、第一控制器和第二控制器,所述第一控制器实现的DMA方式单次传输的数据量大于所述第二控制器实现的DMA方式单次传输的数据量;
该方法包括:
确定所述加速设备对应的块数量传输阈值和块大小传输阈值;
在需传输数据的块总量大于所述块数量传输阈值时,使所述第一控制器在所述存储器中以DMA方式处理所述需传输数据;在所述需传输数据的单块特征大于所述块大小传输阈值时,使所述第二控制器在所述存储器中以DMA方式处理所述需传输数据。
另一方面,本发明提供了一种数据处理装置,应用于主机,所述主机连接有加速设备;所述加速设备包括存储器、第一控制器和第二控制器,所述第一控制器实现的DMA方式单次传输的数据量大于所述第二控制器实现的DMA方式单次传输的数据量;
该装置包括:
确定模块,用于确定所述加速设备对应的块数量传输阈值和块大小传输阈值;
传输模块,用于在需传输数据的块总量大于所述块数量传输阈值时,使所述第一控制器在所述存储器中以DMA方式处理所述需传输数据;在所述需传输数据的单块特征大于所述块大小传输阈值时,使所述第二控制器在所述存储器中以DMA方式处理所述需传输数据。
另一方面,本发明提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现前述公开的数据处理方法。
另一方面,本发明提供了一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的数据处理方法。
通过以上方案可知,本发明提供了一种数据处理系统,包括:主机以及与所述主机连接的加速设备;所述加速设备包括存储器、第一控制器和第二控制器;所述第一控制器实现的DMA方式单次传输的数据量大于所述第二控制器实现的DMA方式单次传输的数据量;所述主机用于:确定所述加速设备对应的块数量传输阈值和块大小传输阈值;在需传输数据的块总量大于所述块数量传输阈值时,使所述第一控制器在所述存储器中以DMA方式处理所述需传输数据;在所述需传输数据的单块特征大于所述块大小传输阈值时,使所述第二控制器在所述存储器中以DMA方式处理所述需传输数据。
可见,本发明的有益效果为:主机能够确定加速设备对应的块数量传输阈值和块大小传输阈值;在需传输数据的块总量大于块数量传输阈值时,使第一控制器在存储器中以DMA方式处理需传输数据,以快速完成大量数据的DMA传输和处理;在需传输数据的单块特征大于块大小传输阈值时,使第二控制器在存储器中以DMA方式处理需传输数据,以最小资源耗完成少量数据的DMA传输和处理。由于第一控制器实现的DMA方式单次传输的数据量大于第二控制器实现的DMA方式单次传输的数据量,因此本发明所提供系统可基于需传输数据自主决策并选择合适的DMA传输方式,可有效解决混合应用场景下的数据传输效率低问题。
相应地,本发明提供的一种数据处理装置、设备及可读存储介质,也同样具有上述技术效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明公开的一种数据处理系统示意图;
图2为本发明公开的一种链式DMA的传输示意图;
图3为本发明公开的一种块DMA的传输示意图;
图4为本发明公开的另一种数据处理系统示意图;
图5为本发明公开的一种数据处理方法流程图;
图6为本发明提供的一种服务器结构图;
图7为本发明提供的一种终端结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实例,都属于本发明保护的范围。
目前,当搬运的数据在物理地址上为离散时,需要多次进行块搬移,效率低。链式DMA可以解决多数据块的传输问题,但其不适合少量数据块的数据传输。为此,本发明提供了一种数据处理方案,能够根据实际传输需求选择相应的DMA方式。
参见图1所示,本发明实施例公开了一种数据处理系统,包括:主机以及与主机连接的加速设备。其中,加速设备包括存储器、第一控制器和第二控制器;第一控制器实现的DMA方式单次传输的数据量大于第二控制器实现的DMA方式单次传输的数据量。主机可以是服务器等计算机设备。加速设备可以是FPGA、GPU等。
例如:第一控制器实现的DMA方式为链式DMA,第二控制器实现的DMA方式为块DMA。链式DMA的传输示意图如图2所示,主机端存在多个不连续的数据块,对应的加速设备端也可能存在多个不连续的存储地址。将离散的数据块的传输信息填充到描述符中,加速设备端首先通过DMA数据传输方式读取描述符,然后根据描述符进行DMA数据传输;一次传输完成之后,根据前一个描述符中记录的下一个描述符所在的地址读取下一个描述符,并根据读取的描述符信息执行下一次DMA,直到所有的描述符执行完成。描述符结构体中定义有:数据传输的源地址、目的地址、长度和下个描述符的存储地址。从上述可以看出,链式DMA可以解决多个数据块的传输问题。但是这种DMA模式在传输少数据块时效率较块DMA低,不适合少数据块时的数据传输。
块DMA传输示意图如图3所示。在主机端设置好DMA传输的三要素:源地址、目的地址和长度,其中源地址和目的地址分别对应主机DDR内存地址和加速设备DDR地址。通过IOMMU(Input/Output Memory Management Unit,IO内存管理单元)对PCI域的地址进行转换,加速设备端的DMA控制器就可以根据配置信息进行主机端与设备端的数据相互传输。从图3中可以看出,块DMA每次只能传输一个连续物理内存块的数据,适合大块数据量的数据传输。
其中,主机用于:确定加速设备对应的块数量传输阈值和块大小传输阈值;在需传输数据的块总量大于块数量传输阈值时,使第一控制器在存储器中以DMA方式处理需传输数据;在需传输数据的单块特征大于块大小传输阈值时,使第二控制器在存储器中以DMA方式处理需传输数据。具体为:在需传输数据的块总量大于块数量传输阈值时,第一控制器在存储器中以DMA方式读或写需传输数据;在需传输数据的单块特征大于块大小传输阈值时,第二控制器在存储器中以DMA方式读或写需传输数据。在存储器中读取需传输数据后,将需传输数据传输至主机端;在存储器中写需传输数据后,表示需传输数据从主机端传输到加速设备端。
例如,第一控制器用于:根据主机发送的需传输数据的描述符在存储器中以链式DMA方式处理需传输数据,并通过中断发送通知消息至主机。第二控制器用于:根据主机发送的需传输数据的源地址和目的地址在存储器中以块DMA方式处理需传输数据,并通过中断发送通知消息至主机。
在一种实施方式中,主机确定加速设备对应的块数量传输阈值和块大小传输阈值,具体包括:主机设定目标块数量和目标块大小,分别使第一控制器和第二控制器在存储器中以DMA方式处理目标块数量个目标块大小的数据块,并分别记录第一控制器的第一处理时间和第二控制器的第二处理时间,若第二处理时间大于第一处理时间,则将目标块数量确定为块数量传输阈值,将目标块大小确定为块大小传输阈值。若第二处理时间不大于第一处理时间,则调整目标块数量和目标块大小,并针对调整后的目标块数量和调整后的目标块大小,执行分别使第一控制器和第二控制器在存储器中以DMA方式处理目标块数量个目标块大小的数据块以及后续其他步骤,直至第二处理时间大于第一处理时间。
其中,主机可以用于:以线性递增方式调整目标块数量和目标块大小;或,以指数递增方式调整目标块数量和目标块大小;或,按照机器学习调整策略调整目标块数量和目标块大小;或,按照公式y=aex+bxn+cx+d计算调整后的目标块数量或调整后的目标块大小,y表示调整后的目标块数量或调整后的目标块大小,a、b、c、d为预设常量,x为所述目标块数量或所述目标块大小。可见,目标块数量和目标块大小的取值调整可通过同一公式进行计算。其中,机器学习调整策略可基于任意结构的机器学习模型训练得到。
在一种实施方式中,主机用于:在不同传输带宽的限制下,分别使第一控制器和第二控制器在存储器中以DMA方式处理目标块数量个目标块大小的数据块。那么在设定的目标块数量和目标块大小下,可以基于不同传输带宽进行块数量传输阈值和块大小传输阈值的训练,也就是:同一目标块数量和目标块大小下,通过取不同传输带宽,可以对应有相应的块数量传输阈值和块大小传输阈值。例如:目标块数量和目标块大小均取值为1,若传输带宽设定为2.5GT/s、10GT/s和20GT/s,那么可得到每一传输带宽对应的块数量传输阈值和块大小传输阈值。传输带宽可按照表1进行取值。
表1:PCIe带宽汇总表
在一种实施方式中,主机用于:在需传输数据的单块特征小于块大小传输阈值时,表示需传输数据的数据量不大,因此使第一控制器在存储器中以DMA方式处理需传输数据,也就是以块DMA方式完成数据的传输。
其中,需传输数据的单块特征的确定过程包括:主机统计需传输数据中的各个数据块的数据量均值,将数据量均值作为需传输数据的单块特征;或,将需传输数据中的首个数据块的数据量大小作为需传输数据的单块特征;或,将需传输数据中的最后一个数据块的数据量大小作为需传输数据的单块特征;或,将需传输数据中的中值位置的数据块的数据量大小作为需传输数据的单块特征;或,利用机器学习模型确定需传输数据的单块特征;或按照预设规则在需传输数据中的各个数据块中选择N个目标数据块,将N个目标数据块的数据量均值作为需传输数据的单块特征。机器学习模型可以采用任意结构实现。预设规则如:将需传输数据中的各个数据块按照地址大小排序后,在序列中选择奇数位置的数据块、偶数位置的数据块、前N个数据块、后N个数据块或随机选择N个数据块,作为N个目标数据块。
在一种实施方式中,主机用于:在需传输数据的块总量不大于块数量传输阈值时,再对比需传输数据的单块特征与块大小传输阈值的大小。也就是:先通过块数量进行DMA方式决策,之后再通过块大小进行DMA方式决策。
在一种实施方式中,主机用于:获取传输配置信息,按照传输配置信息读取需传输数据;传输配置信息包括:需传输数据的数据大小、源地址和目的地址。其中,传输配置信息可由用户自主修改和更新,具体的,主机用于接收传输配置信息的更新指令,按照更新指令更新传输配置信息。
在一种实施方式中,加速设备还包括:与第一控制器和第二控制器均连接的协议转换模块;相应地,协议转换模块用于接收主机发送的需传输数据的数据大小、源地址和目的地址。
在一种实施方式中,加速设备可以为多个,多个加速设备构成异构计算池。
在本实施例中,主机用于:通过加载加速设备的驱动来确定加速设备对应的块数量传输阈值和块大小传输阈值。相应地,加速设备的驱动允许被修改和更新,因此主机用于:根据加速设备的驱动的更新操作,更新驱动,以便在主机加载加速设备的驱动时更新块数量传输阈值和块大小传输阈值。
可见,本实施例中的主机能够确定加速设备对应的块数量传输阈值和块大小传输阈值;在需传输数据的块总量大于块数量传输阈值时,使第一控制器在存储器中以DMA方式处理需传输数据,以快速完成大量数据的DMA传输和处理;在需传输数据的单块特征大于块大小传输阈值时,使第二控制器在存储器中以DMA方式处理需传输数据,以最小资源耗完成少量数据的DMA传输和处理。由于第一控制器实现的DMA方式单次传输的数据量大于第二控制器实现的DMA方式单次传输的数据量,因此本发明所提供系统可基于需传输数据自主决策并选择合适的DMA传输方式,可有效解决混合应用场景下的数据传输效率低问题。
请参见图4,图4提供了另一种数据处理系统,包括左侧的主机端(Host)和右侧的设备端(FPGA),用于面向混合应用场景进行数据传输的自主决策。
主机端负责实际应用时的数据传输控制和驱动注册。为在各个设备端中均达到最优传输效果,在设备驱动注册、硬件初始化完成之后,增加传输决策判决条件训练模块,通过该模块可训练出每一设备端的最优传输判断条件,其基本原理如下:考虑不同PCIe(Peripheral Component Interconnect express,一种高速串行计算机扩展总线标准)协议、不同PCIe接口的数据传输带宽的不一致性,并基于内存块大小和内存块数量设计决策判决条件训练模块。在硬件初始化之后,先通过该模块进行判决条件训练,找到单一设备端的最优传输条件(内存块大小和内存块数量的阈值),其实现伪代码如下:
Dma_trans_train_module()
{
Uint32_t data[1024*1024*1024]; //传输内存块预申请
Uint32_t block_count=1; //传输内存块数量
Uint32_t block_size=1; //传输内存块大小
Uint32_t i=1;
time_t start_time; //DMA传输启动时间
time_t end_time; //DMA传输结束时间
time_t time_block; //块DMA传输时间
time_t time_chain; //链式DMA传输时间
For(i=1;i<loop_times;i*2)
{
block_count = block_count *2; //执行一次循环传输数量翻倍;
block_size = block_size *2; //执行一次循环传输大小翻倍;
start_time=time((time_t *)NULL);//记录块DMA传输的启动时间
block_dma_transfer(block_count,block_size,data);//开启块DMA传输
end_time=time((time_t *)NULL); //记录块DMA传输的结束时间
time_block=end_time-start_time; //计算传输所需时间
start_time=time((time_t *)NULL);//记录链式DMA传输的启动时间
chain_dma_transfer(block_count,block_size,data);//开启链式DMA传输
end_time=time((time_t *)NULL);//记录链式DMA传输的结束时间
time_chain=end_time-start_time;//记录传输所需时间
if (time_chain<time_block) //进行条件判断,如果链式DMA所用时间少,则结束循环
{
Return block_size, block_count;//返回临界状态时的内存块大小和内存块传输数目
}
}
}
其中,当块DMA传输时间大于链式DMA传输时间,那么此时设定的内存块数量(block_count)和内存块大小(block_size)就是当前设备端的最优传输条件,也就得到了内存块大小和内存块数量的阈值。其中,以内存块数量为第一判断条件,以内存块大小为第二判断条件。当实际要传输的数据的内存块数量大于所确定的第一判断条件的阈值(也就是内存块数量的阈值)时,选择以链式DMA的方式进行传输。当实际要传输的数据的内存块数量小于第一判断条件阈值且实际要传输的数据的内存块大小(即单块特征)小于第二判断条件(即内存块大小的阈值),则选择链式DMA的方式进行传输;若实际要传输的数据的内存块大小(即单块特征)大于第二判断条件,则选择块DMA进行传输。
需要说明的是,block_count和block_size在训练过程中以一定的规则进行调整。例如:当块DMA传输时间不大于链式DMA传输时间,那么此时以一定的规则调整block_count和block_size时,并继续训练,直至获得块DMA传输时间大于链式DMA传输时间下的block_count和block_size。
在一种示例中,主机端还为用户提供统一的数据传输接口dma_access(),用户通过该接口配置DMA传输信息,包括源地址、目的地址和数据长度,以明确:把哪里的多大数据量的数据传输到哪里。该接口自主根据上述训练得到的内存块大小和内存块数量阈值选择最优决策方式。
与主机端相匹配,设备端同时支持块DMA和链式DMA的设计。设备端包含DMA 描述符控制器(DMA Descriptor Controller)和DMA 块控制器(DMA Block Controller)两部分设计,其中DMA 描述符控制器负责链式DMA传输相关的控制;DMA 块控制器负责控制块传输相关的控制。 DMA 描述符控制器和DMA 块控制器模块均连接到AXI-ST to AXI-Lite模块(AXI-ST 接口与 AXI-Lite接口转换模块,一种协议转换模块,用于协议解析),其中AXI-STto AXI-Lite模块完成从AXI-ST到AXI-Lite协议的转换,AXI-Lite协议中包含地址信息,设备端根据地址信息完成数据的传输操作。
对于链式DMA传输来说,DMA Read Mover模块(DMA 读数据搬移器)首先从Host读回描述符,然后将描述符发送到DMA 描述符控制器,DMA 描述符控制器再根据描述符中所述的DMA传输信息操作DMA Read/Write Mover模块(DMA 读/写数据搬移器),通过DMARead/Write Mover模块完成DMA传输。传输完成之后通过MSI上报中断,通知Host本次DMA数据传输完成。
对于块DMA传输来说,DMA 块控制器模块直接将DMA传输信息发送到DMA Read/Write Mover模块(DMA 读/写数据搬移器),完成DMA传输,并通过MSI上报中断,通过Host本次DMA数据传输完成。依次执行,直到所有被配置的DMA传输全部执行完成。
可见在本实施例中,Host端负责驱动注册、决策模块训练和DMA传输配置;设备端负责DMA数据传输,并基于传输状态上报传输结果,具体的工作流程可以包括:主机端完成PCIe驱动注册,包括设备的硬件初始化、传输内存的预申请和中断回调函数注册等;通过决策模块对阈值进行训练,得到设备端的传输阈值。由于各个设备端传输性能有差异会导致在不同设备端的传输阈值不一致;因此本实施例将传输决策训练模块在内核中实现,每次加载设备驱动都会在设备端上执行训练过程,得到适合该设备端的传输参数阈值。Host用户根据自己的应用要求,将数据传输信息(包括源地址、目的地址和长度等)配置到DMA传输接口,用户无需选择DMA传输模式,本系统会根据传输信息自动选择最优DMA传输模式。设备端根据Host下发的信息启动DMA传输;DMA传输结束后,设备端上传中断,告知Host端DMA传输完成。
本实施例提供的系统面向混合应用场景,能够根据不同硬件训练出相应地最优传输决策判决条件,保障在各硬件下均有最高的传输效率;在实际传输过程中,为用户提供统一的接口,用户无需选择DMA传输模式,本系统根据决策判断条件和传输信息自动选择最优传输模式;其次设备端例化两种DMA控制器:链式DMA控制器和块DMA控制器,两种不同的DMA控制器可实现对链式DMA和块DMA的同时支持,解决了混合应用场景下的数据传输效率低的问题,能有效提升设备的数据传输效率。
下面对本发明实施例提供的一种数据处理方法进行介绍,下文描述的一种数据处理方法与本文描述的其他实施例可以相互参照。
本发明提供了一种数据处理方法,应用于主机,主机连接有加速设备;加速设备包括存储器、第一控制器和第二控制器,第一控制器实现的DMA方式单次传输的数据量大于第二控制器实现的DMA方式单次传输的数据量。
请参见图5,本发明提供的一种数据处理方法,应用于主机,包括:
S501、主机确定加速设备对应的块数量传输阈值和块大小传输阈值。
S502、主机在需传输数据的块总量大于块数量传输阈值时,使第一控制器在存储器中以DMA方式处理需传输数据;在需传输数据的单块特征大于块大小传输阈值时,使第二控制器在存储器中以DMA方式处理需传输数据。
在一种实施方式中,主机设定目标块数量和目标块大小,分别使第一控制器和第二控制器在存储器中以DMA方式处理目标块数量个目标块大小的数据块,并分别记录第一控制器的第一处理时间和第二控制器的第二处理时间,若第二处理时间大于第一处理时间,则将目标块数量确定为块数量传输阈值,将目标块大小确定为块大小传输阈值。
在一种实施方式中,主机若第二处理时间不大于第一处理时间,则调整目标块数量和目标块大小,并针对调整后的目标块数量和调整后的目标块大小,执行分别使第一控制器和第二控制器在存储器中以DMA方式处理目标块数量个目标块大小的数据块以及后续其他步骤,直至第二处理时间大于第一处理时间。
在一种实施方式中,主机以线性递增方式调整目标块数量和目标块大小;或,以指数递增方式调整目标块数量和目标块大小;或,按照机器学习调整策略调整目标块数量和目标块大小;或,按照公式y=aex+bxn+cx+d计算调整后的目标块数量或调整后的目标块大小,y表示调整后的目标块数量或调整后的目标块大小,a、b、c、d为预设常量,x为所述目标块数量或所述目标块大小。
在一种实施方式中,主机在不同传输带宽的限制下,分别使第一控制器和第二控制器在存储器中以DMA方式处理目标块数量个目标块大小的数据块。
在一种实施方式中,主机在需传输数据的单块特征小于块大小传输阈值时,使第一控制器在存储器中以DMA方式处理需传输数据。
在一种实施方式中,主机统计需传输数据中的各个数据块的数据量均值,将数据量均值作为需传输数据的单块特征;或,将需传输数据中的首个数据块的数据量大小作为需传输数据的单块特征;或,将需传输数据中的最后一个数据块的数据量大小作为需传输数据的单块特征;或,将需传输数据中的中值位置的数据块的数据量大小作为需传输数据的单块特征;或,利用机器学习模型确定需传输数据的单块特征。
在一种实施方式中,主机在需传输数据的块总量不大于块数量传输阈值时,对比需传输数据的单块特征与块大小传输阈值的大小。
在一种实施方式中,主机获取传输配置信息,按照传输配置信息读取需传输数据;传输配置信息包括:需传输数据的数据大小、源地址和目的地址。
在一种实施方式中,主机接收传输配置信息的更新指令,按照更新指令更新传输配置信息。
在一种实施方式中,加速设备还包括:与第一控制器和第二控制器均连接的协议转换模块;相应地,协议转换模块用于接收主机发送的需传输数据的数据大小、源地址和目的地址。其中,第一控制器用于:根据主机发送的需传输数据的描述符在存储器中以链式DMA方式处理需传输数据,并通过中断发送通知消息至主机。其中,第二控制器用于:根据主机发送的需传输数据的源地址和目的地址在存储器中以块DMA方式处理需传输数据,并通过中断发送通知消息至主机。
在一种实施方式中,加速设备为多个,多个加速设备构成异构计算池。
在一种实施方式中,主机通过加载加速设备的驱动来确定加速设备对应的块数量传输阈值和块大小传输阈值。
在一种实施方式中,主机根据加速设备的驱动的更新操作,更新驱动,以便在主机加载加速设备的驱动时更新块数量传输阈值和块大小传输阈值。
下面对本发明实施例提供的一种数据处理装置进行介绍,下文描述的一种数据处理装置与本文描述的其他实施例可以相互参照。
本发明实施例公开了一种数据处理装置,应用于主机,主机连接有加速设备;加速设备包括存储器、第一控制器和第二控制器,第一控制器实现的DMA方式单次传输的数据量大于第二控制器实现的DMA方式单次传输的数据量。
本发明提供的一种数据处理装置,应用于主机,包括:
确定模块,用于确定加速设备对应的块数量传输阈值和块大小传输阈值。
传输模块,用于在需传输数据的块总量大于块数量传输阈值时,使第一控制器在存储器中以DMA方式处理需传输数据;在需传输数据的单块特征大于块大小传输阈值时,使第二控制器在存储器中以DMA方式处理需传输数据。
在一种实施方式中,主机用于:设定目标块数量和目标块大小,分别使第一控制器和第二控制器在存储器中以DMA方式处理目标块数量个目标块大小的数据块,并分别记录第一控制器的第一处理时间和第二控制器的第二处理时间,若第二处理时间大于第一处理时间,则将目标块数量确定为块数量传输阈值,将目标块大小确定为块大小传输阈值。
在一种实施方式中,主机用于:若第二处理时间不大于第一处理时间,则调整目标块数量和目标块大小,并针对调整后的目标块数量和调整后的目标块大小,执行分别使第一控制器和第二控制器在存储器中以DMA方式处理目标块数量个目标块大小的数据块以及后续其他步骤,直至第二处理时间大于第一处理时间。
在一种实施方式中,主机用于:以线性递增方式调整目标块数量和目标块大小;或,以指数递增方式调整目标块数量和目标块大小;或,按照机器学习调整策略调整目标块数量和目标块大小。
在一种实施方式中,主机用于:在不同传输带宽的限制下,分别使第一控制器和第二控制器在存储器中以DMA方式处理目标块数量个目标块大小的数据块。
在一种实施方式中,主机用于:在需传输数据的单块特征小于块大小传输阈值时,使第一控制器在存储器中以DMA方式处理需传输数据。
在一种实施方式中,主机用于:统计需传输数据中的各个数据块的数据量均值,将数据量均值作为需传输数据的单块特征;或,将需传输数据中的首个数据块的数据量大小作为需传输数据的单块特征;或,将需传输数据中的最后一个数据块的数据量大小作为需传输数据的单块特征;或,将需传输数据中的中值位置的数据块的数据量大小作为需传输数据的单块特征;或,利用机器学习模型确定需传输数据的单块特征。
在一种实施方式中,主机用于:在需传输数据的块总量不大于块数量传输阈值时,对比需传输数据的单块特征与块大小传输阈值的大小。
在一种实施方式中,主机用于:获取传输配置信息,按照传输配置信息读取需传输数据;传输配置信息包括:需传输数据的数据大小、源地址和目的地址。
在一种实施方式中,主机用于:接收传输配置信息的更新指令,按照更新指令更新传输配置信息。
在一种实施方式中,加速设备还包括:与第一控制器和第二控制器均连接的协议转换模块;
相应地,协议转换模块用于接收主机发送的需传输数据的数据大小、源地址和目的地址。
在一种实施方式中,第一控制器用于:根据主机发送的需传输数据的描述符在存储器中以链式DMA方式处理需传输数据,并通过中断发送通知消息至主机。
在一种实施方式中,第二控制器用于:根据主机发送的需传输数据的源地址和目的地址在存储器中以块DMA方式处理需传输数据,并通过中断发送通知消息至主机。
在一种实施方式中,加速设备为多个,多个加速设备构成异构计算池。
在一种实施方式中,主机用于:通过加载加速设备的驱动来确定加速设备对应的块数量传输阈值和块大小传输阈值。
在一种实施方式中,主机用于:根据加速设备的驱动的更新操作,更新驱动,以便在主机加载加速设备的驱动时更新块数量传输阈值和块大小传输阈值。
其中,关于本实施例中各个模块、单元更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
下面对本发明实施例提供的一种电子设备进行介绍,下文描述的一种电子设备与本文描述的其他实施例可以相互参照。该电子设备可以是主机或加速设备。
本发明实施例公开了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现上述任意实施例公开的方法。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:确定加速设备对应的块数量传输阈值和块大小传输阈值。在需传输数据的块总量大于块数量传输阈值时,使第一控制器在存储器中以DMA方式处理需传输数据;在需传输数据的单块特征大于块大小传输阈值时,使第二控制器在存储器中以DMA方式处理需传输数据。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:设定目标块数量和目标块大小,分别使第一控制器和第二控制器在存储器中以DMA方式处理目标块数量个目标块大小的数据块,并分别记录第一控制器的第一处理时间和第二控制器的第二处理时间,若第二处理时间大于第一处理时间,则将目标块数量确定为块数量传输阈值,将目标块大小确定为块大小传输阈值。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:若第二处理时间不大于第一处理时间,则调整目标块数量和目标块大小,并针对调整后的目标块数量和调整后的目标块大小,执行分别使第一控制器和第二控制器在存储器中以DMA方式处理目标块数量个目标块大小的数据块以及后续其他步骤,直至第二处理时间大于第一处理时间。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:以线性递增方式调整目标块数量和目标块大小;或,以指数递增方式调整目标块数量和目标块大小;或,按照机器学习调整策略调整目标块数量和目标块大小。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:在不同传输带宽的限制下,分别使第一控制器和第二控制器在存储器中以DMA方式处理目标块数量个目标块大小的数据块。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:在需传输数据的单块特征小于块大小传输阈值时,使第一控制器在存储器中以DMA方式处理需传输数据。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:统计需传输数据中的各个数据块的数据量均值,将数据量均值作为需传输数据的单块特征;或,将需传输数据中的首个数据块的数据量大小作为需传输数据的单块特征;或,将需传输数据中的最后一个数据块的数据量大小作为需传输数据的单块特征;或,将需传输数据中的中值位置的数据块的数据量大小作为需传输数据的单块特征;或,利用机器学习模型确定需传输数据的单块特征。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:在需传输数据的块总量不大于块数量传输阈值时,对比需传输数据的单块特征与块大小传输阈值的大小。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:获取传输配置信息,按照传输配置信息读取需传输数据;传输配置信息包括:需传输数据的数据大小、源地址和目的地址。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:接收传输配置信息的更新指令,按照更新指令更新传输配置信息。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:通过加载加速设备的驱动来确定加速设备对应的块数量传输阈值和块大小传输阈值。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:根据加速设备的驱动的更新操作,更新驱动,以便在主机加载加速设备的驱动时更新块数量传输阈值和块大小传输阈值。
进一步的,本发明实施例还提供了一种电子设备。其中,上述电子设备既可以是如图6所示的服务器,也可以是如图7所示的终端。图6和图7均是根据一示例性实施例示出的电子设备结构图,图中的内容不能被认为是对本发明的使用范围的任何限制。
图6为本发明实施例提供的一种服务器的结构示意图。该服务器具体可以包括:至少一个处理器、至少一个存储器、电源、通信接口、输入输出接口和通信总线。其中,所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行,以实现前述任一实施例公开的数据处理中的相关步骤。
本实施例中,电源用于为服务器上的各硬件设备提供工作电压;通信接口能够为服务器创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本发明技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统、计算机程序及数据等,存储方式可以是短暂存储或者永久存储。
其中,操作系统用于管理与控制服务器上的各硬件设备以及计算机程序,以实现处理器对存储器中数据的运算与处理,其可以是Windows Server、Netware、Unix、Linux等。计算机程序除了包括能够用于完成前述任一实施例公开的数据处理方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据除了可以包括应用程序的更新信息等数据外,还可以包括应用程序的开发商信息等数据。
图7为本发明实施例提供的一种终端的结构示意图,该终端具体可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
通常,本实施例中的终端包括有:处理器和存储器。
其中,处理器可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central Processing Unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器还可以包括AI(ArtificialIntelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器至少用于存储以下计算机程序,其中,该计算机程序被处理器加载并执行之后,能够实现前述任一实施例公开的由终端侧执行的数据处理方法中的相关步骤。另外,存储器所存储的资源还可以包括操作系统和数据等,存储方式可以是短暂存储或者永久存储。其中,操作系统可以包括Windows、Unix、Linux等。数据可以包括但不限于应用程序的更新信息。
在一些实施例中,终端还可包括有显示屏、输入输出接口、通信接口、传感器、电源以及通信总线。
本领域技术人员可以理解,图7中示出的结构并不构成对终端的限定,可以包括比图示更多或更少的组件。
下面对本发明实施例提供的一种可读存储介质进行介绍,下文描述的一种可读存储介质与本文描述的其他实施例可以相互参照。
一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的数据处理方法。其中,可读存储介质为计算机可读存储介质,其作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统、计算机程序及数据等,存储方式可以是短暂存储或者永久存储。
在本实施例中,所述处理器执行的计算机程序,可以具体实现以下步骤:确定加速设备对应的块数量传输阈值和块大小传输阈值。在需传输数据的块总量大于块数量传输阈值时,使第一控制器在存储器中以DMA方式处理需传输数据;在需传输数据的单块特征大于块大小传输阈值时,使第二控制器在存储器中以DMA方式处理需传输数据。
在本实施例中,所述处理器执行的计算机程序,可以具体实现以下步骤:设定目标块数量和目标块大小,分别使第一控制器和第二控制器在存储器中以DMA方式处理目标块数量个目标块大小的数据块,并分别记录第一控制器的第一处理时间和第二控制器的第二处理时间,若第二处理时间大于第一处理时间,则将目标块数量确定为块数量传输阈值,将目标块大小确定为块大小传输阈值。
在本实施例中,所述处理器执行的计算机程序,可以具体实现以下步骤:若第二处理时间不大于第一处理时间,则调整目标块数量和目标块大小,并针对调整后的目标块数量和调整后的目标块大小,执行分别使第一控制器和第二控制器在存储器中以DMA方式处理目标块数量个目标块大小的数据块以及后续其他步骤,直至第二处理时间大于第一处理时间。
在本实施例中,所述处理器执行的计算机程序,可以具体实现以下步骤:以线性递增方式调整目标块数量和目标块大小;或,以指数递增方式调整目标块数量和目标块大小;或,按照机器学习调整策略调整目标块数量和目标块大小。
在本实施例中,所述处理器执行的计算机程序,可以具体实现以下步骤:在不同传输带宽的限制下,分别使第一控制器和第二控制器在存储器中以DMA方式处理目标块数量个目标块大小的数据块。
在本实施例中,所述处理器执行的计算机程序,可以具体实现以下步骤:在需传输数据的单块特征小于块大小传输阈值时,使第一控制器在存储器中以DMA方式处理需传输数据。
在本实施例中,所述处理器执行的计算机程序,可以具体实现以下步骤:统计需传输数据中的各个数据块的数据量均值,将数据量均值作为需传输数据的单块特征;或,将需传输数据中的首个数据块的数据量大小作为需传输数据的单块特征;或,将需传输数据中的最后一个数据块的数据量大小作为需传输数据的单块特征;或,将需传输数据中的中值位置的数据块的数据量大小作为需传输数据的单块特征;或,利用机器学习模型确定需传输数据的单块特征。
在本实施例中,所述处理器执行的计算机程序,可以具体实现以下步骤:在需传输数据的块总量不大于块数量传输阈值时,对比需传输数据的单块特征与块大小传输阈值的大小。
在本实施例中,所述处理器执行的计算机程序,可以具体实现以下步骤:获取传输配置信息,按照传输配置信息读取需传输数据;传输配置信息包括:需传输数据的数据大小、源地址和目的地址。
在本实施例中,所述处理器执行的计算机程序,可以具体实现以下步骤:接收传输配置信息的更新指令,按照更新指令更新传输配置信息。
在本实施例中,所述处理器执行的计算机程序,可以具体实现以下步骤:通过加载加速设备的驱动来确定加速设备对应的块数量传输阈值和块大小传输阈值。
在本实施例中,所述处理器执行的计算机程序,可以具体实现以下步骤:根据加速设备的驱动的更新操作,更新驱动,以便在主机加载加速设备的驱动时更新块数量传输阈值和块大小传输阈值。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的可读存储介质中。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (20)
1.一种数据处理系统,其特征在于,包括:主机以及与所述主机连接的加速设备;
所述加速设备包括存储器、第一控制器和第二控制器;所述第一控制器实现的DMA方式单次传输的数据量大于所述第二控制器实现的DMA方式单次传输的数据量;其中,所述第一控制器实现的DMA方式为链式DMA,所述第二控制器实现的DMA方式为块DMA;
所述主机用于:确定所述加速设备对应的块数量传输阈值和块大小传输阈值;在需传输数据的块总量大于所述块数量传输阈值时,使所述第一控制器在所述存储器中以DMA方式处理所述需传输数据;在所述需传输数据的单块特征大于所述块大小传输阈值时,使所述第二控制器在所述存储器中以DMA方式处理所述需传输数据;
其中,所述主机用于:设定目标块数量和目标块大小,分别使所述第一控制器和所述第二控制器在所述存储器中以DMA方式处理所述目标块数量个目标块大小的数据块,并分别记录所述第一控制器的第一处理时间和所述第二控制器的第二处理时间,若所述第二处理时间大于所述第一处理时间,则将所述目标块数量确定为所述块数量传输阈值,将所述目标块大小确定为所述块大小传输阈值。
2.根据权利要求1所述的系统,其特征在于,所述主机用于:若所述第二处理时间不大于所述第一处理时间,则调整所述目标块数量和所述目标块大小,并针对调整后的目标块数量和调整后的目标块大小,执行分别使所述第一控制器和所述第二控制器在所述存储器中以DMA方式处理所述目标块数量个目标块大小的数据块以及后续其他步骤,直至所述第二处理时间大于所述第一处理时间。
3.根据权利要求2所述的系统,其特征在于,所述主机用于:以线性递增方式调整所述目标块数量和所述目标块大小;或,以指数递增方式调整所述目标块数量和所述目标块大小;或,按照机器学习调整策略调整所述目标块数量和所述目标块大小;或,按照公式y=aex+bxn+cx+d计算调整后的目标块数量或调整后的目标块大小,y表示调整后的目标块数量或调整后的目标块大小,a、b、c、d为预设常量,x为所述目标块数量或所述目标块大小。
4.根据权利要求1所述的系统,其特征在于,所述主机用于:在不同传输带宽的限制下,分别使所述第一控制器和所述第二控制器在所述存储器中以DMA方式处理所述目标块数量个目标块大小的数据块。
5.根据权利要求1所述的系统,其特征在于,所述主机用于:在所述需传输数据的单块特征小于所述块大小传输阈值时,使所述第一控制器在所述存储器中以DMA方式处理所述需传输数据。
6.根据权利要求1所述的系统,其特征在于,所述主机用于:统计所述需传输数据中的各个数据块的数据量均值,将所述数据量均值作为所述需传输数据的单块特征;或,将所述需传输数据中的首个数据块的数据量大小作为所述需传输数据的单块特征;或,将所述需传输数据中的最后一个数据块的数据量大小作为所述需传输数据的单块特征;或,将所述需传输数据中的中值位置的数据块的数据量大小作为所述需传输数据的单块特征;或,利用机器学习模型确定所述需传输数据的单块特征。
7.根据权利要求1所述的系统,其特征在于,所述主机用于:在需传输数据的块总量不大于所述块数量传输阈值时,对比所述需传输数据的单块特征与所述块大小传输阈值的大小。
8.根据权利要求1所述的系统,其特征在于,所述主机用于:获取传输配置信息,按照所述传输配置信息读取所述需传输数据;所述传输配置信息包括:所述需传输数据的数据大小、源地址和目的地址。
9.根据权利要求8所述的系统,其特征在于,所述主机用于:接收所述传输配置信息的更新指令,按照所述更新指令更新所述传输配置信息。
10.根据权利要求1至9任一项所述的系统,其特征在于,所述加速设备还包括:与所述第一控制器和所述第二控制器均连接的协议转换模块;
相应地,所述协议转换模块用于接收所述主机发送的所述需传输数据的数据大小、源地址和目的地址。
11.根据权利要求1至9任一项所述的系统,其特征在于,所述第一控制器用于:根据所述主机发送的所述需传输数据的描述符在所述存储器中以链式DMA方式处理所述需传输数据,并通过中断发送通知消息至所述主机。
12.根据权利要求1至9任一项所述的系统,其特征在于,所述第二控制器用于:根据所述主机发送的所述需传输数据的源地址和目的地址在所述存储器中以块DMA方式处理所述需传输数据,并通过中断发送通知消息至所述主机。
13.根据权利要求1至9任一项所述的系统,其特征在于,所述加速设备为多个,多个加速设备构成异构计算池。
14.根据权利要求1至9任一项所述的系统,其特征在于,所述主机用于:通过加载所述加速设备的驱动来确定所述加速设备对应的块数量传输阈值和块大小传输阈值。
15.根据权利要求14所述的系统,其特征在于,所述主机用于:根据所述加速设备的驱动的更新操作,更新所述驱动,以便在所述主机加载所述加速设备的驱动时更新所述块数量传输阈值和所述块大小传输阈值。
16.一种数据处理方法,其特征在于,应用于主机,所述主机连接有加速设备;所述加速设备包括存储器、第一控制器和第二控制器,所述第一控制器实现的DMA方式单次传输的数据量大于所述第二控制器实现的DMA方式单次传输的数据量;其中,所述第一控制器实现的DMA方式为链式DMA,所述第二控制器实现的DMA方式为块DMA;
该方法包括:
确定所述加速设备对应的块数量传输阈值和块大小传输阈值;
在需传输数据的块总量大于所述块数量传输阈值时,使所述第一控制器在所述存储器中以DMA方式处理所述需传输数据;在所述需传输数据的单块特征大于所述块大小传输阈值时,使所述第二控制器在所述存储器中以DMA方式处理所述需传输数据;
设定目标块数量和目标块大小,分别使所述第一控制器和所述第二控制器在所述存储器中以DMA方式处理所述目标块数量个目标块大小的数据块,并分别记录所述第一控制器的第一处理时间和所述第二控制器的第二处理时间,若所述第二处理时间大于所述第一处理时间,则将所述目标块数量确定为所述块数量传输阈值,将所述目标块大小确定为所述块大小传输阈值。
17.根据权利要求16所述的方法,其特征在于,还包括:
统计所述需传输数据中的各个数据块的数据量均值,将所述数据量均值作为所述需传输数据的单块特征;或,将所述需传输数据中的首个数据块的数据量大小作为所述需传输数据的单块特征;或,将所述需传输数据中的最后一个数据块的数据量大小作为所述需传输数据的单块特征;或,将所述需传输数据中的中值位置的数据块的数据量大小作为所述需传输数据的单块特征;或,利用机器学习模型确定所述需传输数据的单块特征。
18.一种数据处理装置,其特征在于,应用于主机,所述主机连接有加速设备;所述加速设备包括存储器、第一控制器和第二控制器,所述第一控制器实现的DMA方式单次传输的数据量大于所述第二控制器实现的DMA方式单次传输的数据量;其中,所述第一控制器实现的DMA方式为链式DMA,所述第二控制器实现的DMA方式为块DMA;
该装置包括:
确定模块,用于确定所述加速设备对应的块数量传输阈值和块大小传输阈值;
传输模块,用于在需传输数据的块总量大于所述块数量传输阈值时,使所述第一控制器在所述存储器中以DMA方式处理所述需传输数据;在所述需传输数据的单块特征大于所述块大小传输阈值时,使所述第二控制器在所述存储器中以DMA方式处理所述需传输数据;
其中,所述主机设定目标块数量和目标块大小,分别使所述第一控制器和所述第二控制器在所述存储器中以DMA方式处理所述目标块数量个目标块大小的数据块,并分别记录所述第一控制器的第一处理时间和所述第二控制器的第二处理时间,若所述第二处理时间大于所述第一处理时间,则将所述目标块数量确定为所述块数量传输阈值,将所述目标块大小确定为所述块大小传输阈值。
19.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求16或17所述的方法。
20.一种可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求16或17所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410371494.8A CN117971745B (zh) | 2024-03-29 | 2024-03-29 | 一种数据处理系统、方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410371494.8A CN117971745B (zh) | 2024-03-29 | 2024-03-29 | 一种数据处理系统、方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117971745A CN117971745A (zh) | 2024-05-03 |
CN117971745B true CN117971745B (zh) | 2024-07-02 |
Family
ID=90846356
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410371494.8A Active CN117971745B (zh) | 2024-03-29 | 2024-03-29 | 一种数据处理系统、方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117971745B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111858419A (zh) * | 2020-06-30 | 2020-10-30 | 山东云海国创云计算装备产业创新中心有限公司 | 一种数据传输方法、装置及设备 |
CN115543877A (zh) * | 2022-11-29 | 2022-12-30 | 苏州浪潮智能科技有限公司 | 一种pcie数据传输方法及相关装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8984179B1 (en) * | 2013-11-15 | 2015-03-17 | International Business Machines Corporation | Determining a direct memory access data transfer mode |
CN116521589A (zh) * | 2022-01-20 | 2023-08-01 | 大唐移动通信设备有限公司 | 一种数据传输方法、装置及存储介质 |
CN116074267B (zh) * | 2023-02-02 | 2024-04-09 | 北京大学 | 一种数据通信系统及SoC芯片 |
-
2024
- 2024-03-29 CN CN202410371494.8A patent/CN117971745B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111858419A (zh) * | 2020-06-30 | 2020-10-30 | 山东云海国创云计算装备产业创新中心有限公司 | 一种数据传输方法、装置及设备 |
CN115543877A (zh) * | 2022-11-29 | 2022-12-30 | 苏州浪潮智能科技有限公司 | 一种pcie数据传输方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN117971745A (zh) | 2024-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114780458A (zh) | 数据处理的方法和存储系统 | |
CN111813713B (zh) | 数据加速运算处理方法、装置及计算机可读存储介质 | |
US20090235047A1 (en) | Computer system for electronic data processing | |
CN110941395B (zh) | 动态随机存取存储器、内存管理方法、系统及存储介质 | |
TWI712951B (zh) | 電子存放裝置的任務管理方法、主機和存儲裝置 | |
CN111142788B (zh) | 一种数据迁移方法、装置和计算机可读存储介质 | |
CN113220108A (zh) | 计算机可读取存储介质、操作频率调整方法及装置 | |
CN105373484A (zh) | 一种网络通信芯片中内存分配、存储和管理的方法 | |
CN116627869B (zh) | 应用于电子设备的数据传输方法及装置 | |
CN117591450B (zh) | 一种数据处理系统、方法、设备及介质 | |
CN117312229B (zh) | 一种数据传输装置、数据处理设备、系统、方法及介质 | |
CN117971745B (zh) | 一种数据处理系统、方法、装置、设备及介质 | |
CN115994115B (zh) | 芯片控制方法、芯片组及电子设备 | |
KR102334473B1 (ko) | 적응형 딥러닝 가속 장치 및 방법 | |
CN117033275A (zh) | 加速卡间的dma方法、装置、加速卡、加速平台及介质 | |
CN115879543B (zh) | 一种模型训练方法、装置、设备、介质及系统 | |
WO2024027140A1 (zh) | 一种数据处理方法、装置、设备、系统及可读存储介质 | |
CN116561091A (zh) | 一种日志存储方法、装置、设备及可读存储介质 | |
CN115860080A (zh) | 计算核、加速器、计算方法、装置、设备、介质及系统 | |
CN102385555B (zh) | 一种缓存系统和数据缓存的方法 | |
US10832132B2 (en) | Data transmission method and calculation apparatus for neural network, electronic apparatus, computer-readable storage medium and computer program product | |
CN106897021A (zh) | 一种读写数据的方法和装置 | |
CN108804362A (zh) | 串口批量数据传输方法、装置及存储介质 | |
CN117112466B (zh) | 一种数据处理方法、装置、设备、存储介质及分布式集群 | |
WO2023134588A1 (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 |