数据传输路径的确定方法、装置及电子设备与流程

文档序号:33707159发布日期:2023-03-31 22:06阅读:60来源:国知局
数据传输路径的确定方法、装置及电子设备与流程

1.本发明涉及人工智能技术领域,具体而言,涉及一种数据传输路径的确定方法、装置及电子设备。


背景技术:

2.由于高性能、低能耗的特点,基于片上网络(network-on-chip,noc)的异构计算系统(heterogeneous computing systems,hcss)被广泛应用于处理计算任务中。基于noc的hcss由具有不同性能的处理单元(processing elements,pes)组成。随着越来越多的核心集成到芯片上,在不同pe之间进行片上通信(on-chip communication)的过程中,通信链路的争用问题越来越严重,增加了不必要的链路等待时间,降低了整个hcss的计算效率。
3.针对上述的问题,目前尚未提出有效的解决方案。


技术实现要素:

4.本发明实施例提供了一种数据传输路径的确定方法、装置及电子设备,以至少解决现有技术中基于片上网络的计算系统中存在通信链路争用的技术问题。
5.根据本发明实施例的一个方面,提供了一种数据传输路径的确定方法,包括:获取至少一个待传输数据,其中,至少一个待传输数据为目标计算系统所包含的不同处理单元之间进行通信的数据;将至少一个待传输数据按照目标计算顺序依次输入目标路径规划模型中,输出每个待传输数据的目标路径,其中,目标路径规划模型是基于预设算法训练得到的,目标路径为预设范围内链路争用时间最短的路径,链路争用时间为待传输数据沿着当前路由集合的链路进行传输时所需要等待的时间。
6.进一步地,通过以下方法生成目标路径规划模型:获取至少一个待传输样本数据;根据至少一个待传输样本数据对预设算法的第一神经网络和第二神经网络进行训练,得到目标路径规划模型。
7.进一步地,数据传输路径的确定方法还包括:从至少一个待传输样本数据中选取第一待传输样本数据;获取第一待传输样本数据在传输链路中的当前位置,得到第一路由器,其中,第一路由器用于传输第一待传输样本数据;根据第一神经网络,确定第一待传输样本数据的至少一个传输方向,其中,至少一个传输方向用于指示第一待传输样本数据从第一路由器传输至目标路由器;对至少一个传输方向进行记录,得到第一待传输样本数据的路由集合。
8.进一步地,数据传输路径的确定方法还包括:根据第二神经网络,对路由集合进行评估,得到评估结果,其中,评估结果用于表征路由集合的链路争用时间的长短;基于评估结果,确定第一待传输样本数据的目标路径。
9.进一步地,数据传输路径的确定方法还包括:获取当前路由集合中的路由所占用的链路状态集合,其中,链路状态集合用于表征链路的使用情况;基于链路状态集合,计算当前路由集合的链路争用时间,得到评估结果。
10.进一步地,数据传输路径的确定方法还包括:比较当前路由集合的链路争用时间与目标路由集合的链路争用时间;在当前路由集合的链路争用时间小于目标路由集合的链路争用时间的情况下,更新目标路由集合;根据目标路由集合,生成目标路径。
11.进一步地,数据传输路径的确定方法还包括:根据第二神经网络,对至少一个传输方向进行评价,得到至少一个传输方向的奖励值,其中,奖励值用于衡量至少一个传输方向的优劣;根据奖励值,计算至少一个传输方向的优势值,其中,优势值表征第一待传输样本数据的当前状态与目标状态相比的优劣程度,目标状态表征第一待传输样本数据的所有状态的平均值;基于优势值,对第一神经网络和第二神经网络进行更新,得到更新后的第一神经网络和更新后的第二神经网络;在更新后的第一神经网络和更新后的第二神经网络满足预设条件的情况下,生成目标路径规划模型。
12.进一步地,数据传输路径的确定方法还包括:基于预设原则,对至少一个待传输数据进行排序处理,得到排序结果;根据排序结果,确定对至少一个待传输数据进行路由计算的顺序,得到目标计算顺序。
13.根据本发明实施例的另一方面,还提供了一种数据传输路径的确定装置,包括:获取模块,用于获取至少一个待传输数据,其中,至少一个待传输数据为目标计算系统所包含的不同处理单元之间进行通信的数据;确定模块,用于将至少一个待传输数据按照目标计算顺序依次输入目标路径规划模型中,输出每个待传输数据的目标路径,其中,目标路径规划模型是基于预设算法训练得到的,目标路径为预设范围内链路争用时间最短的路径,链路争用时间为待传输数据沿着当前路由集合的链路进行传输时所需要等待的时间。
14.根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述的数据传输路径的确定方法。
15.根据本发明实施例的另一方面,还提供了一种电子设备,该电子设备包括一个或多个处理器;存储器,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现用于运行程序,其中,程序被设置为运行时执行上述的数据传输路径的确定方法。
16.在本发明实施例中,采用通过强化学习算法对数据传输路径进行规划的方式,首先获取至少一个待传输数据,然后将至少一个待传输数据按照目标计算顺序依次输入目标路径规划模型中,输出每个待传输数据的目标路径。其中,目标路径规划模型是基于预设算法训练得到的,目标路径为预设范围内链路争用时间最短的路径,链路争用时间为待传输数据沿着当前路由集合的链路进行传输时所需要等待的时间,至少一个待传输数据为目标计算系统所包含的不同处理单元之间进行通信的数据。
17.在上述过程中,通过获取至少一个待传输数据,为后续进行传输路由计算提供了数据基础;基于目标路径规划模型,可以计算出待传输数据的传输链路,从而能够实现对传输链路的规划,进而能够得出链路争用时间最短的数据传输路径,实现了待传输数据沿着链路争用时间最短的传输链路进行传输的过程,减少了数据传输过程中的通信冲突,从而降低了数据传输的等待时间,进而提高了计算系统的计算效率,保证了计算系统的高速运行。
18.由此可见,通过本发明的技术方案,达到了减少基于片上网络的计算系统中的通
信链路争用的目的,从而实现了减少链路等待时间、提高计算系统的计算效率的技术效果,进而解决了现有技术中基于片上网络的计算系统中存在通信链路争用的技术问题。
附图说明
19.此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
20.图1是根据本发明实施例的一种可选的数据传输路径的确定方法的流程图;
21.图2是根据本发明实施例的一种可选的计算任务图;
22.图3是根据本发明实施例的一种可选的基于noc的hcss架构示意图;
23.图4是根据本发明实施例的一种可选的基于优势演员评论家算法进行路由规划的流程图;
24.图5是根据本发明实施例的一种可选的确定计算任务的运行方法的流程图;
25.图6是根据本发明实施例的一种可选的数据传输路径的确定装置的示意图;
26.图7是根据本发明实施例的一种可选的电子设备的示意图。
具体实施方式
27.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
28.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
29.需要说明的是,本发明所涉及的相关信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于展示的数据、分析的数据等),均为经用户授权或者经过各方充分授权的信息和数据。例如,本系统和相关用户或机构间设置有接口,在获取相关信息之前,需要通过接口向前述的用户或机构发送获取请求,并在接收到前述的用户或机构反馈的同意信息后,获取相关信息。
30.实施例1
31.根据本发明实施例,提供了一种数据传输路径的确定方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
32.图1是根据本发明实施例的一种可选的数据传输路径的确定方法的流程图,如图1
所示,该方法包括如下步骤:
33.步骤s101,获取至少一个待传输数据,其中,至少一个待传输数据为目标计算系统所包含的不同处理单元之间进行通信的数据。
34.在上述步骤中,可以通过应用系统、处理器、电子设备等装置获取至少一个待传输数据。可选的,图2是根据本发明实施例的一种可选的计算任务图,如图2所示,包括4个圆形节点v0~v3,每个圆形节点代表一个计算任务,每个计算任务需要交给处理单元pe进行处理,节点之间的单向边代表了任务之间的前置关系,即图2中,v0,v1,v2为v3的前置任务,任务v3需要等待v0,v1,v2均计算完成并且将计算结果数据传输给v3后才能开始执行。可选的,待传输数据可以是上述计算结果数据。
35.需要说明的是,在上述过程中,通过获取至少一个待传输数据,为后续进行传输路由计算提供了数据基础。
36.步骤s102,将至少一个待传输数据按照目标计算顺序依次输入目标路径规划模型中,输出每个待传输数据的目标路径,其中,目标路径规划模型是基于预设算法训练得到的,目标路径为预设范围内链路争用时间最短的路径,链路争用时间为待传输数据沿着当前路由集合的链路进行传输时所需要等待的时间。
37.在上述步骤中,预设算法为优势演员评论家算法(advantage actor-critic,a2c),a2c是一种由“演员”(actor)和“评论家”(critic)组成的强化学习算法。强化学习是机器学习下的一个领域,着力于训练主体如何基于当前的环境行动,以取得最大化的预期利益。强化学习的训练过程一般为:主体(agent)在时间t观测环境(environment)并得知自身处于状态(state)s
t
,随后主体从动作集合(action space)a中选择一个动作(action)a
t
执行,环境会遵循状态转移函数从状态s
t
转变到s
t+1
。之后奖励函数r(s
t
)给出新状态s
t+1
的奖励值(reward),用于训练主体学习该步动作的价值。这个过程会持续到当前状态已经使得环境结束(例如,当环境为迷宫时,主体已走出迷宫)或开发者提前终止。
38.具体的,可以将actor和critic看作两个神经网络,actor接受主体在时间t的状态s
t
作为输入,并输出主体在状态s
t
下应该执行的动作a
t
,critic会点评动作a
t
,即输出一个值q(s
t
,a
t
)用于衡量在状态s
t
下采取动作a
t
的价值,之后,通过q(s
t
,a
t
)来进一步计算优势值a(s
t
,a
t
),优势值的计算方法是a(s
t
,a
t
)=q(s
t
,a
t
)-v(s
t
),其中,v(s
t
)为状态s
t
的平均价值,是由在状态s
t
下所有可能采取的动作对应的状态-动作值q(s,a)与采取该动作的概率相乘并求和得到的。
39.可选的,将图2中的计算任务映射到pe上转化为如图3所示的基于noc的hcss架构示意图,更直观的展示了数据传输的路由情况,如图3所示,圆形节点为具有计算能力的pe,计算任务被分配到pe上执行,执行完毕后通过路由器和通信链路将计算结果数据传输给下一个计算任务(如有),方形节点为与pe相连的路由器,负责noc的片上通信,各个路由器之间、路由器与pe之间均可通过双向传输的链路连接在一起进行数据传输和交互,可选的,将从路由器m到路由器n的链路记作l
m,n

40.可选的,由于各个路由器之间、路由器与pe之间均可通过双向传输的链路连接在一起进行数据传输和交互,因此,会存在链路争用的情况。例如,如图3所示,假设v0,v1,v2三个任务同时计算完成,即将向v3传输数据,此时,由任务v0到v3的数据传输需经过链路l
0,1
,l
1,4
,而任务v1到v3的数据传输同样需要经过链路l
1,4
,任务v2到v3的数据传输也同理,因此
三个计算结果数据在链路l
1,4
发生了争用,需要依次等待其他数据传输完毕才能使用链路l
1,4
,降低了整个hcss的计算效率,增加了不必要的等待时间。因此,在本发明中,在获取至少一个待传输数据之后,基于优势演员评论家算法,分别对至少一个待传输数据进行路由计算,可以得到每个待传输数据的路由集合,从而为进行路径规划提供了数据基础。
41.可选的,路由集合可以是计算结果数据从当前路由器传输至目标路由器所经过的链路,例如,图3中由任务v0到v3的数据传输需经过链路l
0,1
,l
1,4
,链路l
0,1
和链路l
1,4
构成了路由集合{l
0,1
,l
1,4
}。预设范围可以是开发人员根据需求自行设定的训练次数,以对图3中由任务v0到v3的数据传输为例,在开始进行路由计算时设定训练次数为10次,第一次训练得到的路由集合为{l
0,1
,l
1,4
},该路由集合对应一个链路争用时间,第二次训练得到的路由集合为{l
0,3
,l
3,4
},该路由集合也对应一个链路争用时间,以此类推,直到训练结束,目标路径则为这10次训练中链路争用时间最短的路径。其中,由于不同的pe处理不同计算任务所需的时间不同,并且对于复杂的任务图而言,存在多个数据并行传输的情况,因此存在链路争用时间。
42.需要说明的是,在上述过程中,通过输出每个待传输数据的目标路径,能够实现待传输数据沿着链路争用时间最短的传输链路进行传输,减少了数据传输过程中的通信冲突,从而能够降低数据传输的等待时间,进而提高了计算系统的计算效率。
43.基于上述步骤s101至步骤s102所限定的方案,可以获知,在本发明实施例中,采用通过强化学习算法对数据传输路径进行规划的方式,首先获取至少一个待传输数据,然后将至少一个待传输数据按照目标计算顺序依次输入目标路径规划模型中,输出每个待传输数据的目标路径。其中,目标路径规划模型是基于预设算法训练得到的,目标路径为预设范围内链路争用时间最短的路径,链路争用时间为待传输数据沿着当前路由集合的链路进行传输时所需要等待的时间,至少一个待传输数据为目标计算系统所包含的不同处理单元之间进行通信的数据。
44.容易注意到的是,在上述过程中,通过获取至少一个待传输数据,为后续进行传输路由计算提供了数据基础;基于目标路径规划模型,可以计算出待传输数据的传输链路,从而能够实现对传输链路的规划,进而能够得出链路争用时间最短的数据传输路径,实现了待传输数据沿着链路争用时间最短的传输链路进行传输的过程,减少了数据传输过程中的通信冲突,从而降低了数据传输的等待时间,进而提高了计算系统的计算效率,保证了计算系统的高速运行。
45.由此可见,通过本发明的技术方案,达到了减少基于片上网络的计算系统中的通信链路争用的目的,从而实现了减少链路等待时间、提高计算系统的计算效率的技术效果,进而解决了现有技术中基于片上网络的计算系统中存在通信链路争用的技术问题。
46.在一种可选的实施例中,通过以下方法生成目标路径规划模型:获取至少一个待传输样本数据;根据至少一个待传输样本数据对预设算法的第一神经网络和第二神经网络进行训练,得到目标路径规划模型。
47.其中,在一种可选的实施例中,在获取至少一个待传输样本数据之后,从至少一个待传输样本数据中选取第一待传输样本数据,然后获取第一待传输样本数据在传输链路中的当前位置,得到第一路由器,然后根据第一神经网络,确定第一待传输样本数据的至少一个传输方向,然后对至少一个传输方向进行记录,得到第一待传输样本数据的路由集合。其
中,第一路由器用于传输第一待传输样本数据,至少一个传输方向用于指示第一待传输样本数据从第一路由器传输至目标路由器。
48.可选的,尽管强化学习作为人工智能领域里一项较为成熟的技术广为人知,但是,由于目前应用的任务图的复杂性,每个任务图通常有数十甚至上百个数据传输需要为其规划路由,因此,将强化学习应用到片上网络通信的路由规划中仍是有难度的。
49.可选的,首先进行建模,明确环境(environment)、训练主体(agent)、动作空间(action space)和奖励(reward),使得强化学习算法可以适用于片上网络通信的路由规划中。具体的,对noc中的数据所对应的强化学习中的概念进行定义:定义环境(environment)为noc中的通信链路占用情况,需要说明的是,在某个时间段通信链路可能会被其他待传输的数据占用。定义训练主体(agent)为某一份待传输数据m(即待传输样本数据),虽然数据在传输时是一个连续的过程,但是在路由规划的过程中,可以将数据视为在每个路由器之间逐跳传输,当主体到达一个路由器后,需要再采取一次动作(action)来抵达下一个路由器。为了使得数据最终一定能够到达目的路由器,规定数据不沿反方向传输,因此定义训练主体的动作(actions)有两种,即沿着x轴向目的路由器传输和沿着y轴向目的路由器传输。定义状态(state)为该数据传输时已经经过的路由器。定义某个状态的奖励(reward)为沿着该状态对应的路由传输数据时等待的链路争用时间的相反数,即争用时间越短,奖励越高。
50.可选的,以图2中的任务图和图3中的noc架构为例,假设任务v0需传输数据给v3,即需计算从0号路由器至4号路由器的路由,该次数据传输的初始状态为s0={0},即数据最开始时停留在0号路由器,下一个时间步(time step),数据向下传输一跳,到达3号路由器,此时状态为s1={0,3},尚未抵达终点4号路由器;再下一个时间步,数据向右传输一跳,到达4号路由器,此时状态为s2={0,3,4},数据到达终点路由器。其中,每个时间步的状态都可以对应出一条路由,例如,状态s2代表的路由为数据从0号路由器传输到3号路由器,再从3号路由器传输到4号路由器。
51.可选的,在对noc中的数据所对应的强化学习中的概念进行定义之后,可以使用强化学习算法进行训练。可选的,在本发明实施例中采用优势演员评论家算法(即预设算法)进行训练。具体的,在时间步t,训练主体已到达了一个路由器但还没有到达最终目的地,等待“演员”(actor)告诉训练主体在下一个时间步它该沿哪个方向传输。“演员”(actor)给出一个动作a
t
,训练主体执行动作a
t
并传输到下一个路由器,当前状态由s
t
转移到s
t+1
。在这之后,“评论家”(critic)会根据目前自身的理解给出对状态s
t
和s
t+1
的评价,然后根据给出的奖励计算优势值,随后利用优势值来更新“演员”和“评论家”的策略,让他们在下一次能够做出更聪明的选择。可选的,图4是根据本发明实施例的一种可选的基于优势演员评论家算法进行路由规划的流程图,如图4所示,给定一个待传输数据m和noc通信链路使用情况u,并进行初始化,将作为最佳状态,然后判断是否已达到最大训练次数,若是,则返回sb;若未达到最大训练次数,则初始化训练主体的状态为s=s0。然后,判断状态s是否已经结束,若是,则比较当前状态和最佳状态sb,若s更好,则将状态更新为sb=s;若状态s没有结束,则“演员”给出动作a
t
,主体执行动作a
t
,当前状态由s
t
转移到s
t+1
,然后“评论家”根据u评价状态s
t
和s
t+1
,然后计算优势值,并更新“演员”和“评论家”的策略。
52.可选的,对于一个需要传输多次数据的计算任务图来说,任务图中的每一条出边
代表了一次数据传输,在计算过程中,需要多次调用基于优势演员评论家算法的路由规划方法来为每次数据传输计算路由,因此,首先需要为待计算路由的出边排出一个顺序即目标计算顺序,来决定先计算哪条出边的路由,具体排序方式在后文中进行详细说明。
53.可选的,在获取至少一个待传输样本数据之后,选出首先进行路由计算的数据即第一待传输样本数据,然后获取该数据在传输链路中的当前位置,例如,待传输样本数据最开始时停留在0号路由器,当前位置就是0号路由器即第一路由器。
54.进一步地,根据预设算法的第一神经网络,可以确定第一待传输样本数据的至少一个传输方向。可选的,传输方向可以是沿着x轴向目的路由器传输,也可以是沿着y轴向目的路由器传输。具体的,假设待传输数据当前时刻停留在0号路由器,此时,初始状态为s0,路由规划方案里的路由集合是空的,然后,训练主体即待传输数据向actor即第一神经网络询问,现在它应该执行什么动作即应该沿着x轴向目的路由器传输还是沿着y轴向目的路由器传输,actor会从所有可执行的动作里选择出一个动作,假设是a0(沿着x轴向目的路由器传输),让训练主体即待传输数据去执行,例如,actor告诉训练主体即待传输数据应该沿着x轴向目的路由器传输,占用链路l
0,1
进行传输。
55.进一步地,对至少一个传输方向进行记录,得到第一待传输样本数据的路由集合。具体的,训练主体即待传输数据执行了上述动作之后,来到了1号路由器,此时它的状态从s0变成s1,路由规划方案里的路由集合加入了l
0,1
,变成了{l
0,1
}。在下一时刻,重复上述步骤,训练主体即待传输数据继续向actor即第一神经网络询问,此时,actor告诉训练主体即待传输数据应该沿着y轴向目的路由器传输,即占用链路l
1,4
进行传输,训练主体即待传输数据执行了上述动作之后,来到了4号路由器,此时它的状态从s1变成s2,路由规划方案里的路由集合加入了l
1,4
,变成了{l
0,1
,l
1,4
},由于4号路由器就是执行主体的终点,所以状态s2为结束,路由集合{l
0,1
,l
1,4
}就是这次训练中为待传输数据m规划出的路由。
56.在一种可选的实施例中,在对至少一个传输方向进行记录,得到第一待传输样本数据的路由集合之后,首先根据第二神经网络,对路由集合进行评估,得到评估结果,然后基于评估结果,确定第一待传输样本数据的目标路径。其中,评估结果用于表征路由集合的链路争用时间的长短。
57.其中,在一种可选的实施例中,在基于评估结果,确定第一待传输样本数据的目标路径的过程中,比较当前路由集合的链路争用时间与目标路由集合的链路争用时间,在当前路由集合的链路争用时间小于目标路由集合的链路争用时间的情况下,更新目标路由集合,然后根据目标路由集合,生成目标路径。
58.可选的,目标路由集合可以是单独记录的最佳路由集合,当经过新一次训练学习后,模型给出本次路由集合即当前路由集合,比较当前路由集合的链路争用时间与单独记录的最佳路由集合即目标路由集合对应的链路争用时间,在当前路由集合的链路争用时间小于目标路由集合的链路争用时间的情况下,更新记录的最佳路由集合,然后根据最佳路由集合,生成目标路径。
59.在一种可选的实施例中,在根据第二神经网络,对路由集合进行评估,得到评估结果的过程中,获取当前路由集合中的路由所占用的链路状态集合,然后基于链路状态集合,计算当前路由集合的链路争用时间,得到评估结果。其中,链路状态集合用于表征链路的使用情况。
60.可选的,在强化学习训练过程中需要得知传输数据时等待的链路争用时间,才能展开训练学习。一般来说,链路争用时间需要在实际芯片上运行或在gem5等平台上模拟运行时监控时钟周期才能得到,如果每次训练都需要调用gem5完整地模拟一次任务图运行,这会带来大量不必要的时间开销,跨平台之间的交互开销也同样是一个问题。因此,本发明给出了一个估算链路争用时间的方法,给定任务图后可以使用所有编程语言运行。
61.具体的,对于一个待传输数据m,给定为其规划好的路由r和当前noc中每一条通信链路的链路使用情况集合u,估算该数据沿着路由r传输时需要等待的链路争用时间。传输数据m所需要的传输时间取决于m的数据大小,将m的传输时间记作t。将m的来源任务的结束时间记作t1,t1同时也是m最早能够开始进行传输的时间。在理想情况下,路由r所需要使用的链路没有任何争用,那么m可以在时间t1开始传输,在时间t1+t结束传输,将时间t1+t记作t2,即在理想情况下m的传输时间区间为[t1,t2]。此时,在链路使用情况集合u中,对于路由r中的所有链路,将时间区间[t1,t2]标记为被数据m占用。
[0062]
然而,在实际场景中,链路争用是无法避免的。在时间t1,查询当前的链路使用情况集合u并检查沿着路由r传输时所需要使用的通信链路是否被其他数据传输占用。如果路由r中存在链路被其他数据传输占用,那么m需要等待时间tc直到r中所有的链路都可用。在这种情况下,m的传输时间区间就变为了[t1+tc,t2+tc],tc就是需要估算的链路争用时间。
[0063]
因此,为了计算tc,首先需要通过查询链路使用情况集合u来得知在时间区间[t1,t2]里路由r中哪些链路被其他数据传输所占用。具体的,获取所有已规划好的路由所占用的链路的状态集合,链路状态集合表征了每一条链路在所有时间段的被占用情况。
[0064]
同理,其他数据在占用链路时,也会在u中给出一个时间区间来表明自己需要占用该链路哪个时间段,因此,在所有被其他数据传输占用的链路中,在占用了时间区间[t1,t2]的数据里寻找最晚结束传输的数据,并将其传输结束时间记为t
′2。随后,将t

2-t1作为tc的初始值,然后检查在时间区间[t1+tc,t2+tc]内,路由r中的所有链路是否都是可用的。如果是,那么此时的tc就是估算的最终结果;如果不是,那么逐渐增加tc的值(每次增加1)并尝试检查在新的时间区间[t1+tc,t2+tc]里路由r中的所有链路是否都可用,直到所有链路均可用为止。
[0065]
进一步地,得到估算的tc的值后,对链路使用情况集合u进行更新,对于路由r中使用了的链路,将时间区间[t1+tc,t2+tc]标记为被消息m占用,以便于下一次计算其他路由的争用时间。
[0066]
在一种可选的实施例中,在根据第二神经网络,对路由集合进行评估,得到评估结果之前,根据第二神经网络,对至少一个传输方向进行评价,得到至少一个传输方向的奖励值,然后根据奖励值,计算至少一个传输方向的优势值,然后基于优势值,对第一神经网络和第二神经网络进行更新,得到更新后的第一神经网络和更新后的第二神经网络,在更新后的第一神经网络和更新后的第二神经网络满足预设条件的情况下,生成目标路径规划模型。其中,奖励值用于衡量至少一个传输方向的优劣,优势值表征第一待传输样本数据的当前状态与目标状态相比的优劣程度,目标状态表征第一待传输样本数据的所有状态的平均值。
[0067]
可选的,在t1时刻下主体agent处于状态s(t1),它执行不同的动作可以在t时刻到达不同的状态,所以状态s(t)是有很多种可能的。优势值的含义是执行完actor给出的动作
之后,在t时刻已经确定了它的状态s(t),然后拿这个已经确定的s(t)的奖励值,去跟所有可能出现的s(t)的奖励平均值进行比较。即优势值是指当前已经确定的状态s(t)相对于t时刻的平均状态的优势。需要说明的是,采用优势值是将当前状态值与平均状态做比较,可以加快训练的收敛速度。
[0068]
可选的,在前述过程中,训练主体即待传输数据执行actor告知的动作a0之后,critic即第二神经网络会对训练主体即待传输数据在状态s0执行动作a0进行评价,给出奖励值reward,然后根据reward可以计算出优势值,然后根据优势值,对actor和critic的策略进行更新,让它们变得更聪明,在下一个时刻能够做出更好的判断。可选的,预设条件可以是达到预设训练次数,例如,在开始训练时设置了预设训练次数为10次,在根据优势值,对actor和critic的策略进行更新的次数达到10次后,就得到了目标路径规划模型。
[0069]
在一种可选的实施例中,在获取至少一个待传输数据之后,基于预设原则,对至少一个待传输数据进行排序处理,得到排序结果,然后根据排序结果,确定对至少一个待传输数据进行路由计算的顺序,得到目标计算顺序。
[0070]
可选的,在上文中提到,对于一个需要传输多次数据的计算任务图来说,任务图中的每一条出边代表了一次数据传输,在计算过程中,需要多次调用基于优势演员评论家算法的路由规划方法来为每次数据传输计算路由,因此,首先需要为待计算路由的出边排出一个顺序即目标计算顺序,来决定先计算哪条出边的路由。具体的,首先初始化一个遵循先入先出原则的空队列,在整个算法开始执行时,将现在能立刻开始执行的任务(即无需等待其他前置任务传输给它数据)的出边加入到队列中,依据“短任务优先”的原则即预设原则,对待传输数据的顺序进行排列。每次取队列首的出边并为其计算路由,当一条边的路由计算完毕后,将其从队列中删去,并检查在该出边对应的数据传输完成后是否有任务可以开始执行,如有则将该任务的所有出边(同样依据“短任务优先”的原则排列顺序)加入队列。直至队列再次为空时,完成所有待传输数据的路由规划。
[0071]
需要说明的是,在上述过程中,通过对至少一个待传输数据进行排序,合理规划了待传输数据的计算顺序,进一步减少了数据传输的等待时间,提高了计算系统的计算效率。
[0072]
在一些其他可选的实施例中,可以将本发明提出的路由规划方法应用到noc的计算中,提升noc的计算速度。具体的,在本发明实施例中,采用基于二维网状结构2d-mesh的noc(片上神经网络)。
[0073]
可选的,图5是根据本发明实施例的一种可选的确定计算任务的运行方法的流程图,如图5所示,对于一个给定的任务图和该任务图运行的noc架构,首先需要将任务图中各个任务节点(计算任务)映射到noc的各个pe中,其中,映射方案可以由开发人员根据需求自行选取本领域中的现有方案,在此不作限定。在确定映射方案之后,通过本发明中的基于优势演员评论家算法进行路由规划的方法,为被映射了任务的pe之间进行路由规划,计算出最优的路由传输方案,实现链路争用时间最小化的数据传输。在得到映射方案和路由规划结果后,返回包含映射方案和路由规划结果的计算方法。
[0074]
可选的,还可以将返回的计算方法导入gem5模拟器来模拟该任务图的运行。具体的,为了检验本发明的效果,选用了audiobeam、autocor、h.264这三种常见的任务图作为实验对象。任务图详细参数如表1所示。其中,入度/出度代表任务图中节点最大的入度/出度。
[0075]
表1任务图参数
[0076][0077]
具体的,在gem5模拟器平台上设定了基于二维网状结构2d-mesh的noc作为实验平台,在8
×
8、16
×
16两种大小下进行实验并与其他路由规划方法进行对比。实验使用的noc基础架构为arsmart,其中,arsmart为支持任意转弯传输的改进smart noc设计。
[0078]
具体的,在算法消耗时间方面,本发明提出的方法与目前的sota路由规划方法比较而言,耗时有明显的减少,运行快速。如表2所示,表2中时间为运行一次路由规划方法在固定分配下为该任务图进行路由规划所需的时间。
[0079]
表2算法耗时明细表
[0080][0081]
具体的,在减少链路争用时间方面,本发明提出的方法与应用广泛的xy路由算法及目前的sota路由规划方法进行对比,均取得了不弱于现有技术的效果。如表3所示,表3中时间为根据该路由规划方法提出的路由传输数据时等待的争用时间,计量单位为时钟周期数。
[0082]
表3争用时间明细表
[0083][0084]
[0085]
由此可见,通过本发明的技术方案,达到了减少基于片上网络的计算系统中的通信链路争用的目的,从而实现了减少链路等待时间、提高计算系统的计算效率的技术效果,进而解决了现有技术中基于片上网络的计算系统中存在通信链路争用的技术问题。
[0086]
实施例2
[0087]
根据本发明实施例,提供了一种数据传输路径的确定装置的实施例,其中,图6是根据本发明实施例的一种可选的数据传输路径的确定装置的示意图,如图6所示,该装置包括:获取模块601,用于获取至少一个待传输数据,其中,至少一个待传输数据为目标计算系统所包含的不同处理单元之间进行通信的数据;确定模块602,用于将至少一个待传输数据按照目标计算顺序依次输入目标路径规划模型中,输出每个待传输数据的目标路径,其中,目标路径规划模型是基于预设算法训练得到的,目标路径为预设范围内链路争用时间最短的路径,链路争用时间为待传输数据沿着当前路由集合的链路进行传输时所需要等待的时间。
[0088]
需要说明的是,上述获取模块601、确定模块602对应于上述实施例中的步骤s101至步骤s102,两个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。
[0089]
可选的,数据传输路径的确定装置还包括:第一获取模块,用于获取至少一个待传输样本数据;第一训练模块,用于根据至少一个待传输样本数据对预设算法的第一神经网络和第二神经网络进行训练,得到目标路径规划模型。
[0090]
可选的,数据传输路径的确定装置还包括:第二获取模块,用于从至少一个待传输样本数据中选取第一待传输样本数据;第三获取模块,用于获取第一待传输样本数据在传输链路中的当前位置,得到第一路由器,其中,第一路由器用于传输第一待传输样本数据;第一确定模块,用于根据第一神经网络,确定第一待传输样本数据的至少一个传输方向,其中,至少一个传输方向用于指示第一待传输样本数据从第一路由器传输至目标路由器;第一记录模块,用于对至少一个传输方向进行记录,得到第一待传输样本数据的路由集合。
[0091]
可选的,数据传输路径的确定装置还包括:第一评估模块,用于根据第二神经网络,对路由集合进行评估,得到评估结果,其中,评估结果用于表征路由集合的链路争用时间的长短;第二确定模块,用于基于评估结果,确定第一待传输样本数据的目标路径。
[0092]
可选的,第一评估模块包括:第四获取模块,用于获取当前路由集合中的路由所占用的链路状态集合,其中,链路状态集合用于表征链路的使用情况;第一计算模块,用于基于链路状态集合,计算当前路由集合的链路争用时间,得到评估结果。
[0093]
可选的,第二确定模块包括:第一比较模块,用于比较当前路由集合的链路争用时间与目标路由集合的链路争用时间;第一更新模块,用于在当前路由集合的链路争用时间小于目标路由集合的链路争用时间的情况下,更新目标路由集合;第一生成模块,用于根据目标路由集合,生成目标路径。
[0094]
可选的,数据传输路径的确定装置还包括:评价模块,用于根据第二神经网络,对至少一个传输方向进行评价,得到至少一个传输方向的奖励值,其中,奖励值用于衡量至少一个传输方向的优劣;第二计算模块,用于根据奖励值,计算至少一个传输方向的优势值,其中,优势值表征第一待传输样本数据的当前状态与目标状态相比的优劣程度,目标状态表征第一待传输样本数据的所有状态的平均值;第二更新模块,用于基于优势值,对第一神
经网络和第二神经网络进行更新,得到更新后的第一神经网络和更新后的第二神经网络;第二生成模块,用于在更新后的第一神经网络和更新后的第二神经网络满足预设条件的情况下,生成目标路径规划模型。
[0095]
可选的,数据传输路径的确定装置还包括:排序模块,用于基于预设原则,对至少一个待传输数据进行排序处理,得到排序结果;第三确定模块,用于根据排序结果,确定对至少一个待传输数据进行路由计算的顺序,得到目标计算顺序。
[0096]
实施例3
[0097]
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述的数据传输路径的确定方法。
[0098]
实施例4
[0099]
根据本发明实施例的另一方面,还提供了一种电子设备,其中,图7是根据本发明实施例的一种可选的电子设备的示意图,如图7所示,电子设备包括一个或多个处理器;存储器,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现用于运行程序,其中,程序被设置为运行时执行上述的数据传输路径的确定方法。处理器执行程序时实现以下步骤:获取至少一个待传输数据,其中,至少一个待传输数据为目标计算系统所包含的不同处理单元之间进行通信的数据;将至少一个待传输数据按照目标计算顺序依次输入目标路径规划模型中,输出每个待传输数据的目标路径,其中,目标路径规划模型是基于预设算法训练得到的,目标路径为预设范围内链路争用时间最短的路径,链路争用时间为待传输数据沿着当前路由集合的链路进行传输时所需要等待的时间。
[0100]
可选的,处理器执行程序时还实现以下步骤:通过以下方法生成目标路径规划模型:获取至少一个待传输样本数据;根据至少一个待传输样本数据对预设算法的第一神经网络和第二神经网络进行训练,得到目标路径规划模型。
[0101]
可选的,处理器执行程序时还实现以下步骤:从至少一个待传输样本数据中选取第一待传输样本数据;获取第一待传输样本数据在传输链路中的当前位置,得到第一路由器,其中,第一路由器用于传输第一待传输样本数据;根据第一神经网络,确定第一待传输样本数据的至少一个传输方向,其中,至少一个传输方向用于指示第一待传输样本数据从第一路由器传输至目标路由器;对至少一个传输方向进行记录,得到第一待传输样本数据的路由集合。
[0102]
可选的,处理器执行程序时还实现以下步骤:根据第二神经网络,对路由集合进行评估,得到评估结果,其中,评估结果用于表征路由集合的链路争用时间的长短;基于评估结果,确定第一待传输样本数据的目标路径。
[0103]
可选的,处理器执行程序时还实现以下步骤:获取当前路由集合中的路由所占用的链路状态集合,其中,链路状态集合用于表征链路的使用情况;基于链路状态集合,计算当前路由集合的链路争用时间,得到评估结果。
[0104]
可选的,处理器执行程序时还实现以下步骤:比较当前路由集合的链路争用时间与目标路由集合的链路争用时间;在当前路由集合的链路争用时间小于目标路由集合的链路争用时间的情况下,更新目标路由集合;根据目标路由集合,生成目标路径。
[0105]
可选的,处理器执行程序时还实现以下步骤:根据第二神经网络,对至少一个传输方向进行评价,得到至少一个传输方向的奖励值,其中,奖励值用于衡量至少一个传输方向的优劣;根据奖励值,计算至少一个传输方向的优势值,其中,优势值表征第一待传输样本数据的当前状态与目标状态相比的优劣程度,目标状态表征第一待传输样本数据的所有状态的平均值;基于优势值,对第一神经网络和第二神经网络进行更新,得到更新后的第一神经网络和更新后的第二神经网络;在更新后的第一神经网络和更新后的第二神经网络满足预设条件的情况下,生成目标路径规划模型。
[0106]
可选的,处理器执行程序时还实现以下步骤:基于预设原则,对至少一个待传输数据进行排序处理,得到排序结果;根据排序结果,确定对至少一个待传输数据进行路由计算的顺序,得到目标计算顺序。
[0107]
本文中的设备可以是服务器、pc、pad、手机等。
[0108]
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0109]
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0110]
在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
[0111]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0112]
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0113]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0114]
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1