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

逻辑节点的映射方法、装置、电子设备及存储介质与流程

2022-02-22 04:58:42 来源:中国专利 TAG:


1.本公开涉及数据处理领域,尤其涉及一种逻辑节点的映射方法、装置、电子设备及存储介质。


背景技术:

2.随着神经网络模型深度的加深与结构的复杂化,其对处理设备的计算能力、通信能力提出了更高的要求。近年来,多处理器众核架构神经形态系统愈来愈受到开发人员的重视,将神经网络模型与多处理器众核架构相结合,可提升神经网络模型的计算速度。然而其复杂的处理器控制逻辑以及数据流规划往往会成为限制性能的瓶颈。如何更好地将神经网络模型与多处理器众核架构相结合,已成为研发人员无法避免的技术问题。


技术实现要素:

3.根据本公开的第一方面,提供了一种逻辑节点的映射方法,应用于多处理器众核系统,所述多处理器众核系统包括多个处理器,每个处理器包括多个计算核,每个计算核作为一个物理节点,所述映射方法包括:获取所述逻辑节点对应的逻辑图、对应的节点特征;基于所述逻辑图以及所述节点特征,通过预设的机器学习模型,为所述逻辑节点分配其对应的物理节点,并建立所述逻辑节点与所述物理节点的映射关系;其中,所述逻辑图用以表示所述逻辑节点之间的连接关系,所述节点特征用以表示所述逻辑节点之间的交互特征,所述多处理器众核系统中的计算核根据所述映射关系执行所述逻辑图所表示的运算。
4.在一种可能的实施方式中,所述节点特征包括:多播属性、节点连接数、节点交互权重中的至少一项。
5.在一种可能的实施方式中,所述映射方法还包括:基于所述多处理器众核系统的处理器数量,生成对应数量的社区;通过社区发现算法,为所述逻辑节点分配其对应的社区,并生成每个社区对应的社区参数;根据所述社区参数,为每个社区分配其对应的处理器;其中,所述社区参数包括:社区连接权重、自身节点数量、相接社区节点数量中的至少一个。
6.在一种可能的实施方式中,所述根据所述社区参数,为每个社区分配其对应的处理器,包括:根据每个社区对应的社区连接权重,确定每个社区对应的分配优先级;基于每个社区对应的分配优先级,依序为每个社区分配其对应的处理器;其中,所述社区连接权重与所述分配优先级正相关。
7.在一种可能的实施方式中,所述根据所述社区参数,为每个社区分配其对应的处理器,包括:在确定所述处理器中的可用物理节点的数量小于所述社区对应的自身节点数量的情况下,将另一个自身节点数量小于或等于所述可用物理节点的数量的社区,作为所述处理器对应的社区。
8.在一种可能的实施方式中,所述机器学习模型的训练流程如下:依次从多个训练用的逻辑图中选择一个逻辑图,作为第一逻辑图,并执行以下步骤,直至奖励总值大于或等
于预设阈值,更新策略网络的网络参数:基于所述第一逻辑图、所述第一逻辑图中的第一节点对应的第一节点特征,生成第一特征向量;通过所述策略网络,基于所述第一特征向量,生成第一预测结果;基于所述第一预测结果,生成所述第一预测结果对应的奖励值,并基于所述奖励值更新所述奖励总值。
9.在一种可能的实施方式中,所述通过所述策略网络,基于所述第一特征向量,生成第一预测结果,包括:基于所述第一特征向量,得到所述每个第一节点对应于每个物理节点的概率;基于所述概率,根据预设的分配规则,分配每个第一节点所对应的物理节点,并作为所述第一预测结果。
10.在一种可能的实施方式中,所述预设的分配规则包括:将每个第一节点,分配至该第一节点对应的概率最高的物理节点;在确定至少两个第一节点分配在同一个物理节点的情况下,根据所述第一节点对应的第一优先级,确定所述同一个物理节点对应的第一节点,并根据所述至少两个第一节点中未分配的第一节点的第一优先级,依序将与所述同一个物理节点距离最短的,且未被占用的物理节点,作为第一优先级最高的、未分配的第一节点对应的物理节点;其中,所述第一优先级与所述第一节点对应的节点交互权重正相关。
11.在一种可能的实施方式中,所述基于所述第一预测结果,生成所述第一预测结果对应的奖励值,包括:通过预设的奖励函数,基于所述第一预测结果,生成所述第一预测结果对应的奖励值。
12.在一种可能的实施方式中,所述奖励值与所述第一预测结果对应的交互损耗负相关、和/或、与预设的通路禁止数量负相关、和/或、与多播节点的通路存在数量正相关。
13.根据本公开的第二方面,提供了一种逻辑节点的映射装置,应用于多处理器众核系统,所述多处理器众核系统包括多个处理器,每个处理器包括多个计算核,每个计算核作为一个物理节点,所述映射装置包括:节点获取单元,用以获取所述逻辑节点对应的逻辑图、对应的节点特征;节点映射单元,用以基于所述逻辑图以及所述节点特征,通过预设的机器学习模型,为所述逻辑节点分配其对应的物理节点,并建立所述逻辑节点与所述物理节点的映射关系;其中,所述逻辑图用以表示所述逻辑节点之间的连接关系,所述节点特征用以表示所述逻辑节点之间的交互特征,所述多处理器众核系统中的计算核根据所述映射关系执行所述逻辑图所表示的运算。
14.根据本公开的第三方面,提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为可执行上述任意一项所述的量子点的合成方法。
15.根据本公开的第四方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述任意一项所述的量子点的合成方法。
16.本公开实施例提供的逻辑节点的映射方法,可获取所述逻辑节点对应的逻辑图、对应的节点特征,并基于所述逻辑图以及所述节点特征,通过预设的机器学习模型,为所述逻辑节点分配其对应的物理节点,并建立所述逻辑节点与所述物理节点的映射关系。本公开实施例提供的映射方法,可根据机器学习模型自动建立逻辑节点与物理节点的映射关系,降低了不适配的映射算法对多处理器众核系统处理效率的影响,进而降低了多处理器众核系统与神经网络结合的构建成本,同时提高了多处理器众核系统的处理效率。
17.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
18.包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
19.图1为根据本公开一实施例提供的多处理器众核系统的参考示意图。
20.图2为根据本公开一实施例提供的一种逻辑节点的映射方法的流程图。
21.图3为根据本公开一实施例提供的一种逻辑节点的映射方法的流程图。
22.图4为根据本公开一实施例提供的一种逻辑节点的映射方法的参考示意图。
23.图5为根据本公开一实施例提供的一种机器学习模型的训练流程图
24.图6为根据本公开一实施例提供的逻辑图、节点特征的数据形态的参考示意图。
25.图7为根据本公开一实施例提供的策略网络执行逻辑节点映射的参考示意图。
26.图8为根据本公开一实施例提供的映射装置的框图。
27.图9为根据本公开一实施例的一种电子设备的框图。
28.图10为根据本公开一实施例的一种电子设备的框图。
具体实施方式
29.以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
30.在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
31.另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
32.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本公开的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
33.相关技术中,通常是通过建立神经网络模型中的神经元与多处理器众核系统中的计算核(即core)之间的映射关系,实现神经网络模型与多处理器众核系统二者的结合。此过程通常使用遗传算法、蚁群优化算法、粒子群优化算法、模拟退火算法等建立神经元与计算核之间的映射。由于研发人员需要自行选择所使用的映射算法,故其选择的映射算法不一定是最合适的,若每个算法均进行尝试,将会大大增加多处理器众核系统与神经网络结合的构建成本。
34.本公开实施例提供的逻辑节点的映射方法,可获取所述逻辑节点对应的逻辑图、对应的节点特征,并基于所述逻辑图以及所述节点特征,通过预设的机器学习模型,为所述
逻辑节点分配其对应的物理节点,并建立所述逻辑节点与所述物理节点的映射关系。本公开实施例提供的映射方法,可根据机器学习模型自动建立逻辑节点与物理节点的映射关系,降低了不适配的映射算法对多处理器众核系统处理效率的影响,进而降低了多处理器众核系统与神经网络结合的构建成本,同时提高了多处理器众核系统的处理效率。
35.参阅图1所示,图1为根据本公开一实施例提供的多处理器众核系统的参考示意图。如图1所示,多处理器众核系统可包括多个处理器。
36.在一种可能的实施方式中,如图1所示,每个处理器可包括多个计算核,每个处理器内部的计算核之间、以及不同处理器的计算核之间能够进行数据传输;其中,每个计算核包括存储部件,所述存储部件用于存储与其他计算核进行传输的数据。
37.在一种可能的实现方式中,如图1所示,每个计算核可包括处理部件及存储部件。所述处理部件可以包括树突单元、轴突单元、胞体单元、路由单元。所述存储部件可以包括多个存储单元。
38.在一种可能的实现方式中,多个处理器也可以集成在一个类脑计算芯片中,类脑计算芯片即存算一体的神经形态电路,以大脑的处理模式为参考,通过模拟大脑中神经元对信息的传递与处理,提升处理效率并降低功耗。每个处理器可包括多个计算核,计算核之间可独立处理不同的任务,或并行处理同一任务,以提升处理效率。计算核之间可通过计算核内的路由单元进行核间信息传输。
39.在计算核之内,可以设置有处理部件和存储部件。处理部件可以包括树突单元、轴突单元、胞体单元和路由单元。处理部件可以模拟大脑的神经元对信息的处理模式,其中,树突单元用于接收信号,轴突单元用于发送尖峰信号,胞体单元用于信号的集成变换,路由单元用于同其它计算核进行信息传输。计算核内的处理部件可以对存储部件的多个存储单元进行读写访问,以与计算核内的存储部件进行数据交互,并可分别承担各自的数据处理任务和/或数据传输任务,以获得数据处理结果,或者与其他计算核进行通信。其中,与其他计算核进行通信包括与本处理器内的其他计算核进行通信,以及与其他处理器内的计算核通信。
40.在一种可能的实现方式中,所述存储部件包括多个存储单元,其中,存储单元可以为静态随机存取存储器(static random access memory,sram)。例如,可以包括读写宽度为16b,容量为12kb的sram。本公开对存储单元的容量大小和位宽不做限定。
41.基于上述多处理器众核系统,参阅图2所示,图2为根据本公开一实施例提供的一种逻辑节点的映射方法的流程图,如图2所示,该映射方法包括:
42.步骤s100、获取所述逻辑节点对应的逻辑图、对应的节点特征。所述逻辑图用以表示所述逻辑节点之间的连接关系,所述节点特征用以表示所述逻辑节点之间的交互特征。示例性地,逻辑图可为神经网络模型中表示神经元(也即本文所述的逻辑节点)之间的连接关系的加权无环有向图,也可为记录有神经元连接关系的矩阵。
43.示例性地,上述节点特征可包括:多播属性、节点连接数、节点交互权重中的至少一项。上述多播属性用以表示该逻辑节点是否为多播节点,例如:多播属性可用布尔值表示,
‘1’
代表该逻辑节点为多播节点,
‘0’
代表该逻辑节点不为多播节点。上述多播节点可将其接收到的数据,发送给至少一个其他的逻辑节点。例如:逻辑节点a将数据1发送给目标节点b,其目标节点为多播节点b,则多播节点b在接收到数据1后,再将数据1发送给多播节点b
预先设定的目标节点如逻辑节点c、d等。
44.示例性地,上述节点连接数可包括:输入通道连接数量、输出通道连接数量、通道连接总量中的至少一种。上述输入通道连接数量,用以表示其他逻辑节点与该逻辑节点的输入端连接的通道总量,上述输出通道连接数量,用以表示其他逻辑节点与该逻辑节点的输出端连接的通道总量,上述通道连接总量可为上述输入通道连接数量与上述输出通道连接数量二者之和。
45.示例性地,上述节点交互权重可包括:输入权重、输出权重、权重总值中的至少一种。上述输入权重可为其他逻辑节点与该逻辑节点输入端进行数据交互时所使用的权重(可先计算每一权重的绝对值,再计算输出权重),示例性地,该权重可用以与其他逻辑节点预传输至该逻辑节点的数据进行相乘,以作为该逻辑节点的输入数据。。在一个示例中,输入权重可表现为其他逻辑节点与该逻辑节点输入端进行数据交互时所使用的平均权重或权重和。示例性地,上述输出权重可为其他逻辑节点与该逻辑节点输出端进行数据交互时所使用的权重(可先计算每一权重的绝对值,再计算输出权重),示例性地,该权重可用以该逻辑节点预传输至其他逻辑节点的数据进行相乘,以作为该逻辑节点的输出数据。在一个示例中,输出权重可表现为其他逻辑节点与该逻辑节点输出端进行数据交互时所使用的平均权重或权重和。示例性地,上述权重总值可为输入权重与输出权重二者之和。
46.继续参阅图2,步骤s200、基于所述逻辑图以及所述节点特征,通过预设的机器学习模型,为所述逻辑节点分配其对应的物理节点,并建立所述逻辑节点与所述物理节点的映射关系。上述物理节点也即上述多处理器众核系统中的计算核。上述预设的机器学习模型可为任一相关技术中的机器学习模型,本公开实施例在此不作限定。示例性地,建立后的映射关系可表现为处理器索引与逻辑节点索引之间的关系,本公开实施例在此不作限定。此外,关于映射关系的保存位置,本公开实施例也不作限定,例如:映射关系可保存至多处理器众核系统中的任一处理器中,也可保存至多处理器众核系统的外接存储器中。
47.本公开实施例提供的逻辑节点的映射方法,可获取所述逻辑节点对应的逻辑图、对应的节点特征,并基于所述逻辑图以及所述节点特征,通过预设的机器学习模型,为所述逻辑节点分配其对应的物理节点,并建立所述逻辑节点与所述物理节点的映射关系。本公开实施例提供的映射方法,可根据机器学习模型自动建立逻辑节点与物理节点的映射关系,降低了不适配的映射算法对多处理器众核系统处理效率的影响,进而降低了多处理器众核系统与神经网络结合的构建成本,同时提高了多处理器众核系统的处理效率。
48.根据映射关系,物理节点之间按照所映射的逻辑节点之间的数据传输方式进行数据传输,在传输的过程中数据可与交互权重进行运算(例如相乘),从而通过多处理器众核系统中的物理节点,完成了逻辑图所表示的运算。
49.参阅图3所示,图3为根据本公开一实施例提供的一种逻辑节点的映射方法的流程图,在一种可能的实施方式中,所述映射方法包括:
50.步骤s300,基于所述多处理器众核系统的处理器数量,生成对应数量的社区。示例性地,从属于同一个社区的逻辑节点,即映射于同一个处理器上。社区数量与处理器数量相等,换言之,社区为处理器的一种逻辑概念。
51.参阅图4所示,图4为根据本公开一实施例提供的一种逻辑节点的映射方法的参考示意图。
52.结合图3及图4,步骤s400,通过社区发现算法,为所述逻辑节点分配其对应的社区(也即图4中community detection的过程),并生成每个社区对应的社区参数。图4中经community detection后,逻辑节点之间的不同灰度代表了其所属于不同的社区,同一灰度则表示所属于相同的社区。上述社区发现算法为相关技术,本公开实施例在此不作赘述,例如,社区发现算法可为fast unfolding算法(一种迭代算法)。示例性地,上述社区参数包括:社区连接权重、自身节点数量、相接社区节点数量中的至少一个。上述社区连接权重用以表示相连的两个社区之间的数据交互权重,可表现为两个社区之间交互权重的均值或和值(可先将交互权重转换为绝对值,再计算均值或和值),例如:可表现为两个社区间的输入权重、两个社区间的输出权重的和值或均值。上述自身节点数量为该社区内逻辑节点的总数量,上述相接社区节点数量为与该社区相连的社区的逻辑节点的总数量。
53.继续参阅图3,步骤s500,根据所述社区参数,为每个社区分配其对应的处理器。
54.示例性地,步骤s500可包括:根据每个社区对应的社区连接权重,确定每个社区对应的分配优先级。所述社区连接权重与所述分配优先级正相关。基于每个社区对应的分配优先级,依序为每个社区分配其对应的处理器。
55.示例性地,步骤s500也可包括:在确定所述处理器中的可用物理节点的数量小于所述社区对应的自身节点数量的情况下,将另一个自身节点数量小于或等于所述可用物理节点的数量的社区,作为所述处理器对应的社区。在一些示例中,处理器可能已被其他逻辑图(也即其他神经网络模型)占用,则实际上,其可用物理节点可能不足以容纳一个社区内的逻辑节点,在本公开实施例中,可选取任意一个自身节点数量小于或等于可用物理节点数量的社区,作为所述处理器对应的社区,也可选取任意一个自身节点数量小于或等于可用物理节点数量,且分配优先级较高的社区,作为所述处理器对应的社区,本公开实施例在此不作限定。
56.在一种可能的实施方式中,预设的机器学习模型可为强化学习模型,示例性地,在本公开实施例中,上述强化学习模型可包括:图卷积层,用以将逻辑图的特征转换为特征向量(也即图4中graph conv)。全连接层,用以混合策略网络中的传输数据,经输出层输出逻辑节点分布在每个物理节点的概率。本公开实施例在此不限定强化学习模型所使用的各类层(即layer),也不限定各类层的数量,研发人员可根据实际需求确定。例如:与图卷积层连接的读出层,可将relu函数作为激活函数,输出层可将tanh函数作为激活函数。
57.上述机器学习模型的训练流程如下:依次从多个训练用的逻辑图中选择一个逻辑图,作为第一逻辑图,并执行后续的步骤s600至s800,直至奖励总值大于或等于预设阈值(研究人员可根据实际需求设定其值),更新策略网络的网络参数。由于设定了策略网络需要满足奖励值总值大于或等于预设阈值,这一条件才更新网络参数的策略,故上述策略网络会以所有逻辑节点的整体布局最优为目标,而不是以局部最优(即以某一个逻辑节点达到最高奖励值)为目标,从而在整体布局层面优化了各个逻辑节点映射结果。
58.示例性地,在奖励值大于或等于奖励总值时,可通过相关技术中ppo算法(即proximal policy optimization算法)中的如下公式调节策略网络的网络参数:
[0059][0060]
其中,θ为策略网络的待更新参数,为策略网络在时间步t时的期望,r
t
(θ)代表
概率比(即当前的策略网络执行某一动作的概率与上一个时间步中的概率之间的比值),代表时间步t时的优势函数(用以判定何种动作概率为最优)的估值,clip()为一剪切函数,∈为一个超参数,用以确定上述剪切函数裁剪的概率比在何种区间中,例如:上式中clip(r
t
(θ),1-∈,1 ∈)代表保留概率比在1-∈与1 ∈之间的r
t
(θ)。此处仅作为本公开实施例的一个示例,也可采用其他算法中的公式调节策略网络的网络参数。
[0061]
参阅图5所示,图5为根据本公开一实施例提供的一种机器学习模型的训练流程图。
[0062]
如图5所示,机器学习模型的训练流程包括:
[0063]
步骤s600,基于所述第一逻辑图、所述第一逻辑图中的第一节点对应的第一节点特征,生成第一特征向量。上述第一特征向量(也称graph conv,或图卷积),可通过强化学习模型中的图卷积层生成。所述第一逻辑图、所述第一逻辑图中的第一节点对应的第一节点特征也即强化学习模型中的状态(即state)。
[0064]
参阅图6所示,图6为根据本公开一实施例提供的逻辑图、节点特征的数据形态的参考示意图。
[0065]
结合图6所示,上述第一逻辑图可通过二维矩阵表示。第一逻辑图中根据逻辑节点数量,生成一个邻接矩阵(即图6中netlist部分),矩阵中的每个值代表了其与其他逻辑节点的连接权重,例如矩阵大小若为(4,4),且矩阵中坐标(0,1)处的值若不为0,则代表第0号逻辑节点与第1号逻辑节点之间存在连接关系(无连接关系则用0表示),其坐标(0,1)对应的值为二者之间的交互权重。在一个示例中,为提高策略网络接收数据的灵活程度,可将每个第一逻辑图的矩阵大小设置为n*n(即填充的部分为图6中chip placement部分),其中,n为逻辑节点预分配的处理器中的物理节点的数量,每个二维矩阵可规范为相关技术中的拉普拉斯矩阵。
[0066]
示例性地,上述第一节点特征也可通过二维矩阵表示,一个维度用以代表每个节点的编号,另一维度用以代表每个节点的特征属性,二维矩阵中每个值可参考每个逻辑节点具体的节点特征而定。例如:若节点特征包括:多播属性、输入通道连接数量、输出通道连接数量、通道连接总量、输入权重、输出权重、权重总值,即7种特征,则二维矩阵的大小为(a,7),其中,a为第一逻辑图中逻辑节点的数量。示例性地,每个特征可通过相关技术中的最小-最大标准化进行数据单位的统一化,而后转换为第一特征向量,以供策略网络分析。
[0067]
步骤s700,通过所述策略网络,基于所述第一特征向量,生成第一预测结果。示例性地,上述策略网络(也即policy network)在满足预设条件时(在本公开实施例中为奖励总值大于或等于预设阈值),可通过ppo算法更新其网络参数。示例性地,上述策略网络用以决定强化学习模型的智能体(也即agent)根据不同的状态(即state,也即本公开实施例中所述的逻辑图、节点特征),作出何种动作(即action,也即本公开实施例中所述的第一预测结果)。结合图4,后续强化学习模型会生成一个奖励值,发送给策略网络(即图4中reward过程),以更新奖励总值,后文将进行详述。
[0068]
参照图7所示,图7为根据本公开一实施例提供的策略网络执行逻辑节点映射的参考示意图。
[0069]
结合图7所示,示例性地,策略网络会预测每个第一节点在每一个物理节点上的概率,其目标为增加奖励值大的分配情况的出现概率,减小奖励值小的分配情况出现的概率。
例如:策略网络可基于每一动作(即上述第一预测结果)的奖励值,通过调节每个第一节点对应的高斯模型中均值与标准差的方式,更新每个第一节点在物理节点上的分布概率,而后通过离散每个节点的高斯模型的方式,得到每个第一节点在物理节点的分布概率(可参考相关技术中的ppo算法,本公开实施例在此不作赘述),作为第一预测结果。示例性地,后续可通过相关技术中的贪婪算法分配第一节点对应的物理节点,即为每个物理节点分配概率最高的第一节点,本公开实施例在此不作限制。在一个示例中,每个第一节点的分配流程是在强化机器学习中的同一个时间步中执行的,也即策略网络同时分配每个节点对应的物理节点,以避免同一个逻辑节点分配在同一物理节点的分配冲突,后文将详述这一分配规则。
[0070]
示例性地,上述策略网络的目标可通过该公式表示:
[0071]
j_θ=min{(max(cc_left,cc_right) max(cc_up,cc_down))
×edl_ratio
}
[0072]
以上公式中cc_left表示当前逻辑节点与左侧相连的逻辑节点之间的交互损耗(通信量*通信距离,通信量即两个逻辑节点之间的数据传输量,通信距离即分配物理节点后,两个逻辑节点之间交互时数据的实际传输距离,也即逻辑节点对应的物理节点之间的相对距离,可通过欧式距离或曼哈顿距离表示),cc_right表示当前逻辑节点与右侧相连的逻辑节点之间的交互损耗,cc_up表示当前逻辑节点与上方相连的逻辑节点之间的交互损耗,cc_down表示当前逻辑节点与下方相连的逻辑节点之间的交互损耗,dl_ratio表示通路禁止数量与多播节点的通路存在数量的比值。上述通路禁止数量即为多处理器众核系统中数据在传输时,禁止发生转向的方向的数量。上述多播节点的通路存在数量,即为多处理器众核系统中多播节点在传输数据时所占用的通道总量。换言之,策略网络的目标为寻找交互损耗最小、通路禁止数量最小、多播节点通路存在数量最多的逻辑节点的映射方式。
[0073]
示例性地,通路禁止数量与路由死锁(即dead lock,即多个物理节点在同一个时间步内形成环路,物理节点之间在请求使用其他缓冲区资源的同时,自身并没有空闲缓冲区,使得节点之间相互等待,并保持这一僵局)的概率负相关。在本公开实施例中,为避免出现数据环路,可禁止组成数据环路的某一转向的数据通路传输数据,例如:在一个水平面中,一个数据流向为逆时针的数据环路包括:数据依次经ws转向(即同一水平面中,自西向南的转向,也即自左至下的转向)、se转向(即同一水平面中,自南向东的转向,也即自下至右的转向)、en转向(即同一水平面中,自东向北的转向,也即自右至上的转向)、nw转向(即同一水平面中,自北向西的转向,也即自上至左的转向)。由于数据传输方向存在着四个转向,故其构成了路由死锁的条件之一,即数据流向成环形。在数据流向为逆时针的数据环路中,禁止数量可设置为1,即禁止其环路中某一转向的数据流通,也就达到了破坏环路的目的,即降低了路由死锁情况的出现概率。示例性地,若多处理器众核系统的数据流向为顺时针的数据环路,则同样可禁止其环路中某一转向的数据流通,即禁止数量为两种数据流向的数据通路的禁止数量之和。示例性地,二者也可禁止同一位置的转向,例如:同时禁止数据环路中右上角的环路(数据流向为逆时针的数据环路中,为nw转向,数据流向为顺时针的数据环路中,为es转向),本公开实施例在此不作限定,通路禁止数量也可结合相关技术中的路由算法决定,在此不作赘述。
[0074]
在一种可能的实施方式中,步骤s700可包括:基于所述第一特征向量,得到所述每个第一节点对应于每个物理节点的概率。基于所述概率,根据预设的分配规则,分配每个第
一节点所对应的物理节点,并作为所述第一预测结果。
[0075]
示例性地,上述概率基于策略网络中的高斯分布模型,再经离散化所生成,上述高斯分布模型预测了每个逻辑节点分配在每个物理节点上的概率,而后经奖励值的反馈,调节高斯模型的分布状态。例如:若一个逻辑节点分配在一个物理节点时,得到了奖励值的正向反馈(即符合策略网络的目标),则提高该逻辑节点在智能体作出的下一次动作中再次分配在该物理节点的概率。具体的调节方法可参考相关技术中ppo算法、pg算法等,本公开实施例在此不作赘述。示例性地,输出层可将bound*tanh作为激活函数,即第一预测结果的平均值在[-bound,bound]内,并以2*bound/(n-1)将其离散为每个第一节点在每个物理节点上的概率。上述n为物理节点数量,bound为一个超参数,其决定了离散的密度,研究人员可视实际情况设定bound的值。
[0076]
示例性地,上述分配规则可包括:将每个第一节点,分配至该第一节点对应的概率最高的物理节点;在确定至少两个第一节点分配在同一个物理节点的情况下,根据所述第一节点对应的第一优先级,确定所述同一个物理节点对应的第一节点(例如是第一优先级最高的第一节点),并根据所述至少两个第一节点中未分配的第一节点的第一优先级,依序(即依照未分配第一节点的优先级的高低)将与所述同一个物理节点距离最短的,且未被占用的物理节点,作为第一优先级最高的、未分配的第一节点对应的物理节点;其中,所述第一优先级与所述第一节点对应的节点交互权重正相关。例如,第一节点1在物理节点a、物理节点b、物理节点c的概率为10%、20%、70%,那么将第一节点1分配至物理节点c。如果按照这样的规则,第一节点1、第一节点2、第一节点3均分配在同一物理节点时,如果第一节点1、第一节点2、第一节点3优先权依次减小,则可将第一节点1分配给该物理节点,将第一节点2分配给与该物理节点距离最近的物理节点,将第一节点3分配给与该物理节点距离第二近的物理节点。本公开实施例通过设定分配规则的方式,可避免第一节点分配在同一个物理节点时发生的分配冲突,确保了每个第一节点可被正确分配在物理节点上。示例性地,上述物理节点的距离可为曼哈顿距离或欧式距离。
[0077]
继续参阅图5,步骤s800,基于所述第一预测结果,生成所述第一预测结果对应的奖励值,并基于所述奖励值更新所述奖励总值。上述奖励值(也即reward),用以表示第一预测结果是否足够符合策略网络的目标。示例性地,该步骤可为通过预设的奖励函数,基于所述第一预测结果,生成所述第一预测结果对应的奖励值。
[0078]
示例性地,奖励值的计算公式可参照:
[0079]
r=-{(max(cc_left,cc_right) max(cc_up,cc_down))
×edl_ratio
}
[0080]
换言之,所述奖励值的大小与所述第一预测结果对应的交互损耗负相关、与预设的通路禁止数量负相关、与多播节点的通路存在数量正相关。在本公开实施例中,奖励函数同时考虑了交互损耗、防死锁策略、是否存在多播节点等因素,使得机器学习模型预测出的第一预测结果也会考虑上述因素,故逻辑节点的映射可以更加符合实际应用场景,研发人员也可根据实际需求,适量增删影响奖励函数中的各个参数,或更改每个参数的系数。例如:奖励函数可增加一个路由容错率的参数等。
[0081]
参阅图8所示,图8为根据本公开一实施例提供的映射装置的框图。
[0082]
在一种可能的实施方式中,本公开实施例还提供了一种逻辑节点的映射装置,应用于多处理器众核系统,所述多处理器众核系统包括多个处理器,每个处理器包括多个计
算核,每个计算核作为一个物理节点,如图8所示,所述映射装置100包括:节点获取单元110,用以获取所述逻辑节点对应的逻辑图、对应的节点特征。节点映射单元120,用以基于所述逻辑图以及所述节点特征,通过预设的机器学习模型,为所述逻辑节点分配其对应的物理节点,并建立所述逻辑节点与所述物理节点的映射关系。其中,所述逻辑图用以表示所述逻辑节点之间的连接关系,所述节点特征用以表示所述逻辑节点之间的交互特征,所述多处理器众核系统中的计算核根据所述映射关系执行所述逻辑图所表示的运算。
[0083]
在一种可能的实施方式中,所述节点特征包括:多播属性、节点连接数、节点交互权重中的至少一项。
[0084]
在一种可能的实施方式中,所述映射装置还包括处理器分配模块,用以基于所述多处理器众核系统的处理器数量,生成对应数量的社区;通过社区发现算法,为所述逻辑节点分配其对应的社区,并生成每个社区对应的社区参数;根据所述社区参数,为每个社区分配其对应的处理器;其中,所述社区参数包括:社区连接权重、自身节点数量、相接社区节点数量中的至少一个。
[0085]
在一种可能的实施方式中,所述根据所述社区参数,为每个社区分配其对应的处理器,包括:根据每个社区对应的社区连接权重,确定每个社区对应的分配优先级;基于每个社区对应的分配优先级,依序为每个社区分配其对应的处理器;其中,所述社区连接权重与所述分配优先级正相关。
[0086]
在一种可能的实施方式中,所述根据所述社区参数,为每个社区分配其对应的处理器,包括:在确定所述处理器中的可用物理节点的数量小于所述社区对应的自身节点数量的情况下,将另一个自身节点数量小于或等于所述可用物理节点的数量的社区,作为所述处理器对应的社区。
[0087]
在一种可能的实施方式中,所述机器学习模型的训练流程如下:依次从多个训练用的逻辑图中选择一个逻辑图,作为第一逻辑图,并执行以下步骤,直至奖励总值大于或等于预设阈值,更新策略网络的网络参数:基于所述第一逻辑图、所述第一逻辑图中的第一节点对应的第一节点特征,生成第一特征向量;通过所述策略网络,基于所述第一特征向量,生成第一预测结果;基于所述第一预测结果,生成所述第一预测结果对应的奖励值,并基于所述奖励值更新所述奖励总值。
[0088]
在一种可能的实施方式中,所述通过所述策略网络,基于所述第一特征向量,生成第一预测结果,包括:基于所述第一特征向量,得到所述每个第一节点对应于每个物理节点的概率;基于所述概率,根据预设的分配规则,分配每个第一节点所对应的物理节点,并作为所述第一预测结果。
[0089]
在一种可能的实施方式中,所述预设的分配规则包括:将每个第一节点,分配至该第一节点对应的概率最高的物理节点;在确定至少两个第一节点分配在同一个物理节点的情况下,根据所述第一节点对应的第一优先级,确定所述同一个物理节点对应的第一节点,并根据所述至少两个第一节点中未分配的第一节点的第一优先级,依序将与所述同一个物理节点距离最短的,且未被占用的物理节点,作为第一优先级最高的、未分配的第一节点对应的物理节点;其中,所述第一优先级与所述第一节点对应的节点交互权重正相关。
[0090]
在一种可能的实施方式中,所述基于所述第一预测结果,生成所述第一预测结果对应的奖励值,包括:通过预设的奖励函数,基于所述第一预测结果,生成所述第一预测结
果对应的奖励值。
[0091]
在一种可能的实施方式中,所述奖励值与所述第一预测结果对应的交互损耗负相关、和/或、与预设的通路禁止数量负相关、和/或、与多播节点的通路存在数量正相关。
[0092]
在一些实施例中,本公开实施例提供的系统具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
[0093]
本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。计算机可读存储介质可以是非易失性计算机可读存储介质。
[0094]
本公开实施例还提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述方法。
[0095]
本公开实施例还提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为调用所述存储器存储的指令,以执行上述方法。电子设备可以被提供为终端、服务器或其它形态的设备。
[0096]
根据本公开的另一方面,提供了一种电子设备,所述电子设备包括上述的处理器系统。
[0097]
图9为根据本公开一实施例提供的一种电子设备1200的框图。如图9中所示,该电子设备1200包括计算处理装置1202(例如,上述包括多个人工智能芯片的处理器系统)、接口装置1204、其他处理装置1206和存储装置1208。根据不同的应用场景,计算处理装置中可以包括一个或多个计算装置1210(例如,人工智能芯片,其中,每个芯片可包括多个功能核)。
[0098]
在一种可能的实现方式中,本公开的计算处理装置可以配置成执行用户指定的操作。在示例性的应用中,该计算处理装置可以实现为单芯片人工智能处理器或者多芯片人工智能处理器。类似地,包括在计算处理装置内的一个或多个计算装置可以实现为人工智能芯片或者人工智能芯片的部分硬件结构。当多个计算装置实现为人工智能芯片或人工智能芯片的部分硬件结构时,就本公开的计算处理装置而言,其可以视为具有单芯片结构或者同构多芯片结构。
[0099]
在示例性的操作中,本公开的计算处理装置可以通过接口装置与其他处理装置进行交互,以共同完成用户指定的操作。根据实现方式的不同,本公开的其他处理装置可以包括中央处理器(central processing unit,cpu)、图形处理器(graphics processing unit,gpu)、人工智能处理器等通用和/或专用处理器中的一种或多种类型的处理器。这些处理器可以包括但不限于数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,并且其数目可以根据实际需要来确定。如前所述,仅就本公开的计算处理装置而言,其可以视为具有单核结构或者同构多核结构。然而,当将计算处理装置和其他处理装置共同考虑时,二者可以视为形成异构多核结构。
[0100]
在一个或多个实施例中,该其他处理装置可以作为本公开的计算处理装置(其可
以具体化为人工智能例如神经网络计算的相关计算装置)与外部数据和控制的接口,执行包括但不限于数据搬运、对计算装置的开启和/或停止等基本控制。在另外的实施例中,其他处理装置也可以和该计算处理装置协作以共同完成计算任务。
[0101]
在一个或多个实施例中,该接口装置可以用于在计算处理装置与其他处理装置间传输数据和控制指令。例如,该计算处理装置可以经由所述接口装置从其他处理装置中获取输入数据,写入该计算处理装置片上的存储装置(或称存储器)。进一步,该计算处理装置可以经由所述接口装置从其他处理装置中获取控制指令,写入计算处理装置片上的控制缓存中。替代地或可选地,接口装置也可以读取计算处理装置的存储装置中的数据并传输给其他处理装置。
[0102]
附加地或可选地,本公开的电子设备还可以包括存储装置。如图中所示,该存储装置分别与所述计算处理装置和所述其他处理装置连接。在一个或多个实施例中,存储装置可以用于保存所述计算处理装置和/或所述其他处理装置的数据。例如,该数据可以是在计算处理装置或其他处理装置的内部或片上存储装置中无法全部保存的数据。
[0103]
根据不同的应用场景,本公开的人工智能芯片可用于服务器、云端服务器、服务器集群、数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、pc设备、物联网终端、移动终端、手机、行车记录仪、导航仪、传感器、摄像头、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、视觉终端、自动驾驶终端、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、b超仪和/或心电图仪。
[0104]
请参阅图10,图10示出了根据本公开一实施例提供的一种电子设备的框图。
[0105]
例如,电子设备1900可以被提供为一终端设备或服务器。参照图10,电子设备1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述方法。
[0106]
电子设备1900还可以包括一个电源组件1926被配置为执行电子设备1900的电源管理,一个有线或无线网络接口1950被配置为将电子设备1900连接到网络,和一个输入输出(i/o)接口1958。电子设备1900可以操作基于存储在存储器1932的操作系统,例如微软服务器操作系统(windows server
tm
),苹果公司推出的基于图形用户界面操作系统(mac os x
tm
),多用户多进程的计算机操作系统(unix
tm
),自由和开放原代码的类unix操作系统(linux
tm
),开放原代码的类unix操作系统(freebsd
tm
)或类似。
[0107]
在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器1932,上述计算机程序指令可由电子设备1900的处理组件1922执行以完成上述方法。
[0108]
本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。
[0109]
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是(但不限于)电存储设备、磁存储设备、光存储设备、
电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
[0110]
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
[0111]
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c 等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
[0112]
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
[0113]
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
[0114]
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的
指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
[0115]
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0116]
该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(software development kit,sdk)等等。
[0117]
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0118]
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
再多了解一些

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

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

相关文献