一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据传输方法、装置、计算机设备和存储介质

2022-06-25 04:46:58 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,特别是涉及一种数据传输方法、装置、计算机设备、存储介质和计算机程序产品。


背景技术:

2.随着计算机技术的发展,循环卷积的重要程度日益增加。循环卷积是不同于线性卷积的一种卷积运算,是一种周期卷积。
3.相关技术中,处理器在实现循环卷积的过程中,通常会将卷积核划分为n组,并将特征图高度方向拆分为n组,每个处理器中的计算核(core)只保存特征图高度方向的1/n和对应的权重数据,经历n个阶段(phase)的卷积、激活操作和(n-1)个阶段的数据传输操作,得到完整的循环卷积结果。其中,处理器通常会采用顺序传输或之字形传输的方式传输数据。
4.然而,计算核之间进行数据传输时,需要经过二者中间的多个计算核。基于上述传输方式,当处理器将最后一个计算核的数据传输到第一个计算核时,需要经过多个计算核。因此,数据传输效率低下。


技术实现要素:

5.基于此,有必要针对上述技术问题,提供一种能够提高数据传输效率的数据传输方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
6.第一方面,本技术提供了一种数据传输方法。所述方法包括:
7.基于待处理数据的组数,确定待使用计算核的目标数量;
8.根据所述目标数量和预设的头计算核,确定包含所述目标数量的计算核的目标汉密尔顿回路;
9.在存在目标汉密尔顿回路的情况下,根据所述目标汉密尔顿回路,确定所述目标汉密尔顿回路包含的目标计算核,并将所述目标汉密尔顿回路作为传输路径;
10.按照所述传输路径,通过各所述目标计算核,对所述待处理数据进行数据传输。
11.在其中一个实施例中,所述根据所述目标数量和预设的头计算核,确定包含所述目标数量的计算核的目标汉密尔顿回路包括:
12.根据所述目标数量,确定包含各所述目标计算核的方形阵列;
13.基于所述方形阵列、预设的头计算核和预设的汉密尔顿回路确定规则,确定包含所述目标数量的计算核的目标汉密尔顿回路。
14.在其中一个实施例中,所述基于所述方形阵列、预设的头计算核和预设的汉密尔顿回路确定规则,确定包含所述目标数量的计算核的目标汉密尔顿回路包括:
15.根据所述方形阵列,确定所述方形阵列的行数和列数;
16.若所述行数为偶数,则基于所述方形阵列、预设的头计算核和预设的汉密尔顿回路确定规则,确定包含所述目标数量的计算核的目标汉密尔顿回路;
17.若所述行数非偶数,则更新所述方形阵列的排列方式,并基于更新后的方形阵列、预设的头计算核和预设的汉密尔顿回路确定规则,确定包含所述目标数量的计算核的目标汉密尔顿回路。
18.在其中一个实施例中,所述方法还包括:
19.在不存在目标汉密尔顿回路的情况下,确定所述目标数量对应的类型;
20.根据所述类型对应的回路确定策略,确定包含所述目标数量的计算核的目标回路;
21.根据所述目标回路,确定所述目标回路包含的目标计算核,并将所述目标回路作为传输路径。
22.在其中一个实施例中,在所述目标数量对应的类型为合数类型的情况下,所述根据所述类型对应的回路确定策略,确定包含所述目标数量的计算核的目标回路包括:
23.基于所述方形阵列、预设的头计算核和等效汉密尔顿回路确定规则,确定包含所述目标数量的计算核的目标回路。
24.在其中一个实施例中,在所述目标数量对应的类型为质数类型的情况下,所述根据所述类型对应的回路确定策略,确定包含所述目标数量的计算核的目标回路包括:
25.将所述方形阵列转换为汉密尔顿回路阵列和尾计算核;
26.基于所述汉密尔顿回路阵列、预设的头计算核和预设的汉密尔顿回路确定规则,确定所述汉密尔顿回路阵列对应的第一回路;所述第一回路为汉密尔顿回路;
27.根据所述尾计算核和预设的头计算核,确定包含所述尾计算核和头计算核的第二回路;
28.根据所述第一回路和所述第二回路,确定所述目标回路。
29.第二方面,本技术还提供了一种数据传输装置。所述装置包括:
30.第一确定模块,用于基于待处理数据的组数,确定待使用计算核的目标数量;
31.第二确定模块,用于根据所述目标数量和预设的头计算核,确定包含所述目标数量的计算核的目标汉密尔顿回路;
32.第三确定模块,用于在存在目标汉密尔顿回路的情况下,根据所述目标汉密尔顿回路,确定所述目标汉密尔顿回路包含的目标计算核,并将所述目标汉密尔顿回路作为传输路径;
33.传输模块,用于按照所述传输路径,通过各所述目标计算核,对所述待处理数据进行数据传输。
34.在其中一个实施例中,所述第二确定模块,具体用于:
35.根据所述目标数量,确定包含各所述目标计算核的方形阵列;
36.基于所述方形阵列、预设的头计算核和预设的汉密尔顿回路确定规则,确定包含所述目标数量的计算核的目标汉密尔顿回路。
37.在其中一个实施例中,所述第二确定模块,具体用于:
38.根据所述方形阵列,确定所述方形阵列的行数和列数;
39.若所述行数为偶数,则基于所述方形阵列、预设的头计算核和预设的汉密尔顿回路确定规则,确定包含所述目标数量的计算核的目标汉密尔顿回路;
40.若所述行数非偶数,则更新所述方形阵列的排列方式,并基于更新后的方形阵列、
预设的头计算核和预设的汉密尔顿回路确定规则,确定包含所述目标数量的计算核的目标汉密尔顿回路。
41.在其中一个实施例中,所述装置还包括:
42.第四确定模块,用于在不存在目标汉密尔顿回路的情况下,确定所述目标数量对应的类型;
43.第五确定模块,用于根据所述类型对应的回路确定策略,确定包含所述目标数量的计算核的目标回路;
44.第六确定模块,用于根据所述目标回路,确定所述目标回路包含的目标计算核,并将所述目标回路作为传输路径。
45.在其中一个实施例中,在所述目标数量对应的类型为合数类型的情况下,所述第五确定模块,具体用于:
46.基于所述方形阵列、预设的头计算核和等效汉密尔顿回路确定规则,确定包含所述目标数量的计算核的目标回路。
47.在其中一个实施例中,在所述目标数量对应的类型为质数类型的情况下,所述第五确定模块,具体用于:
48.将所述方形阵列转换为汉密尔顿回路阵列和尾计算核;
49.基于所述汉密尔顿回路阵列、预设的头计算核和预设的汉密尔顿回路确定规则,确定所述汉密尔顿回路阵列对应的第一回路;所述第一回路为汉密尔顿回路;
50.根据所述尾计算核和预设的头计算核,确定包含所述尾计算核和头计算核的第二回路;
51.根据所述第一回路和所述第二回路,确定所述目标回路。
52.第三方面,本技术还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的步骤。
53.第四方面,本技术还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的步骤。
54.第五方面,本技术还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述第一方面所述的步骤。
55.上述数据传输方法、装置、计算机设备、存储介质和计算机程序产品,基于待处理数据的组数,确定待使用计算核的目标数量;根据所述目标数量和预设的头计算核,确定包含所述目标数量的计算核的目标汉密尔顿回路;在存在目标汉密尔顿回路的情况下,根据所述目标汉密尔顿回路,确定所述目标汉密尔顿回路包含的目标计算核,并将所述目标汉密尔顿回路作为传输路径;按照所述传输路径,通过各所述目标计算核,对所述待处理数据进行数据传输。这样通过目标汉密尔顿回路的传输路径实现数据传输,处理器将每个计算核的数据传输到下一个计算核时,均不需要经过其他计算核,从而大幅提高数据传输效率。
附图说明
56.图1为一个实施例中数据传输方法的流程示意图;
57.图2为一个实施例中目标计算核的存储地址示意图;
58.图3为一个实施例中根据目标数量和预设的头计算核,确定包含目标数量的计算核的目标汉密尔顿回路步骤的流程示意图;
59.图4为一个实施例中基于方形阵列、预设的头计算核和预设的汉密尔顿回路确定规则,确定包含目标数量的计算核的目标汉密尔顿回路步骤的流程示意图;
60.图5为一个实施例中目标汉密尔顿回路示意图;
61.图6为一个实施例中目标汉密尔顿回路示意图;
62.图7为另一个实施例中数据传输方法的流程示意图;
63.图8为一个实施例中等效汉密尔顿回路示意图;
64.图9为一个实施例中等效汉密尔顿回路示意图;
65.图10为一个实施例中在目标数量对应的类型为质数类型的情况下,根据类型对应的回路确定策略,确定包含目标数量的计算核的目标回路步骤的流程示意图;
66.图11为一个实施例中目标回路示意图;
67.图12为一个实施例中数据传输装置的结构框图;
68.图13为一个实施例中计算机设备的内部结构图。
具体实施方式
69.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
70.在一个实施例中,如图1所示,提供了一种数据传输方法,本实施例以该方法应用于终端进行举例说明,可以理解的是,该方法也可以应用于服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。其中,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。本实施例中,该方法包括以下步骤:
71.步骤101,基于待处理数据的组数,确定待使用计算核的目标数量。
72.在本技术实施例中,终端可以先获取待处理数据的组数。然后,终端可以将待处理数据的组数作为待使用计算核的目标数量。其中,待处理数据为循环卷积过程的输入数据。待处理数据可以为特征图数据。待处理数据的组数为在实现循环卷积的过程中,待处理数据被划分的组数。例如,待处理数据的组数可以为n,此时,处理器在实现循环卷积的过程中,将卷积核划分为n组,并将待处理数据高度方向拆分为n组,每个处理器中的计算核(core)只保存待处理数据高度方向的1/n和对应的权重数据,经历n个阶段(phase)的卷积、激活操作和(n-1)个阶段的数据传输操作,得到完整的循环卷积结果。待使用计算核的目标数量与待处理数据的组数相等。
73.步骤102,根据目标数量和预设的头计算核,确定包含目标数量的计算核的目标汉密尔顿回路。
74.在本技术实施例中,终端可以先设定头计算核。其中,头计算核可以为位于方形阵列左上角的计算核。然后,终端可以根据头计算核,确定回路方向。其中,回路方向可以为回
路的初始方向。回路方向包括两种回路方向。例如,当头计算核为位于方形阵列左上角的计算核时,回路方向包括初始方向向右的回路方向和初始方向向下的回路方向。然后,终端可以根据目标数量、头计算核和回路的方向,确定包含目标数量的计算核的目标汉密尔顿回路。其中,目标汉密尔顿回路为由头计算核出发,最终回到头计算核,途中经过所有中间计算核且只经过一次的回路。目标计算核包括:头计算核和中间计算核。
75.步骤103,在存在目标汉密尔顿回路的情况下,根据目标汉密尔顿回路,确定目标汉密尔顿回路包含的目标计算核,并将目标汉密尔顿回路作为传输路径。
76.在本技术实施例中,在存在目标汉密尔顿回路的情况下,终端可以根据已经确定的目标汉密尔顿回路,在待选计算核中,确定目标汉密尔顿回路包含的目标计算核。其中,待选计算核为位于终端的空闲计算核。目标计算核为保存待处理数据,并进行数据传输的计算核。同时,终端将目标汉密尔顿回路作为传输路径。
77.步骤104,按照传输路径,通过各目标计算核,对待处理数据进行数据传输。
78.在本技术实施例中,当传输路径为目标汉密尔顿回路时,终端可以按照传输路径,确定目标计算核的传输先后顺序。针对每一个目标计算核,终端可以在该目标计算核的待处理数据存放地址,读取该目标计算核的待处理数据,并按照目标计算核的传输先后顺序,将该目标计算核的待处理数据,写入下一个计算核的待处理数据存放地址,实现对待处理数据进行数据传输。这样,在实现循环卷积操作时,传输数据阶段的取址位置相同,使得在不同的数据传输阶段,每个目标计算核簇中的每个目标计算核之间的路由关系能够恒定不变,从而保证了在不同数据传输阶段时,处理器将每个计算核的数据传输到下一个计算核时,均不需要经过其他计算核,进一步提高数据传输效率。同时,这样也使得在不同数据传输阶段时并不需要修改路由关系,极大简化路由算法,
79.在一个实施例中,如图2所示,针对每一个目标计算核,终端可以在该目标计算核的特征图数据起始存放地址fmi_start,读取该目标计算核的特征图数据fmi,并按照目标计算核的传输先后顺序,将该目标计算核的特征图数据fmi,写入到下一个计算核的待处理数据存放地址fm
i 1
_start,实现对待处理数据进行数据传输。其中,第i个计算核的特征图数据fmi的特征图数据终止存放地址为fmi_end。第i个计算核的权重数据wi的起始地址为wi_start。此外,针对每一个阶段,各目标计算核在该阶段卷积、激活后得到的结果,输出到各目标计算核对应的output_fmi。其中,每个目标计算核包括output_fm1,output_fm2,

,output_fmn。这样,在实现循环卷积操作时每个卷积、激活阶段取数据位置相同,传输数据阶段的取址位置也相同,降低了路由段代码的编写难度,降低了数据传输的失误率。
80.上述数据传输方法中,基于待处理数据的组数,确定待使用计算核的目标数量;根据目标数量和预设的头计算核,确定包含目标数量的计算核的目标汉密尔顿回路;在存在目标汉密尔顿回路的情况下,根据目标汉密尔顿回路,确定目标汉密尔顿回路包含的目标计算核,并将目标汉密尔顿回路作为传输路径;按照传输路径,通过各目标计算核,对待处理数据进行数据传输。这样通过目标汉密尔顿回路的传输路径实现数据传输,处理器将每个计算核的数据传输到下一个计算核时,均不需要经过其他计算核,从而大幅提高数据传输效率。并且,通过目标汉密尔顿回路的传输路径实现数据传输,单个目标计算核簇内数据传输不存在跨目标计算核的问题,而且每个传输路径闭环均是单独的,与其他闭环不存在任何关系,从根本上解决了路由死锁问题。同时,这样每个目标计算核发送的数据量均为自
己的传输量,网络的最大流等于网络的最小流,不存在附加,降低路由芯片计算的功耗。
81.在一个实施例中,如图3所示,根据目标数量和预设的头计算核,确定包含目标数量的计算核的目标汉密尔顿回路的具体过程包括以下步骤:
82.步骤301,根据目标数量,确定包含各目标计算核的方形阵列。
83.在本技术实施例中,终端可以根据目标数量,将各目标计算核排列为方形阵列。其中,方形阵列为二维网格(2dmesh)结构。方形阵列包括单行阵列、单列阵列和多行多列阵列。方形阵列包含的目标计算核数量大于1。
84.在将各目标计算核排列为方形阵列时,终端优先将各目标计算核排列为多行多列阵列。在各目标计算核的排列不存在多行多列排列时,终端将各目标计算核排列为单行阵列或单列阵列。
85.步骤302,基于方形阵列、预设的头计算核和预设的汉密尔顿回路确定规则,确定包含目标数量的计算核的目标汉密尔顿回路。
86.在本技术实施例中,终端可以先将位于方形阵列左上角的计算核,作为头计算核。然后,终端可以根据头计算核,确定回路方向。然后,终端可以在方形阵列上,从头计算核出发,按照回路方向,基于预设的汉密尔顿回路确定规则,确定包含目标数量的计算核的目标汉密尔顿回路。
87.在一个示例中,终端可以根据头计算核,将初始方向向下的回路方向,作为回路方向。然后,终端可以在方形阵列上,从头计算核出发,初始方向向下,基于预设的汉密尔顿回路确定规则,确定包含目标数量的计算核的目标汉密尔顿回路。
88.上述数据传输方法中,根据目标数量,确定包含各目标计算核的方形阵列;基于方形阵列、预设的头计算核和预设的汉密尔顿回路确定规则,确定包含目标数量的计算核的目标汉密尔顿回路。这样通过将回路拓扑映射到2dmesh的方形结构确定目标汉密尔顿回路,不仅无需改变芯片的物理结构,而且能够增加芯片的可扩性。
89.在一个实施例中,如图4所示,基于方形阵列、预设的头计算核和预设的汉密尔顿回路确定规则,确定包含目标数量的计算核的目标汉密尔顿回路的具体过程包括以下步骤:
90.步骤401,根据方形阵列,确定方形阵列的行数和列数。
91.在本技术实施例中,终端可以基于确定的方形阵列,确定该方形阵列的行数和列数。
92.步骤402,若行数为偶数,则基于方形阵列、预设的头计算核和预设的汉密尔顿回路确定规则,确定包含目标数量的计算核的目标汉密尔顿回路。
93.在本技术实施例中,若行数为偶数,则终端可以先将位于方形阵列左上角的计算核,作为头计算核。然后,终端可以根据头计算核,将初始方向向右的回路方向,作为回路方向。然后,终端可以在方形阵列上,从头计算核出发,初始方向向右,直至最后一列的计算核;再从最后一列的计算核向下,直至最后一行的计算核;再从最后一行的计算核向左,直至第一列的计算核;再从第一列的计算核向上一行。在此时终端到达头计算核的情况下,终端将当前回路,作为目标汉密尔顿回路,如图5所示。在此时终端未到达头计算核的情况下,终端将在方形阵列上,重复第一过程,并在每次重复之后,判断终端是否到达头计算核。若终端到达头计算核,则终端停止重复,并将当前回路,作为目标汉密尔顿回路,如图6所示。
其中,第一过程为终端在阵列上,向右,直至倒数第二列的计算核;再从倒数第二列的计算核向上一行;再向左,直至第一列的计算核;再从第一列的计算核向上一行。
94.步骤403,若行数非偶数,则更新方形阵列的排列方式,并基于更新后的方形阵列、预设的头计算核和预设的汉密尔顿回路确定规则,确定包含目标数量的计算核的目标汉密尔顿回路。
95.在本技术实施例中,若行数非偶数,则终端可以更新方形阵列的排列方式,得到更新后的方形阵列。其中,更新后的方形阵列的行数为偶数。
96.在一个示例中,终端可以将方形阵列旋转90度,交换方形阵列的行数与列数,实现对方形阵列的排列方式的更新,得到更新后的方形阵列。
97.在另一个示例中,终端可以将方形阵列重现排列,将方形阵列排列为偶数行,得到更新后的方形阵列。
98.然后,终端可以将位于更新后的方形阵列左上角的计算核,作为头计算核。然后,终端可以根据头计算核,将初始方向向右的回路方向,作为回路方向。然后,终端可以在更新后的方形阵列上,从头计算核出发,初始方向向右,直至最后一列的计算核;再从最后一列的计算核向下,直至最后一行的计算核;再从最后一行的计算核向左,直至第一列的计算核;再从第一列的计算核向上一行。在此时终端到达头计算核的情况下,终端将当前回路,作为目标汉密尔顿回路,如图5所示。在此时终端未到达头计算核的情况下,终端将在更新后的方形阵列上,重复第一过程,并在每次重复之后,判断终端是否到达头计算核。若终端到达头计算核,则终端停止重复,并将当前回路,作为目标汉密尔顿回路,如图6所示。其中,第一过程为终端在阵列上,向右,直至倒数第二列的计算核;再从倒数第二列的计算核向上一行;再向左,直至第一列的计算核;再从第一列的计算核向上一行。
99.上述数据传输方法中,根据方形阵列,确定方形阵列的行数和列数;若行数为偶数,则基于方形阵列、预设的头计算核和预设的汉密尔顿回路确定规则,确定包含目标数量的计算核的目标汉密尔顿回路;若行数非偶数,则更新方形阵列的排列方式,并基于更新后的方形阵列、预设的头计算核和预设的汉密尔顿回路确定规则,确定包含目标数量的计算核的目标汉密尔顿回路。这样保证阵列为偶数行,再基于汉密尔顿回路确定规则,确定包含目标数量的计算核的目标汉密尔顿回路,能够通过统一的规则,快速、准确地确定包含目标数量的计算核的目标汉密尔顿回路,从而进一步提高数据传输效率。
100.在一个实施例中,如图7所示,数据传输方法的具体过程还包括以下步骤:
101.步骤701,在不存在目标汉密尔顿回路的情况下,确定目标数量对应的类型。
102.在本技术实施例中,在不存在目标汉密尔顿回路的情况下,终端确定目标数量对应的类型。具体的,终端判断目标数量是否为合数。若目标数量为合数,则终端确定目标数量对应的类型为合数类型。若目标数量非合数,则终端确定目标数量对应的类型为质数类型。
103.步骤702,根据类型对应的回路确定策略,确定包含目标数量的计算核的目标回路。
104.在本技术实施例中,终端根据该类型,确定该类型对应的回路确定策略。其中,回路确定策略包括等效汉密尔顿回路确定规则和拆分回路确定规则。然后,终端根据该类型对应的回路确定策略,确定包含目标数量的计算核的目标回路。
105.在一个示例中,终端根据合数类型,确定合数类型对应的回路确定策略为等效汉密尔顿回路确定规则。然后,终端根据等效汉密尔顿回路确定规则,确定包含目标数量的计算核的目标回路。
106.在一个示例中,终端根据质数类型,确定质数类型对应的回路确定策略为拆分回路确定规则。然后,终端根据拆分回路确定规则,确定包含目标数量的计算核的目标回路。
107.步骤703,根据目标回路,确定目标回路包含的目标计算核,并将目标回路作为传输路径。
108.在本技术实施例中,终端可以根据已经确定的目标回路,在待选计算核中,确定目标回路包含的目标计算核。同时,终端将目标回路作为传输路径,以实现数据传输。
109.上述数据传输方法中,在不存在目标汉密尔顿回路的情况下,终端确定目标数量对应的类型;再根据类型对应的回路确定策略,确定包含目标数量的计算核的目标回路;然后,根据目标回路,确定目标回路包含的目标计算核,并将目标回路作为传输路径。这样,在不存在目标汉密尔顿回路的情况下,通过将与目标汉密尔顿回路相近的目标回路作为传输路径以实现数据传输,处理器在将计算核的数据传输到下一个计算核时,除了两个计算核之间的数据传输之外,其余计算核之间的数据传输,均不需要经过其他计算核,实现在不存在目标汉密尔顿回路的情况下的数据传输效率的大幅提高。
110.在一个实施例中,在目标数量对应的类型为合数类型的情况下,根据类型对应的回路确定策略,确定包含目标数量的计算核的目标回路的具体过程包括以下步骤:基于方形阵列、预设的头计算核和等效汉密尔顿回路确定规则,确定包含目标数量的计算核的目标回路。
111.在本技术实施例中,在目标数量对应的类型为合数类型的情况下,该方形阵列的行数和列数均为奇数。终端可以先确定合数类型对应的回路确定策略为等效汉密尔顿回路确定规则。然后,终端可以将位于方形阵列左上角的计算核,作为头计算核。然后,终端可以根据头计算核,确定回路方向。在一个示例中,终端可以根据头计算核,将初始方向向右的回路方向,作为回路方向。然后,终端可以在方形阵列上,从头计算核出发,按照回路方向,基于预设的等效汉密尔顿回路确定规则,确定包含目标数量的计算核的等效汉密尔顿回路。其中,等效汉密尔顿回路为由头计算核出发,最终回到头计算核,途中经过所有中间计算核,且除了一个中间计算核经过两次,其余的中间计算核只经过一次的回路。目标计算核包括:头计算核和中间计算核。
112.在一个示例中,终端可以先根据方形阵列,确定方形阵列的行数。然后,终端可以判断该方形阵列的行数是否为3。在该方形阵列的行数为3的情况下,终端可以将位于方形阵列左上角的计算核,作为头计算核。然后,终端可以根据头计算核,将初始方向向右的回路方向,作为回路方向。然后,终端可以在方形阵列上,从头计算核出发,初始方向向右,直至最后一列的计算核;再从最后一列的计算核向下,直至最后一行的计算核。然后,终端将在方形阵列上,重复第二过程,并在每次重复之后,判断终端与头计算核之间是否相隔一个计算核。其中,第二过程为终端在阵列上,向左一列;再向上一行;再向左一列;再向下一行。若终端与头计算核之间相隔一个计算核,则终端停止重复,再向上两行,到达头计算核,并将当前回路,作为等效汉密尔顿回路,如图8所示。
113.在该方形阵列的行数非3的情况下,终端可以将位于方形阵列左上角的计算核,作
为头计算核。然后,终端可以根据头计算核,将初始方向向右的回路方向,作为回路方向。然后,终端可以在方形阵列上,从头计算核出发,初始方向向右,直至最后一列的计算核;再从最后一列的计算核向下,直至最后一行的计算核。然后,终端将在方形阵列上,重复第三过程,并在每次重复之后,判断终端是否到达方形阵列的第三行。其中,第三过程为终端在阵列上,向左,直至第一列的计算核;再从第一列的计算核向上一行;再向右,直至倒数第二列的计算核;再从倒数第二列的计算核向上一行。若终端到达方形阵列的第三行,则终端停止重复第三过程,再向上一行;再向右一行;再向下一行;并判断终端与头计算核之间是否相隔一个计算核。在终端与头计算核之间并非相隔一个计算核的情况下,终端重复第二过程,并在每次重复之后,判断终端与头计算核之间是否相隔一个计算核。在终端与头计算核之间相隔一个计算核的情况下,终端停止重复,再向上两行,到达头计算核,并将当前回路,作为等效汉密尔顿回路,如图9所示。
114.然后,终端可以将等效汉密尔顿回路,作为目标回路。
115.上述数据传输方法中,在目标数量对应的类型为合数类型的情况下,终端基于方形阵列、预设的头计算核和等效汉密尔顿回路确定规则,确定包含目标数量的计算核的目标回路。这样,在不存在目标汉密尔顿回路,且目标数量对应的类型为合数类型的情况下,通过将与目标汉密尔顿回路相近的等效汉密尔顿回路作为传输路径以实现数据传输,处理器在将所有计算核的数据传输到下一个计算核时,仅需要经过一个其他计算核,实现在不存在目标汉密尔顿回路的情况下的数据传输效率的大幅提高。
116.在一个实施例中,如图10所示,在目标数量对应的类型为质数类型的情况下,根据类型对应的回路确定策略,确定包含目标数量的计算核的目标回路的具体过程包括以下步骤:
117.步骤1001,将方形阵列转换为汉密尔顿回路阵列和尾计算核。
118.在本技术实施例中,在目标数量对应的类型为质数类型的情况下,终端可以将方形阵列转换为汉密尔顿回路阵列和尾计算核。其中,尾计算核为将数据传输给头计算核的目标计算核。
119.具体的,在目标数量对应的类型为质数类型的情况下,该方形阵列为单行阵列或单列阵列。终端可以先将该方形阵列拆分为尾计算核和部分方形阵列。其中,部分方形阵列为包含除尾计算核之外的目标计算核的单行阵列或单列阵列。然后,终端可以更新该部分方形阵列的排列方式,将其转换为汉密尔顿回路阵列。
120.在一个示例中,由于目标数量对应的类型为质数类型,因此,部分方形阵列包含的计算核的数量为偶数。因此,终端可以将该部分方形阵列,重新排列为两行,得到汉密尔顿回路阵列。
121.步骤1002,基于汉密尔顿回路阵列、预设的头计算核和预设的汉密尔顿回路确定规则,确定汉密尔顿回路阵列对应的第一回路。
122.其中,第一回路为汉密尔顿回路。
123.在本技术实施例中,终端可以先将位于汉密尔顿回路阵列左上角的计算核,作为头计算核。然后,终端可以根据头计算核,确定回路方向。然后,终端可以在汉密尔顿回路阵列上,从头计算核出发,按照回路方向,基于预设的汉密尔顿回路确定规则,确定汉密尔顿回路阵列对应的第一回路。
124.具体的,在本技术实施例中,终端可以基于确定的汉密尔顿回路阵列,确定该汉密尔顿回路阵列的行数和列数。若行数为偶数,则终端可以先将位于汉密尔顿回路阵列左上角的计算核,作为头计算核。然后,终端可以根据头计算核,将初始方向向右的回路方向,作为回路方向。然后,终端可以在汉密尔顿回路阵列上,从头计算核出发,初始方向向右,直至最后一列的计算核;再从最后一列的计算核向下,直至最后一行的计算核;再从最后一行的计算核向左,直至第一列的计算核;再从第一列的计算核向上一行。在此时终端到达头计算核的情况下,终端将当前回路,作为第一回路。在此时终端未到达头计算核的情况下,终端将在汉密尔顿回路阵列上,重复第一过程,并在每次重复之后,判断终端是否到达头计算核。若终端到达头计算核,则终端停止重复,并将当前回路,作为第一回路。其中,第一过程为终端在阵列上,向右,直至倒数第二列的计算核;再从倒数第二列的计算核向上一行;再向左,直至第一列的计算核;再从第一列的计算核向上一行。
125.若行数非偶数,则终端可以更新汉密尔顿回路阵列的排列方式,得到更新后的汉密尔顿回路阵列。其中,更新后的汉密尔顿回路阵列的行数为偶数。然后,终端可以将位于更新后的汉密尔顿回路阵列左上角的计算核,作为头计算核。然后,终端可以根据头计算核,将初始方向向右的回路方向,作为回路方向。然后,终端可以在更新后的汉密尔顿回路阵列上,从头计算核出发,初始方向向右,直至最后一列的计算核;再从最后一列的计算核向下,直至最后一行的计算核;再从最后一行的计算核向左,直至第一列的计算核;再从第一列的计算核向上一行。在此时终端到达头计算核的情况下,终端将当前回路,作为第一回路。在此时终端未到达头计算核的情况下,终端将在更新后的汉密尔顿回路阵列上,重复第一过程,并在每次重复之后,判断终端是否到达头计算核。若终端到达头计算核,则终端停止重复,并将当前回路,作为第一回路。
126.步骤1003,根据尾计算核和预设的头计算核,确定包含尾计算核和头计算核的第二回路。
127.在本技术实施例中,终端可以将尾计算核和预设的头计算核之间的回路,作为第二回路。其中,第二回路包括两步:从头计算核到尾计算核和从尾计算核回到头计算核。
128.步骤1004,根据第一回路和第二回路,确定目标回路。
129.在本技术实施例中,终端可以根据第一回路和第二回路,将第一回路中的回到头计算核的一步和第二回路中的从头计算核到尾计算核的一步,转换为到尾计算核的一步。然后,终端将第一回路的其余步、第二回路的其余步和到尾计算核的一步连接起来,得到目标回路,如图11所示。
130.上述数据传输方法中,在目标数量对应的类型为质数类型的情况下,终端将方形阵列转换为汉密尔顿回路阵列和尾计算核;再基于汉密尔顿回路阵列、预设的头计算核和预设的汉密尔顿回路确定规则,确定汉密尔顿回路阵列对应的第一回路;再根据尾计算核和预设的头计算核,确定包含尾计算核和头计算核的第二回路;再根据第一回路和第二回路,确定目标回路。这样,在不存在目标汉密尔顿回路,且目标数量对应的类型为质数类型的情况下,通过将与目标汉密尔顿回路相近的目标回路作为传输路径以实现数据传输,处理器在将所有计算核的数据传输到下一个计算核时,仅需要经过一个其他计算核,实现在不存在目标汉密尔顿回路的情况下的数据传输效率的大幅提高。
131.应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头
的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
132.基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的数据传输方法的数据传输装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个数据传输装置实施例中的具体限定可以参见上文中对于数据传输方法的限定,在此不再赘述。
133.在一个实施例中,如图12所示,提供了一种数据传输装置1200,包括:第一确定模块1210、第二确定模块1220、第三确定模块1230和传输模块1240,其中:
134.第一确定模块1210,用于基于待处理数据的组数,确定待使用计算核的目标数量;
135.第二确定模块1220,用于根据所述目标数量和预设的头计算核,确定包含所述目标数量的计算核的目标汉密尔顿回路;
136.第三确定模块1230,用于在存在目标汉密尔顿回路的情况下,根据所述目标汉密尔顿回路,确定所述目标汉密尔顿回路包含的目标计算核,并将所述目标汉密尔顿回路作为传输路径;
137.传输模块1240,用于按照所述传输路径,通过各所述目标计算核,对所述待处理数据进行数据传输。
138.可选的,所述第二确定模块,具体用于:
139.根据所述目标数量,确定包含各所述目标计算核的方形阵列;
140.基于所述方形阵列、预设的头计算核和预设的汉密尔顿回路确定规则,确定包含所述目标数量的计算核的目标汉密尔顿回路。
141.可选的,所述第二确定模块,具体用于:
142.根据所述方形阵列,确定所述方形阵列的行数和列数;
143.若所述行数为偶数,则基于所述方形阵列、预设的头计算核和预设的汉密尔顿回路确定规则,确定包含所述目标数量的计算核的目标汉密尔顿回路;
144.若所述行数非偶数,则更新所述方形阵列的排列方式,并基于更新后的方形阵列、预设的头计算核和预设的汉密尔顿回路确定规则,确定包含所述目标数量的计算核的目标汉密尔顿回路。
145.可选的,所述装置还包括:
146.第四确定模块,用于在不存在目标汉密尔顿回路的情况下,确定所述目标数量对应的类型;
147.第五确定模块,用于根据所述类型对应的回路确定策略,确定包含所述目标数量的计算核的目标回路;
148.第六确定模块,用于根据所述目标回路,确定所述目标回路包含的目标计算核,并将所述目标回路作为传输路径。
149.可选的,在所述目标数量对应的类型为合数类型的情况下,所述第五确定模块,具
体用于:
150.基于所述方形阵列、预设的头计算核和等效汉密尔顿回路确定规则,确定包含所述目标数量的计算核的目标回路。
151.可选的,在所述目标数量对应的类型为质数类型的情况下,所述第五确定模块,具体用于:
152.将所述方形阵列转换为汉密尔顿回路阵列和尾计算核;
153.基于所述汉密尔顿回路阵列、预设的头计算核和预设的汉密尔顿回路确定规则,确定所述汉密尔顿回路阵列对应的第一回路;所述第一回路为汉密尔顿回路;
154.根据所述尾计算核和预设的头计算核,确定包含所述尾计算核和头计算核的第二回路;
155.根据所述第一回路和所述第二回路,确定所述目标回路。
156.上述数据传输装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
157.在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图13所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi、移动蜂窝网络、nfc(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种数据传输方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
158.本领域技术人员可以理解,图13中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
159.在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
160.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各方法实施例中的步骤。
161.在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
162.需要说明的是,本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
163.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,
本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器(ferroelectric random access memory,fram)、相变存储器(phase change memory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
164.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
165.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献