首页> 中国专利> 基于神经网络动态特征的片上网络资源映射方法

基于神经网络动态特征的片上网络资源映射方法

摘要

本发明提出了一种基于神经网络动态特征的片上网络资源映射方法,包括以下步骤:获取神经网络中的所有神经元,将神经网络中的每个神经元群中的神经元以一定的初始化规则(顺次/随机)放入片上网络的N个核中,且同一个神经元群中的神经元放到同一个核和/或距离相近的两个或多个核中,运行SNN网络,分别计算每个核的通信量S,并根据S对N个核进行排序:S1≥S2≥...≥SN,判断Si/Sj是否小于预设值,如果否,则交换通信量分别为Si和Sj的两个核中一半神经元,最终得到从神经元到片上网络N个核的新的映射。本发明实施例的方法能够有效均衡负载,减少片上网络中的拥塞,降低最大传输延迟,进而提高数据传输性能。

著录项

  • 公开/公告号CN105469143A

    专利类型发明专利

  • 公开/公告日2016-04-06

    原文格式PDF

  • 申请/专利权人 清华大学;

    申请/专利号CN201510781820.3

  • 发明设计人 张悠慧;季宇;陈文光;施路平;

    申请日2015-11-13

  • 分类号G06N3/06(20060101);H04L12/803(20130101);

  • 代理机构北京清亦华知识产权代理事务所(普通合伙);

  • 代理人张大威

  • 地址 100084 北京市海淀区100084-82信箱

  • 入库时间 2023-12-18 15:24:54

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-03-02

    专利权的转移 IPC(主分类):G06N3/06 登记生效日:20180208 变更前: 变更后: 申请日:20151113

    专利申请权、专利权的转移

  • 2017-12-19

    授权

    授权

  • 2016-05-04

    实质审查的生效 IPC(主分类):G06N3/06 申请日:20151113

    实质审查的生效

  • 2016-04-06

    公开

    公开

说明书

技术领域

本发明涉及计算机视觉技术领域,特别涉及一种基于神经网络动态特征的片上网络资源 映射方法。

背景技术

大脑与传统的冯·诺伊曼计算机相比,具有超低功耗、高容错性的特点,在处理非结构 化信息和智能方面,大脑具有显著优势。随着脑科学的发展,借鉴大脑的计算模式构建基于 神经形态工程的新型计算系统已经成为一个新兴的发展方向。

大脑的基本组成单元是神经元,神经元之间通过突触相互连接,通过收发动作电位进行 通信。每个神经元通常连接着100到10000个突触,大量神经元通过突触相互连接形成复杂 的神经网络。

模拟神经形态网络是一种非常重要、有效的研究和实现方法,虽然软件模拟具有非常高 的灵活性,但模拟效率非常低,功耗非常高。为了加速神经形态网络的模拟,利用大规模集 成电路实现神经形态网络的模拟和仿真是神经形态工程常用的实现方法,其计算特点是具有 高度的并行性和密集的通信,因此用对称多核处理器结合片上网络来构建神经形态网络计算 平台是一种较为通行的做法。

片上网络(NoC,NetworkonChip)借鉴了分布式计算系统的通信方式,采用路由和分 组交换技术替代传统的总线,具有更加高效的核间通信能力。具体地,神经形态芯片通常由 多个计算核心组成,每个核心可以模拟一定数量的神经元,核心之间通过片上网络连接起来, 通过片上网络的虚拟连接来模拟神经元之间的突触连接。神经形态网络和片上网络差异非常 大,前者拓扑复杂,运行频率低,后者拓扑简单,运行频率高。将神经形态网络配置到神经 形态芯片上后,原来神经形态网络中的大量连接会共用片上网络的路径。因此,将神经形态 网络映射到片上网络的策略将很大程度上影响系统的性能。

SpiNNaker项目的映射技术中,在神经形态构建软件时,通常以神经元群为基本的构建 单元,群内部的神经元类型、功能均相同,同一个群内的神经元之间无相互连接,但群与群 之间会有大量的突触连接,并且通常是两个群的神经元之间全相联的形式。

基于上述特点,该技术尽可能将同一个神经元群的神经元放置到同一个核或相邻的核 上。具体做法如下:

1)根据每个核可以放置的神经元数量,将每个神经元群分成若干个子群,子种群的大 小与每个核可以放置的神经元数量相同;

2)当子群中神经元数量较少,未达到每个核可以放置的神经元数量时,则对该子群进 行组合,使其能够尽量放满一个核;

3)将各个子群放置到各个核上,并考虑神经元群之间的局部性。

神经元的发放以多播的形式在片上网络上传播。由于每个神经元发放神经脉冲时,其 目标节点通常是若干神经元群中的全部神经元,将这些目标节点尽可能放置在同一个节点 或者多个相邻的节点上,以使多播数据包的目标节点数量最小,且分布尽量集中,进而可 以减少传输多播数据包所占用的网络资源。

然而,由于同一个神经元群的神经元在发放神经脉冲时,通常具有相同目标节点,所 以将这些神经元放置到同一个核或相邻的核上。又由于这些神经元产生的多播数据包具有 相同的源节点和目标节点,因此这些多播数据包所走的路径将完全相同,这就导致了这些 多播数据包之间会产生激烈的竞争和拥堵,尤其是较为活跃的神经元群。其中,在活跃的 神经元群所在的计算节点上,由于从计算节点进入网络的通道资源有限,会导致大量的多 播数据包拥堵在节点内部,节点的出口带宽将成为系统的瓶颈。

另外,神经元的分配也可以利用传统的片上网络应用的映射算法来解决。该算法通常 是根据IP核(IntellectualPropertycore,知识产权核)的热度、通信量等信息,将通 信密集的IP核分配到临近的节点上,但由于搜索空间过大,找到全局最优解非常困难。因 此,该算法主要致力于减少搜索空间,提高搜索效率,找到一个相对较好的局部最优解。

其中,较为经典的有KL(即Kernighan-Lin)算法。KL算法是一个O(n2logn)时间复杂 度的图分割算法,设G(V,E)是一个图,其中,V是顶点的集合,E是边的集合,KL算法将 V分为大小相同两个部分A和B,使得A和B中所有顶点之间边的权重之和T最小。设a 为A中的顶点,Ia为a与A中其它顶点之间边的权重之和,Ea为a与B中其它顶点之间边 的权重之和,损失权重定义为Da=Ea-Ia

该算法主要分为以下三个步骤:

1)随机产生大小相同的两个集合A和B;

2)计算A和B中每个顶点的内权重和外权重;

3)将A和B中的顶点a和b进行交换,每轮迭代选取交换之后损失权重降低最多的两个 点进行交换,直至损失权重不再降低。

通过KL算法,逐步将一个网络的通信尽可能的集中到局部,可以有效降低网络中的通 信量。

神经形态网络相比传统的并行计算任务有很多不同,传统的并行计算任务对少量节点 的拥堵不敏感,而神经形态网络的多播数据包若在一定时间内未送达,会导致丢包,影响 网络的功能。因此,为了确保网络的功能可靠,神经形态网络的运行速度取决于延迟最长 的多播数据包传输时间。可以看出,若计算任务过于集中,则会导致局部的拥堵严重,影 响神经形态网络的运行性能。

发明内容

本发明旨在至少解决现有技术中存在的技术问题之一。

有鉴于此,本发明需要提供一种基于神经网络动态特征的片上网络资源映射方法,该方 法能够有效均衡负载,减少网络拥塞,降低最大传输延迟,并提高系统性能。

为了实现上述目的,本发明的实施例提出了一种基于神经网络动态特征的片上网络资源 映射方法,包括以下步骤:获取神经网络中的所有神经元,其中,所述神经网络由神经元群 组成,所述神经元群由神经元组成;将所述神经元群中的神经元放入片上网络N个核中,其 中,同一个所述神经元群中的神经元放到同一个所述核和/或距离相近的两个或多个核中, 其中,所述N为大于1的正整数;运行SNN网络,分别计算每个核的通信量S,并根据所述 S对所述N个核进行排序:S1≥S2≥...≥SN;判断Si/Sj是否小于预设值,其中, i=1,2,...,N/2or(N-1)/2,j=N-i+1;如果否,则交换通信量分别为Si和Sj的两个核中 一半的神经元,得到神经元到片上网络N个核的新的映射。

本发明实施例的基于神经网络动态特征的片上网络资源映射方法,将多个神经元群中的 神经元放置到多个核中,并且将同一神经元群中的神经元尽可能放到同一个核或距离相近的 核中,每个核对应片上网络中的一个节点,进而通过交换不同核中的神经元,将片上网络一 个节点内的任务进行拆分,即交换活跃节点和不活跃节点中的神经元。本发明实施例的方法 能够有效均衡负载,减少片上网络中的拥塞,降低最大传输延迟,进而提高数据传输性能。

另外,本发明上述实施例的基于神经网络动态特征的片上网络资源映射方法还具有如下 附加特征:

根据本发明的一个的实施例,所述每个核的通信量S为所述每个核运行SNN(Spiking NeuronNetworks,脉冲神经网络)网络中发送的数据包数量,其中,所述数据包的字段包 括神经元群ID和神经元ID,每个所述数据包只有一个数据分片。

根据本发明的一个实施例,所述片上网络包括处理单元、网络接口、路由器、节点和互 联网络,其中,所述处理单元、所述网络接口、所述路由器和所述节点之间存在一一对应关 系,所述节点包括源节点和目标节点,所述互联网络的拓扑为所述节点之间的连接方式。

根据本发明的一个实施例,所述N个核中神经元的所述数据包发送采用两层路由结构。

根据本发明的一个实施例,所述源节点向所述目标节点发送数据包,具体包括以下步骤: 所述核中的所述数据包传到其对应的路由器上;根据所述数据包的所述神经元群ID进行路 由;所述数据包到达所述目标节点后,根据所述神经元ID将所述数据包发送至对应神经元; 所述对应神经元根据连接信息确定是否接收所述数据包,其中,所述连接信息保存在所述目 标节点中。

根据本发明的一个实施例,所述数据包进入所述对应的路由器之后,所述对应的路由器 通过查询路由表获取所述数据包的传输方向,所述路由表的表项包含键和值,其中,所述键 为所述神经元群ID,所述值为出口方向。

根据本发明的一个实施例,如果所述路由表中没有找到某个神经元群ID对应的表项, 则采用默认的路由方式。

根据本发明的一个实施例,所述预设值为2。

根据本发明的一个实施例,所述默认的路由方式为直行路由方式。

本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明 显,或通过本发明的实践了解到。

附图说明

本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和 容易理解,其中:

图1为根据本发明一个实施例的基于神经网络动态特征的片上网络资源映射方法的流程 图;

图2为根据本发明一个实施例的基于神经网络动态特征的片上网络资源映射方法的数据 包传输流程图;

图3为根据本发明一个具体实施例的数据包传输示意图。

具体实施方式

下面参考附图描述根据本发明实施例的基于神经网络动态特征的片上网络资源映射方 法,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。 下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的 限制。

本发明的实施例提出了一种基于神经网络动态特征的片上网络资源映射方法。

图1为根据本发明一个实施例的基于神经网络动态特征的片上网络资源映射方法的流程 图。

如图1所示,本发明实施例的方法,包括以下步骤:

S101,获取神经网络中的所有神经元。

其中,神经网络由神经元群组成,神经元群由神经元组成。

需要说明的是,不同的神经网络中的神经元群数量,以及不同神经元群中的神经元的数 量可以是不同的,具体可根据被映射片上网络的承载能力而定,且不能超过片上网络所承载 的最大神经元。

S102,将神经元群中的神经元放入片上网络N个核中,其中,同一个神经元群中的神经 元放到同一个核和/或距离相近的两个或多个核中。

其中,N为大于1的正整数。

需要说明的是,每个核映射到片上网络,每个核对应片上网络一个节点,S102中距离相 近即片上网络节点距离相近。

在本发明的实施例中,N的值可以自定义,以mesh结构的片上网络为例,如果是8×8 的片上网络,N是64。每个核中的神经元个数也可以根据需要自定义,例如可以是64个。

S103,运行SNN网络,分别计算每个核的通信量S,并根据S对N个核进行排序: S1≥S2≥...≥SN

具体地,每个核的通信量S即为每个核在通过初始映射运行SNN网络时发送的数据包数 量,其中,所述数据包的字段包括神经元群ID和神经元ID,每个数据包只有一个数据分片。

可以理解,由于SNN中传输的所有脉冲信号均无差别,所需要的数据也仅有神经元群ID 与神经元ID组成的全局神经元ID,因此,不需要对数据包进行分片,即每个数据包只有一 个数据分片。

在本发明的一个实施例中,数据包格式可如表1所示:

表1

字段 神经元群ID 神经元ID 保留 位宽(bit) 10 10 12

如表1所示,该数据包分为两个字段:神经元群ID和神经元ID。其中,神经元群ID 位宽占10bit,神经元ID位宽占10bit。表1中的保留表示未设置字段的位宽,占12位。

S104,判断Si/Sj是否小于预设值。

其中,i=1,2,...,N2or(N-1)/2,j=N-i+1。可以理解,当N为偶数时,N/2为整数; 当N为奇数时,(N-1)/2为整数。

在本发明的一个实施例中,预设值可以是2。

S105,如果否,则交换通信量分别为Si和Sj的两个核中一部分神经元,得到神经元到 片上网络N个核的新的映射。在本发明的一个实施例中,若Si/Sj是大于或等于预设值,则 交换通信量分别为Si和Sj的两个核中一半的神经元。其中,预设值可以是2。

在本发明一个具体实施例中,交换通信量最高和最低的两个核中一半的神经元、通信量 次高和次低的两个核中一半的神经元,以此类推,直至两核通信量之比小于2。可以理解, 通过上述交换,发送数据包最多的核在每个SNN周期发送的数据包的数量几乎可以减半。而 且交换的作用主要体现在通信量差别较大的核之间,通过交换可以降低通信量大的核的通信 量。

需要说明的是,对于在通信量排序中处于较中间位置的核,交换的作用比较微小,但带 来的损失仍然增长,因此设置了一个参数——交换比例,即预设值,定义通信量高低两个核 的热度比例。当这个比例大于或等于2时,交换带来的性能提升可以弥补破坏局部性带来的 性能损失。

其中,交换带来的损失即局部性被破坏。具体地,由于神经元群所包含的神经元总量是 固定的,交换之后,每个核不只放一个神经元群的神经元,还有交换过来的其他神经元群的 神经元,因此神经元群分布在更多的核上,从而使得发给一个神经元群的数据包需要传递到 更多的核,产生了更多的分支,增加了核的通信量。可以理解,设置交换比例是为了使通过 交换降低的通信量大于增加的通信量。

本发明实施例的基于神经网络动态特征的片上网络资源映射方法的伪代码可用下表2表 示:

表2

如表2所示,rate表示上述S104中的预设值,InitializeMapping表示可以采用顺序 映射排布的方式或者通过KL算法映射方式生成的初始映射方案,SortByActiveDegree表示 根据通信量对核进行排序,Core[i].ActiveDegree/Core[j].ActiveDegree即为Si/Sj, SwapHalf表示将两个核内的神经元相互交换一半。需要说明的是,表1中默认N是偶数。

其中,InitializeMapping(即初始映射方案)可以是将N个核通过顺序映射排布的方 式直接映射到片上网络,每个核对应片上网络一个节点。也可以是通过KL算法将N个核尽 可能集中映射到片上网络的局部,以降低片上网络中的通信量。

在本发明的实施例中,片上网络包括处理单元、网络接口、路由器、节点和互联网络, 其中,处理单元、网络接口、路由器和节点之间存在一一对应关系,节点包括源节点和目标 节点,互联网络的拓扑为节点之间的连接方式。

在本发明的实施例中,片上网络的拓扑结构可以是2Dmesh结构、2DTorus结构、八角 形(Octagon)结构、SPIN结构和三维拓扑结构中的一种。其中,2Dmesh结构简单,容易 实施,具有良好的扩展性;2DTorus结构缩短了节点间的平均距离,从理论上降低了功耗; 八角形结构具有良好的可扩展性;SPIN结构各节点不直接连接,路由算法简单;三维拓扑 结构在性能、面积和功耗上均好于二维结构。

进一步地,在本发明的一个实施例中,上述核中神经元产生的数据包传输采用两层路由 结构。

具体地,以一个核为例,以该核所在节点为源节点,向目标节点发送数据包,如图2所 示,具体包括以下步骤:

S201,核中的数据包传到其对应的路由器上。

具体地,一个核映射到片上网络的一个节点,同时对应片上网络中的一个处理单元,该 处理单元将该核需要发送的消息数据写入网络接口,通过网络接口将上述消息数据组装成数 据包,然后将该数据包传到该核对应的路由器上。

S202,根据数据包的神经元群ID进行路由。

具体地,数据包进入对应的路由器之后,对应的路由器通过查询路由表获取数据包的传 输方向,路由表的表项包含键和值,其中,键为神经元群ID,值为出口方向。

在本发明的一个实施例中,神经元群ID位宽为10bit,即键位宽为10bit,值的位宽为 6bit,具体格式可如表3所示:

表3

如表3所示,值的字段包括上(U,Up)、下(D,Down)、左(L,Left)、右(R,Right) 和核(S,Stone),分别表示数据包的出口方向,位宽均为1bit。

在本发明的一个实施例中,如果路由表中没有找到某个神经元群ID对应的表项,则采 用默认的路由方式。其中,默认的路由方式可以为直行路由方式。

S203,数据包到达目标节点后,根据神经元ID将数据包发送至对应神经元。

S204,对应神经元根据连接信息确定是否接收数据包,其中,连接信息保存在目标节点 中。

具体地,可以以树状多播路由的片上网络进行说明。可以理解,在神经网络中,每个神 经元通过突触连接着大量神经元,当神经元发出动作电位时,所有后向神经元都会接受到这 个信号,这种一对多的通信方式与片上网络的多播完全相符,因此可以采用支持树状多播路 由的片上网络。

如图3所示,①表示在5×5大小的mesh(即网格)网络上,一个源节点要向三个目标 节点发送多播数据包,数据包首先从某个核传到其对应的路由器上,通过数据包的神经元种 群ID查询到路由表项(可参考表3),其中R域为1,其他域为0,因此数据包从右侧出口 传出。②表示路由器未查询到该数据包的神经元群ID的表项,因此采取默认路由,保持直 行。③表示查询到的路由表项中,D域和R域为1,其他域为0,因此分别向下侧和右侧两 个方向传输数据包。④⑤表示两个分支包分别查询各自的路由器表项,其中S域表示传递向 路由器所在节点对应的另一个核。⑥表示所有目标节点均收到了数据包。

可以理解,路由表按照先x方向后y方向的路由方式生成,确保mesh网络中不存在环 状路径,避免死锁的发生。

本发明实施例的基于神经网络动态特征的片上网络资源映射方法,将多个神经元群中的 神经元放置到多个核中,并且将同一神经元群中的神经元尽可能放到同一个核或相近的核 中,每个核对应片上网络中的一个节点,进而通过交换不同核中的神经元,将片上网络一个 节点内的任务进行拆分,即交换活跃节点和不活跃节点中的神经元。本发明实施例的方法能 够有效均衡负载,减少片上网络中的拥塞,降低最大传输延迟,进而提高数据传输性能。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或 更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且 本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根 据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所 属技术领域的技术人员所理解。

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实 现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执 行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、 装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。 就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以 供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机 可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电 子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦 除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。 另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以 例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行 处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施 方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件 来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术 中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻 辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门 阵列(FPGA)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可 以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该 程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个 单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以 采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功 能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介 质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体 示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或 者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述 不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任 何的一个或多个实施例或示例中以合适的方式结合。

尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本 发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的 范围由权利要求及其等同限定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号