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

映射方案优化方法及装置、电子设备、可读存储介质与流程

2022-08-11 07:44:46 来源:中国专利 TAG:


1.本公开涉及人工智能技术领域,特别涉及一种映射方案优化方法及装置、电子设备、可读存储介质。


背景技术:

2.智能应用的普及使得神经网络计算越来越受重视。然而,通用处理器难以满足神经网络所需的大计算量及大存储量的需求,为此,相关技术人员开发了具有神经网络加速架构的众核系统。众核系统在执行神经网络时会把神经网络的众多神经元按空间分布在不同的处理核上,即得到映射方案。由于处理核之间的数据传递是通过众核系统的路由系统(片上网络)实现,而神经网络本身有大量的数据传递,导致处理核之间的数据传递量很大,未经处理的映射方案影响众核系统执行神经网络的效率。


技术实现要素:

3.本公开提供一种基于众核系统的映射方案优化方法及装置、电子设备、可读存储介质。
4.第一方面,本公开提供了一种基于众核系统的映射方案优化方法,该基于众核系统的映射方案优化方法包括:
5.获取初始的第一映射方案,其中,所述第一映射方案用于将待执行的第一神经网络映射至所述众核系统的多个处理核,每个所述处理核用于执行所述第一神经网络的至少一个神经元,所述第一映射方案中包括各个所述处理核之间的核间连接;
6.对第n-1次核间重构的映射方案中的核间连接进行重构,获得第n次核间重构的映射方案,n≥1且n为整数,其中,第0次核间重构的映射方案为所述第一映射方案;
7.判断所述第n次核间重构的映射方案是否满足核间优化条件;
8.在所述第n次核间重构的映射方案满足预设的核间优化条件的情况下,根据所述第n次核间重构的映射方案,确定优化后的第二映射方案。
9.第二方面,本公开提供了一种基于众核系统的映射方案优化装置,该基于众核系统的映射方案优化装置包括:
10.获取模块,用于获取初始的第一映射方案,所述第一映射方案用于将待执行的第一神经网络映射至所述众核系统的多个处理核,每个所述处理核用于执行所述第一神经网络的至少一个神经元,所述第一映射方案中包括各个所述处理核之间的核间连接;
11.重构模块,用于对第n-1次核间重构的映射方案中的核间连接进行重构,获得第n次核间重构的映射方案,n≥1且n为整数,其中,第0次核间重构的映射方案为所述第一映射方案;
12.判断模块,用于判断所述第n次核间重构的映射方案是否满足核间优化条件;
13.确定模块,用于在所述第n次核间重构的映射方案满足预设的核间优化条件的情况下,根据所述第n次核间重构的映射方案,确定优化后的第二映射方案。
14.第三方面,本公开提供了一种电子设备,该电子设备包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的一个或多个计算机程序,一个或多个所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的基于众核系统的映射方案优化方法。
15.第四方面,本公开提供了一种计算机可读存储介质,其上存储有计算机程序,其中,所述计算机程序在被处理器/处理核执行时实现上述的基于众核系统的映射方案优化方法。
16.本公开所提供的实施例,对第n-1次核间重构的映射方案中的核间连接进行重构,获得第n次核间重构的映射方案,之后判断所述第n次核间重构的映射方案是否满足核间优化条件,在所述第n次核间重构的映射方案满足预设的核间优化条件的情况下,根据所述第n次核间重构的映射方案,确定优化后的第二映射方案,优化了神经网络的映射方案,实现映射方案内聚化,而且减少了核间的数据传递,减轻了众核系统的路由压力,提高了众核系统执行神经网络的效率。
17.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
18.附图用来提供对本公开的进一步理解,并且构成说明书的一部分,与本公开的实施例一起用于解释本公开,并不构成对本公开的限制。通过参考附图对详细示例实施例进行描述,以上和其他特征和优点对本领域技术人员将变得更加显而易见,在附图中:
19.图1为本公开实施例提供的一种基于众核系统的映射方案优化方法的流程图;
20.图2为本公开实施例中将神经网络映射至众核系统的不同处理核上获得的映射方案的示意图;
21.图3为本公开实施例提供的一种核间重构优化方法的流程图;
22.图4为本公开实施例提供的核间剪枝优化过程中映射方案的变化示意图;
23.图5为本公开实施例提供的另一种核间重构优化方法的流程图;
24.图6为本公开实施例提供的核间重构过程中映射方案的变化示意图;
25.图7为本公开实施例提供的一种核内重连优化方法的流程图;
26.图8为本公开实施例提供的一种核内重连优化方法的流程图;
27.图9为本公开实施例提供的核内重连优化过程中映射方案的变化过程示意图;
28.图10为本公开实施例提供的一种映射方案优化方法的流程图;
29.图11为本公开实施例提供的两轮核间重构优化和核内重连优化过程中映射方案的变化过程示意图;
30.图12为本公开实施例提供的一种基于众核系统的映射方案优化装置的框图;
31.图13为本公开实施例提供的一种电子设备的框图。
具体实施方式
32.为使本领域的技术人员更好地理解本公开的技术方案,以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为
仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
33.在不冲突的情况下,本公开各实施例及实施例中的各特征可相互组合。
34.如本文所使用的,术语“和/或”包括一个或多个相关列举条目的任何和所有组合。
35.本文所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本文所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。还将理解的是,当本说明书中使用术语“包括”和/或“由
……
制成”时,指定存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其群组。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
36.除非另外限定,否则本文所用的所有术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本公开的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本文明确如此限定。
37.目前的神经网络映射方案较多地考虑众核系统的内存、负载均衡等因素,很少考虑路由因素,因此,映射方案的路由压力较大。
38.根据本公开实施例的映射方案优化方法,能够对映射方案进行优化,减轻路由压力,从而提高众核系统执行神经网络的效率。
39.根据本公开实施例的映射方案优化方法可以由电子设备执行,电子设备可以是终端设备或服务器等电子设备,终端设备可以为车载设备、用户设备(user equipment,ue)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字助理(personal digital assistant,pda)、手持设备、计算设备、车载设备、可穿戴设备等,所述方法可以通过处理器调用存储器中存储的计算机可读程序指令的方式来实现。或者,可通过服务器执行所述方法。
40.在一些实施例中,众核系统可包括多个处理单元,该处理单元可以是芯片,也可以是处理核。即,众核系统包括多个芯片,每个芯片用于执行待处理的子任务;或者,众核系统包括多个处理核,每个处理核用于执行待处理的子任务,其中,待处理的子任务可以是神经网络的至少一个神经元。为了便于说明,下面的实施例均以处理核为例进行说明。
41.在一些实施例中,针对待执行的神经网络(包括多个神经元),可通过外部设备(例如编译器)生成对应的映射方案,以便将该神经网络映射至众核系统的全部或部分的处理核或芯片,从而使得众核系统能够执行该神经网络对应的处理任务。
42.图1为本公开实施例提供的一种基于众核系统的映射方案优化方法的流程图。参照图1,本公开实施例提供的基于众核系统的映射方案优化方法,包括:
43.在步骤s101中,获取初始的第一映射方案。
44.其中,第一映射方案用于将待执行的第一神经网络映射至众核系统的多个处理核,每个处理核用于执行第一神经网络的至少一个神经元,第一映射方案中包括各个处理核之间的核间连接。
45.在一些实施例中,众核系统包括多个处理核,各处理核的存储能力、运算能力等物
理参数可以相同,也可以不同。第一映射方案是将待执行的第一神经网络映射到众核系统的各处理核后得到的映射方案。示例地,第一映射方案是基于众核系统的物理参数将第一神经网络映射至众核系统确定的方案。在第一映射方案中,一个处理核可以映射第一神经网络中的一个或多个神经元,其中,位于不同处理核的神经元之间的信息传输需要占用众核系统的路由资源,位于同一处理核的神经元之间的信息传输不占用众核系统的路由资源。因此,第一神经网络中的核内连接为位于同一处理核的神经元之间的连接,第一神经网络中的核间连接为位于不同处理核的神经元之间的连接。
46.本公开实施例中,可以为了减少占用众核系统的路由资源,对第一映射方案进行优化,并获得优化后的第二映射方案。
47.在一些实施例中,第一映射方案不仅包括第一神经网络涉及的处理核及处理核之间的核间连接;还包括第一神经网络中神经元对应的处理节点,以及处理节点之间的核内连接。每个处理节点对应至少一个神经元。
48.图2为本公开实施例中将神经网络映射至众核系统的不同处理核上获得的映射方案的示意图。在图2中,方框表示处理核,黑点表示处理节点,处理节点对应一个或一群(一层)神经元,处理节点之间的连线表示数据传递。图2示出的映射方案包括四个处理核,即第一处理核21、第二处理核22、第三处理核23和第四处理核24,其中,第一处理核21、第二处理核22和第三处理核23内各包括三个处理节点,第四处理核24设置有四个处理节点。在四个处理核之间共设置有九个核间连接,其中,第一处理核21和第二处理核22之间设有一个核间连接201,第一处理核21和第三处理核23之间设有两个核间连接202a、202b,第一处理核21和第四处理核24之间设有一个核间连接203,第二处理核22和第三处理核23之间设有两个核间连接204a、204b,第二处理核22和第四处理核24之间设有两个核间连接205a、205b,第三处理核23和第四处理核24之间设有一个核间连接206。在图2所示的映射方案中,处理核之间的核间连接较多,且比较复杂,因此需要对该映射方案进行优化,以减轻众核系统的路由压力。
49.在步骤s102中,对第n-1次核间重构的映射方案中的核间连接进行重构,获得第n次核间重构的映射方案。
50.其中,n为大于或等于1的整数,第0次核间重构的映射方案为步骤s101的第一映射方案,即,对映射方案进行优化时,首次采用的映射方案为待执行的第一神经网络对应的初始映射方案。
51.在一些实施例中,对核间连接进行重构的方式可包括:从第n-1次核间重构的映射方案中删除一些权重较小的核间连接;删除一些代价较大的连接;删除一些较长的核间连接并相应增加一些较短的核间连接等,本公开对此不作限制。这样,在对第n-1次核间重构的映射方案中的核间连接进行重构后,可获得第n次核间重构的映射方案。
52.在步骤s103中,判断第n次核间重构的映射方案是否满足核间优化条件。
53.在第n次核间重构的映射方案不满足预设的核间优化条件的情况下,返回步骤s102,再次对核间连接进行重构。在第n次核间重构的映射方案满足预设的核间优化条件的情况下,执行步骤s104。
54.在步骤s104中,在第n次核间重构的映射方案满足预设的核间优化条件的情况下,根据第n次核间重构的映射方案,确定优化后的第二映射方案。
55.在一些实施例中,核间优化条件为核间优化的循环次数达到预设的循环次数。示例地,在预设的循环次数为n次时,在步骤s103中判断n小于n时,返回步骤s102;在n等于n时,将第n次核间重构的映射方案确定为第二映射方案。其中,n为正整数。
56.在一些实施例中,核间优化条件为核间重构的映射方案满足路由负载要求。示例地,预先设定一个路由负载阈值,当第n次核间重构的映射方案能够满足预先设定的路由负载阈值时,将第n次核间重构的映射方案确定为第二映射方案。
57.根据本公开的实施例,对第n-1次核间重构的映射方案中的核间连接进行重构,获得第n次核间重构的映射方案,之后判断第n次核间重构的映射方案是否满足核间优化条件,在第n次核间重构的映射方案满足预设的核间优化条件的情况下,根据第n次核间重构的映射方案,确定优化后的第二映射方案,该方法优化了神经网络的映射方案,使得映射方案内聚化,减少核间的数据传递,减轻了众核系统的路由压力,提高了众核系统执行神经网络的效率。
58.在本公开实施例中,在优化的第二映射方案中,重新确定了第一神经网络的核间连接,减少了核间连接,从而在满足第一神经网络的精度要求的情况下,降低了众核系统的路由压力。将优化的第二映射方案映射至众核系统,利用众核系统执行第一神经网络时,既可以满足第一神经网络的精度要求,又可以降低众核系统的路由压力。
59.图3为本公开实施例提供的一种核间重构优化方法的流程图。该核间重构优化方法是通过核间剪枝方式对映射方案进行优化。如图3所示,在步骤s102中对第n-1次核间重构的映射方案中的核间连接进行重构,获得第n次核间重构的映射方案包括:
60.步骤s301,确定第n-1次核间重构的映射方案中、各个核间连接的连接代价和连接权重。
61.其中,连接代价指示与核间连接对应的处理核之间连接的代价,即在利用映射方案执行神经网络时该核间连接需要占用的路由资源。连接权重指示与核间连接对应的神经元之间连接的权重,即在执行神经网络时该核间连接在映射方案涉及的所有核间连接中的贡献大小。
62.在一些实施例中,连接代价是基于核间连接的单位时间数据通信量a及核间连接对应的起点处理核和终点处理核之间的距离d确定的,即连接代价c是单位时间数据通信量a和核间连接对应的起点处理核和终点处理核之间的距离d的函数,如式(1):
63.cost(c)=f(a,d)
ꢀꢀꢀꢀꢀ
(1)
64.其中,cost(c)表示连接代价,f()表示代价函数,a表示单位时间数据通信量,d表示起点处理核和终点处理核之间的距离。本公开对代价函数的具体表示形式不作限制。
65.步骤s302,设定核间连接的第m个代价阈值和第m个第一权重阈值,其中,m≥1且m为整数。
66.在一些实施例中,每个循环均可根据情况设定核间连接的代价阈值cost
th
和核间连接的第一权重阈值w
th

67.步骤s303,将连接代价大于第m个代价阈值、且连接权重的绝对值小于第m个第一权重阈值的核间连接删除,得到第m个核间剪枝映射方案。
68.在一些实施例中,将连接代价大于第m个代价阈值、且连接权重的绝对值小于第m个第一权重阈值的核间连接删除,得到第m个核间剪枝映射方案。
69.步骤s304,利用训练数据集对与第m个核间剪枝映射方案对应的第二神经网络进行重训练,得到第m个重训练后的第二神经网络。
70.在一些实施例中,利用训练数据集对第二神经网络进行训练所采用的损失函数包括连接代价正则项和连接权重正则项。
71.示例性,训练的损失函数loss为式(2):
[0072][0073]
其中,loss

表示训练数据集上原有的损失函数,c表示核间连接,c表示映射方案中所有的核间连接,cost(c)表示连接代价,即连接代价正则项,w(c)表示连接权重,即连接权重正则项。
[0074]
步骤s305,判断第m个重训练后的第二神经网络的精度是否达到预设的精度阈值,在第m个重训练后的第二神经网络的精度未达到预设的精度阈值的情况下,返回执行步骤s302,也即再次设定核间连接的代价阈值和第一权重阈值;在第m个重训练后的第二神经网络的精度达到预设的精度阈值的情况下,执行步骤s306。
[0075]
步骤s306,在第m个重训练后的第二神经网络的精度达到预设的精度阈值的情况下,将第m个重训练后的第二神经网络对应的核间剪枝映射方案,确定为第n次核间重构的映射方案。
[0076]
图4为本公开实施例提供的核间剪枝优化过程中映射方案的变化示意图。在图4中,方框表示处理核,黑点表示处理节点。图4示出的映射方案包括四个处理核,即第一处理核41、第二处理核42、第三处理核43和第四处理核44。在图4中(a)为核间剪枝前的映射方案,第一处理核41和第二处理核42之间设有一个核间连接401,第一处理核41和第三处理核43之间设有两个核间连接402a、402b,第一处理核41和第四处理核44之间设有一个核间连接403,第二处理核42和第三处理核43之间设有两个核间连接404a、404b,第二处理核42和第四处理核44之间设有两个核间连接405a、405b,第三处理核43和第四处理核44之间设有一个核间连接406。
[0077]
假设步骤s303判断核间连接402a、核间连接403和核间连接405b的连接代价大于第m个代价阈值、且连接权重的绝对值小于第m个第一权重阈值,因此,将核间连接402a、核间连接403和核间连接405b删除(即核间剪枝),并对剪枝后得到的第二神经网络进行重训练。在第m个重训练后的第二神经网络的精度达到预设的精度阈值的情况下,得到的第m个核间剪枝映射方案的核间连接包括核间连接401、核间连接402b、核间连接404a、核间连接404b、核间连接405a和核间连接406,如图4中(b)所示。
[0078]
通过上述核间剪枝方式对映射方案进行优化,使映射方案内聚化,减少了核间连接,减少了核间的数据传递,从而减轻了映射方案的路由压力。
[0079]
在一些映射方案中,存在核间连接较长的情况,即核间连接对应的起始处理核和终止处理核相聚较远,核间连接越长,路由负担越大,核间连接越短,路由负担越小,因此,将较长的核间连接替换为较短的核间连接,同样可以减少核间的数据传递。
[0080]
在一些实施例中,对第n-1次核间重构的映射方案中的核间连接进行重构,获得第n次核间重构的映射方案包括:利用赫布(hebb)法则对第n-1次核间重构的映射方案中的核间连接进行重构,获得第n次核间重构的映射方案。
[0081]
图5为本公开实施例提供的另一种核间重构优化方法的流程图。该核间重构优化方法是通过核间重连方式对映射方案进行优化。如图5所示,利用赫布法则对第n-1次核间重构的映射方案中的核间连接进行重构,获得第n次核间重构的映射方案,包括:
[0082]
步骤s501,确定第n-1次核间重构的映射方案中的处理核及每个处理核内的处理节点。
[0083]
其中,每个处理节点包括至少一个神经元。
[0084]
步骤s502,将任意两个处理节点按照预先约定的连接概率重新构建核间连接,获得第三映射方案。
[0085]
其中,重新构建的核间连接涉及的两个处理节点位于不同的处理核。
[0086]
在一些实施例中,连接概率与两个处理节点对应的处理核之间的距离负相关,即不同处理核内的处理节点之间距离越近,连接概率越高,反之,连接概率越低。利用该连接概率确定的核间连接,可以最大限度的缩小核间连接的长度,从而减少路由压力。
[0087]
步骤s503,利用训练数据集对第三映射方案对应的第三神经网络进行重训练,得到重训练后的第三神经网络。
[0088]
在一些实施例中,利用训练数据集对第三神经网络进行训练所采用的损失函数包括连接代价正则项和连接权重正则项。
[0089]
其中,训练的损失函数loss可采用式(2)所示的函数,在此不再赘述。
[0090]
步骤s504,将重训练后的第三神经网络中连接权重小于预设的第二权重阈值的核间连接删除,获得第n次核间重构的映射方案。
[0091]
图6为本公开实施例提供的核间重构过程中映射方案的变化示意图。在图6中,方框表示处理核,黑点表示处理节点,图6中示出的映射方案包括六个处理核,即第一处理核61、第二处理核62、第三处理核63、第四处理核64、第五处理核65和第六处理核66。如图6中的(a)所示,在未进行核间重构之前的原映射方案中,第一处理核61和第二处理核62之间设有一个核间连接601,第一处理核61和第四处理核64之间设有一个核间连接602,第三处理核63和第四处理核64之间设有一个核间连接603,第二处理核62和第五处理核65之间设有一个核间连接604,第五处理核65和第六处理核66之间设有一个核间连接605,其中,第一处理核61和第四处理核64相距较远,对应的核间连接602的长度较长。经过核间重构后,第一处理核61和第六处理核66之间重构了核间连接607,第四处理核64和第五处理核65之间重构了核间连接608,第一处理核61和第六处理核66以及第四处理核64和第五处理核65相距较近,核间连接607和核间连接608的长度较短,利用核间连接607和核间连接608替换核间连接602缩短了核间连接的长度,降低了路由负担。
[0092]
在步骤s104中,可将第n次核间重构的映射方案直接确定为第二映射方案,然而,由于第二映射方案仅是通过重构核间连接获得的映射方案,而重构核间连接可能会导致神经网络的精度降低,尤其是核间剪枝映射方案容易导致神经网络的精度降低,因此可以采用一些手段来提升神经网络精度。
[0093]
需要说明的是,第一映射方案还包括核内连接,即每个处理核内的处理节点之间的核内连接,每个处理节点包括至少一个神经元。在一些实施例中,可以采用核内重连方式对第n次核间重构的映射方案进行优化,确定优化后的第二映射方案,提升神经网络的容量,从而提升神经网络的精度。
[0094]
图7为本公开实施例提供的一种核内重连优化方法的流程图。该核内重连优化方法是通过核内重连方式对核间重构的映射方案进一步优化,用以补偿核间重构对神经网络的影响。如图7所示,在步骤s104中根据第n次核间重构的映射方案,确定优化后的第二映射方案,包括:
[0095]
步骤s701,确定第r-1次核内重连的映射方案中、每个处理核内的处理节点之间的核内连接。
[0096]
其中,r≥1且r为整数,而且第0次核内重连的映射方案为第n次核间重构的映射方案。
[0097]
在一些实施例中,先确定第r-1次核内重连的映射方案中的所有处理核,再确定每个处理核内的处理节点以及处理节点之间的核内连接。
[0098]
步骤s702,对至少一个处理核中、未连接的处理节点进行连接,得到第r次核内重连的中间映射方案。
[0099]
在一些实施例中,可以将一个处理核或每个处理核内未连接的处理节点全部连接,再随机删除其中的部分核内连接,或者,将一个处理核或每个处理核内未连接的处理节点选择性连接,得到第r次核内重连的中间映射方案。
[0100]
步骤s703,利用训练数据集对与第r次核内重连的中间映射方案对应的第四神经网络进行重训练,得到第r次重训练后的第四神经网络。
[0101]
在一些实施例中,重训练时采用的损失函数可以是原损失函数,如上文提及的loss


[0102]
步骤s704,将与第r次重训练后的第四神经网络对应的核内重连映射方案,作为第r次核内重连的映射方案。
[0103]
步骤s705,判断第r次重训练后的第四神经网络是否满足核内优化条件,若不满足,则返回步骤s702;若满足,则执行步骤s706。
[0104]
步骤s706,在第r次核内重连的映射方案满足核内优化条件的情况下,将第r次核内重连的映射方案,确定为优化后的第二映射方案。
[0105]
本公开实施例,通过核内重连方式来重构映射方案,提升神经网络的容量,以弥补核间重构引起的神经网络精度下降,使得映射方案既降低了路由负载,又不影响神经网络的精度。在优化的第二映射方案中,重新确定了第一神经网络的核间连接和核内连接,通过增加核内连接的方式来减少了核间连接,从而在满足第一神经网络的精度要求的情况下,降低了众核系统的路由压力。将优化的第二映射方案映射至众核系统,利用众核系统执行第一神经网络时,既可以满足第一神经网络的精度要求,又可以降低众核系统的路由压力。
[0106]
图8为本公开实施例提供的一种核内重连优化方法的流程图。该核内重连优化方法同样是通过核内重连方式进一步优化核间重构的映射方案,用以补偿核间重构对神经网络的影响,不同之处在于核内重连的构建方式不同。如图8所示,在步骤s704中得到第r次重训练后的第四神经网络之后,在步骤s104中根据第n次核间重构的映射方案,确定优化后的第二映射方案,还包括:
[0107]
步骤s801,将第p-1个核内映射方案中,连接权重小于预设的第五权重阈值的核内连接删除,获得第p个核内映射方案。
[0108]
其中,p≥1且p为整数,第0个核内映射方案为与第r次重训练后的第四神经网络对
应的核内重连映射方案。除首次核内重连映射方案外,其它核内重连映射方案是将第p-1次核内重连映射方案中连接权重小于预设的第三权重阈值的核内连接删除,获得第p个核内映射方案。
[0109]
步骤s802,利用训练数据集对与第p个核内映射方案对应的第五神经网络进行重训练,得到第p个重训练后的第五神经网络。
[0110]
在一些实施例中,重训练时采用的损失函数可以是原有的损失函数,如上文提及的loss


[0111]
步骤s803,判断第p个重训练后的第五神经网络是否满足预设的精度条件,若不满足,则返回步骤s801;若满足,则执行步骤s804。
[0112]
步骤s804,在第p个重训练后的第五神经网络满足预设的精度条件的情况下,将与第p个重训练后的第五神经网络对应的核内映射方案,确定为第r次核内重连的映射方案。其中,预设的精度条件可例如为,神经网络对测试样本的处理精度达到精度阈值,本公开对精度条件的具体设定方式不作限制。
[0113]
本公开实施例中,第p个核内映射方案是在第p-1个核内重连映射方案的基础上基于连接权重确定的,相对于图7所示的核内重连优化方法而言,能够使第五神经网络更快地满足核内优化条件,缩短训练时间。
[0114]
图9为本公开实施例提供的核内重连优化过程中映射方案的变化过程示意图。在图9中,方框表示处理核,黑点表示处理节点。图9示出的映射方案包括四个处理核,即第一处理核91、第二处理核92、第三处理核93和第四处理核94。在图9中(a)为核内重连前的映射方案,在第一处理核91内,第一处理节点和第三处理节点之间设有一个核内连接9101,在第二处理核92内,第二处理节点和第三处理节点之间设有一个核内连接9201,在第三处理核93内,第一处理节点和第三处理节点之间设有一个核内连接9301,在第四处理核94内,第一处理节点和第四处理节点之间设有一个核内连接9401,第三处理节点和第四处理节点之间设有一个核内连接9402。
[0115]
经过核间重连优化后,如图9中(b)所示,在第一处理核91内,增加了第一处理节点和第二处理节点之间的核内连接9102,在第二处理核92内,增加了第一处理节和第三处理节点之间的核内连接9202,在第四处理核94内,增加了第一处理节和第二处理节点之间的核内连接9403,以及第二处理节点和第四处理节点之间的核内连接9404。通过核内连接9102、核内连接9202、核内连接9403和核内连接9404补偿核间剪枝对神经网络的精度的影响。
[0116]
在一些实施例中,在一轮核间重构和核内重连确定第二映射方案后,尤其是在核间优化的循环次数达到预设的循环次数的情况下确定的第二映射方案,还可以进一步优化,以进一步减轻众核系统的路由压力,同时提高神经网络的精度。
[0117]
图10为本公开实施例提供的一种映射方案优化方法的流程图。该映射方案优化方法是在获得第二映射方案之后,再经至少一轮核间重构和核内重连,以进一步减轻众核系统的路由压力,同时提高神经网络的精度。如图10所示,确定优化后的第二映射方案之后,还包括:
[0118]
步骤s1001,对第k-1轮优化后的映射方案进行核间重构优化,得到满足核间优化条件的、第k轮优化后的核间优化映射方案。
[0119]
其中,k≥2且k为整数,而且,第1轮优化后的映射方案为第二映射方案。
[0120]
在步骤s1001中,对第k-1轮优化后的映射方案进行核间重构优化的具体方式参见步骤s102至步骤s104,在此不再赘述。
[0121]
步骤s1002,对第k轮优化后的核间优化映射方案进行核内重连优化,得到满足核内优化条件的、第k轮优化后的核内优化映射方案。
[0122]
在步骤s1002中,对第k轮优化后的核间优化映射方案进行核内重连优化的具体方式参见步骤s501至步骤s504,在此不再赘述。
[0123]
步骤s1003,判断第k轮优化后的核内优化映射方案是否满足预设的目标条件,若是,执行步骤s1004,若否,则返回步骤s1001。
[0124]
步骤s1004,在第k轮优化后的核内优化映射方案满足预设的目标条件的情况下,将第k轮优化后的核内优化映射方案确定为目标映射方案。
[0125]
图11为本公开实施例提供的两轮核间重构优化和核内重连优化过程中映射方案的变化过程示意图。在图11中,方框表示处理核,黑点表示处理节点,图11中示出的映射方案包括四个处理核,即第一处理核1101、第二处理核1102、第三处理核1103和第四处理核1104。
[0126]
在未进行核间重构之前的原映射方案中,如图11中的(a)所示,第一处理核1101和第二处理核1102之间设有一个核间连接111,第一处理核1101和第三处理核1103之间设有两个核间连接112a、112b,第一处理核1101和第四处理核1104之间设有一个核间连接113,第二处理核1102和第三处理核1103之间设有两个核间连接114a、114b,第二处理核1102和第四处理核1104之间设有两个核间连接115a、115b,第三处理核1103和第四处理核1104之间设有一个核间连接116。
[0127]
在第一处理核1101内,第一处理节点和第三处理节点之间设有一个核内连接1301,在第二处理核1102内,第二处理节点和第三处理节点之间设有一个核内连接2301,在第三处理核1103内,第一处理节点和第三处理节点之间设有一个核内连接3301,在第四处理核1104内,第一处理节点和第四处理节点之间设有一个核内连接4301,第三处理节点和第四处理节点之间设有一个核内连接4302。
[0128]
在第一轮核间重构优化后,将核间连接112a、核间连接113和核间连接115b删除,映射方案中包括核间连接111、核间连接112b、核间连接114a、核间连接114b、核间连接115a和核间连接116,如图11中(b)所示。
[0129]
在第一轮核内重连优化后,在第一处理核1101内,增加了第一处理节1201和第三处理节点1203之间的核内连接1302,在第四处理核1104内,增加了第一处理节点4201和第二处理节点4202之间的核内连接4303,以及第二处理节点422和第四处理节点4204之间的核内连接4304,如图11中(c)所示。
[0130]
在第二轮核间重构优化后,将第二处理核1102和第三处理核1103之间的核间连接114a删除,映射方案中包括核间连接111、核间连接112b、核间连接114b、核间连接115a和核间连接116,如图11中(d)所示。
[0131]
在第一轮核内重连优化后,在第一处理核1101内,增加了第二处理节点和第三处理节点之间的核内连接1303,在第二处理核1102内,增加了第一处理节和第二处理节点之间的核内连接2302,在第三处理核1103内,增加了第二处理节点和第三处理节点之间的核
内连接3302,如图11中(e)所示。
[0132]
本公开实施例通过多轮的核间重构和核内重连,进一步优化了神经网络的映射方案,进一步减轻众核系统的路由压力的同时,提高了神经网络的精度。
[0133]
本公开实施例提供的各个神经网络(第一至第五神经网络)用于执行图像处理任务、语音处理任务、文本处理任务、视频处理任务中的任意一种。本公开对神经网络执行的具体任务类型不作限制。
[0134]
可以理解,本公开提及的上述各个方法实施例,在不违背原理逻辑的情况下,均可以彼此相互结合形成结合后的实施例,限于篇幅,本公开不再赘述。本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
[0135]
图12为本公开实施例提供的一种基于众核系统的映射方案优化装置的框图。
[0136]
参照图12,本公开实施例提供了一种基于众核系统的映射方案优化装置,该基于众核系统的映射方案优化装置包括:
[0137]
获取模块121,用于获取初始的第一映射方案,第一映射方案用于将待执行的第一神经网络映射至众核系统的多个处理核,每个处理核用于执行第一神经网络的至少一个神经元,第一映射方案中包括各个处理核之间的核间连接。
[0138]
重构模块122,用于对第n-1次核间重构的映射方案中的核间连接进行重构,获得第n次核间重构的映射方案,n≥1且n为整数,其中,第0次核间重构的映射方案为第一映射方案。
[0139]
判断模块123,用于判断第n次核间重构的映射方案是否满足核间优化条件;
[0140]
确定模块124,用于在第n次核间重构的映射方案满足预设的核间优化条件的情况下,根据第n次核间重构的映射方案,确定优化后的第二映射方案。
[0141]
本公开实施例提供的基于众核系统的映射方案优化装置可用来实现本公开提供的任一种基于众核系统的映射方案优化方法,相应技术方案和描述和参见方法部分的相应记载,不再赘述。
[0142]
本公开所提供的实施例,获取模块获得初始的第一映射方案,重构模块对第n-1次核间重构的映射方案中的核间连接进行重构,获得第n次核间重构的映射方案,判断模块判断第n次核间重构的映射方案是否满足核间优化条件,确定模块在第n次核间重构的映射方案满足预设的核间优化条件的情况下,根据第n次核间重构的映射方案,确定优化后的第二映射方案,该装置优化了神经网络的映射方案,实现映射方案内聚化,而且减少了核间的数据传递,减轻了众核系统的路由压力,提高了众核系统执行神经网络的效率。
[0143]
图13为本公开实施例提供的一种电子设备的框图。
[0144]
参照图13,本公开实施例提供了一种电子设备,该电子设备包括:至少一个处理器1301;以及与至少一个处理器1301通信连接的存储器1302;其中,存储器1302存储有可被至少一个处理器1301执行的一个或多个计算机程序,一个或多个计算机程序被至少一个处理器1301执行,以使至少一个处理器1301能够执行上述的基于众核系统的映射方案优化方法。
[0145]
在一些实施例中,该电子设备可以是类脑芯片,由于类类脑芯片可以采用向量化计算方式,且需要通过外部内存例如双倍速率(double data rate,ddr)同步动态随机存储
器调入神经网络模型的权重信息等参数。因此,本公开实施例采用批处理的运算效率较高。
[0146]
本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其中,所述计算机程序在被处理器/处理核执行时实现上述的基于众核系统的映射方案优化方法。计算机可读存储介质可以是易失性或非易失性计算机可读存储介质。
[0147]
本公开实施例还提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述基于众核系统的映射方案优化方法。
[0148]
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读存储介质上,计算机可读存储介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。
[0149]
如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读程序指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom)、、静态随机存取存储器(sram)、闪存或其他存储器技术、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读程序指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
[0150]
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
[0151]
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c 等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令
的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
[0152]
这里所描述的计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(software development kit,sdk)等等。
[0153]
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
[0154]
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
[0155]
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
[0156]
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0157]
本文已经公开了示例实施例,并且虽然采用了具体术语,但它们仅用于并仅应当被解释为一般说明性含义,并且不用于限制的目的。在一些实例中,对本领域技术人员显而易见的是,除非另外明确指出,否则可单独使用与特定实施例相结合描述的特征、特性和/或元素,或可与其他实施例相结合描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解,在不脱离由所附的权利要求阐明的本公开的范围的情况下,可进行各种形式和细节上的改变。
再多了解一些

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

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

相关文献