CN111882065B - 映射脉冲神经网络到类脑计算平台的方法、***及介质 - Google Patents
映射脉冲神经网络到类脑计算平台的方法、***及介质 Download PDFInfo
- Publication number
- CN111882065B CN111882065B CN202010767631.1A CN202010767631A CN111882065B CN 111882065 B CN111882065 B CN 111882065B CN 202010767631 A CN202010767631 A CN 202010767631A CN 111882065 B CN111882065 B CN 111882065B
- Authority
- CN
- China
- Prior art keywords
- snn
- node
- sub
- mapping
- brain
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/10—Interfaces, programming languages or software development kits, e.g. for simulating neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种映射脉冲神经网络到类脑计算平台的方法、***及介质,本发明方法包含SNN模拟与分析,提取经过训练的SNN网络的拓扑结构和神经元的行为,形成无向SNN图以及脉冲行为轨迹;将提取出的无向SNN图划分为多个SNN子块,并优化SNN子块之间的脉冲通信量;使用启发式搜索算法找到一个最优的映射方案将SNN子块分配给目标类脑平台上的神经元核,并使目标平台上通信的脉冲平均跳数最小化。本发明可将大型SNN划分成多个子块后映射到基于NoC的类脑处理器上使之能高效执行,能使得时找到的划分方案最优,还能使得找到映射方案所花费的代价低,降低搜索的时间消耗,确保执行速度高效执行。
Description
技术领域
本发明涉及脉冲神经网络以及类脑计算平台的计算技术,具体涉及一种映射脉冲神经网络到类脑计算平台的方法、***及介质。
背景技术
脉冲神经网络(Spiking Neural Network,简称SNN)是受脑科学启发的第三代人工神经网络(Artificial Neural Network,简称ANN),目前广泛应用于模式识别、图像识别等领域。SNN中的神经元会接收刺激后累加胞膜电压,当电压超过阈值后就会激发产生脉冲信号。SNN有着很强的生物特性,同时在类脑平台上模拟时所需要的能耗也较低。目前已开发出的类脑平台大部分都是基于片上网络(Network on Chip,简称NoC)构建的,通过NoC将平台中的众多神经元核高效连接起来。
将SNN映射到多样的类脑平台是使类脑平台广泛应用中关键的一步。通用的映射解决方案是将SNN划分为多个子块后放置到神经元核中,并且需保证每个子块中的神经元数量不能超过神经元核的容量。目前已经出现了一些将SNN部署在类脑平台上的映射方法,例如PACMAN,NEUTRAMS,SCO和SpiNeMap等方法,但是这些方法均存在一些问题。PACMAN方法仅将SNN进行了划分,并没有提出子块放置方案而是将子块顺序放置在神经元核上,这使得在NoC上有可能出现脉冲通信拥塞的情况。SCO方法采用了顺序划分以及顺序映射的方法,这可以最大限度的减少神经元核的使用从而减少硬件资源的开销,但是这种方法没有优化核间脉冲的通信量,导致整个平台脉冲延迟和能耗的上升。尽管SpiNeMap方法采用了两阶段优化的映射方法,使得整个类脑平台的能耗和延迟有了较大的改善,但是对于大规模的SNN,SpiNeMap方法的整个映射过程会消耗大量的时间。同时受限于算法,SpiNeMap方法找到的映射方案并不是最好的。
解决SNN在类脑平台上的映射问题目前存在两个挑战:首先在划分阶段中,划分大规模SNN会花费大量的时间同时找到的划分方案并非最优;其次在映射阶段中,需要一个快速有效的搜索算法找到使类脑平台延迟和能耗更低的映射方案。与此同时,算法在搜索时会不断产生新映射方案并进行评估。为了得到准确的评估结果通常需要使用硬件或者硬件模拟器,但是这会带来大量的时间消耗,从而导致搜索算法的执行速度大幅降低。
为了解决这些挑战,需要将大型SNN快速映射到基于NoC的类脑平台,并使SNN在这样的类脑平台上能高效执行。因此,如何实现将大型SNN快速映射到基于NoC的类脑平台,并使SNN在这样的类脑平台上能高效执行,已成为亟待解决的关键技术问题。
发明内容
本发明要解决的技术问题:针对现有技术的上述问题,提供一种映射脉冲神经网络到类脑计算平台的方法、***及介质,本发明能够将大型SNN快速映射到基于NoC的类脑平台,并使SNN在这样的类脑平台上能高效执行。
为了解决上述技术问题,本发明采用的技术方案为:
一种映射脉冲神经网络到类脑计算平台的方法,该方法包括:
1)SNN模拟与分析:SNN软件模拟器提取经过训练的SNN网络的拓扑结构和神经元的行为,形成无向SNN图以及脉冲行为轨迹;
2)划分:将提取出的无向SNN图使用多级图划分算法划分为多个SNN子块,并优化SNN子块之间的脉冲通信量;
3)映射:使用启发式搜索算法找到一个最优的映射方案将SNN子块分配给目标类脑平台上的神经元核,并使目标平台上通信的脉冲平均跳数最小化。
可选地,步骤1)中的无向SNN图中以神经元为节点、神经元与神经元之间的突触为边;脉冲行为轨迹包含源神经元以及目的神经元的编号和激发时间。
可选地,步骤2)的详细步骤包括:
2.1)粗糙化处理:针对初始的SNN图G0一级一级的折叠压缩,且在任意第i级粗糙化中,第i级粗糙化的无向SNN图Gi的两个节点构成的节点集合会被折叠成下一级粗糙化的无向SNN图图Gi+1中的一个节点,且折叠后形成的节点的权值为折叠前的两个节点的权值之和,最终使得初始的SNN图G0会被折叠得到粗糙图Gc;
2.2)初始划分:将粗糙图Gc划分成k个SNN子块,且使得每个SNN子块中节点权值的和不能超过单个神经元核所能容纳的神经元数;
2.3)精细化处理:将粗糙图Gc划分后的粗糙图Gc会一级一级展开直到初始的SNN图G0,且在任意第i级精细化中,对第i级展开是还包括对各SNN子块中的节点进行调整已优化SNN子块间的通信量。
可选地,步骤2.1)中任意第i级粗糙化的详细步骤包括:
2.1.1)随机选取第i级粗糙化的无向SNN图Gi中的节点m;
2.1.2)选择与节点m的邻接边中权值最大的边(m,n)所对应的节点n;
2.1.3)判断节点n是否已经被折叠,若是则将边(m,n)从节点m的邻接边中剔除,跳转重新执行步骤2.1.3);否则,执行下一步;
2.1.4)将节点m和节点n进行折叠形成新的节点v,节点v的权值为节点m与节点n权值之和;
2.1.5)判断第i级粗糙化的无向SNN图Gi中是否仍存在可折叠节点,若仍存在可折叠节点则跳转执行步骤2.1.1);否则,执行下一步;
2.1.6)将生成的所有节点v、节点v的权值更新到第i+1级粗糙化的无向SNN图Gi+1中,生成第i+1级粗糙化的无向SNN图Gi+1。
可选地,步骤2.2)中将粗糙图Gc划分成k个SNN子块时,每一个SNN子块的生成步骤包括:首先从粗糙图Gc中选择任意节点m加入SNN子块j,然后依次选择节点m的所有邻接边中权值最大的边(m,n)所对应的节点n加入到SNN子块j中,然后更新SNN子块j的邻接边集合,若SNN子块j中节点权值的和超过单个神经元核所能容纳的神经元数,则判定SNN子块j的节点已满,并将当前节点m的所有邻接边中权值最大的边(m,n)所对应的节点n作为第一个节点生成新的SNN子块j+1。
可选地,步骤2.3)中任意第i级精细化的详细步骤包括:
2.3.1)将第i+1级粗糙化的无向SNN图Gi+1展开生成第i级粗糙化的无向SNN图Gi;
2.3.2)计算第i级粗糙化的无向SNN图Gi中所有节点的内部连接度ID,以及与各个邻接的SNN子块的外部连接度ED,所述外部连接度ED为该节点与邻接的SNN子块的所有邻接边的权值之和;
2.3.3)扫描第i级粗糙化的无向SNN图Gi中的所有节点,若任意节点v的外部连接度ED之和大于内部连接度ID,则将节点v***到优先级队列中;
2.3.4)针对优先级队列中的节点计算外部连接度ED之和、内部连接度ID之间的差作为增益,从优先级队列中挑选出增益最大的节点;
2.3.5)移动挑选出的增益最大的节点到外部连接度ED最大的邻接的SNN子块中;
2.3.6)更新第i级粗糙化的无向SNN图Gi中所有边的权值,计算SNN子块之间的边的权值和;
2.3.7)判断SNN子块之间的边的权值和是否发生变化,若发生变化则跳转执行步骤2.3.3);否则输出优化后的第i级粗糙化的无向SNN图Gi。
可选地,步骤3)的详细步骤包括:
3.1)初始化设置初始的退火温度T,迭代次数阈值k;
3.2)随机生成一个映射方案P,计算映射方案P的平均跳数AH(P);
3.3)通过交换或移动子块在映射方案P附近进行扰动,产生新的映射方案C,计算新的映射方案C的平均跳数AH(C);
3.4)比较映射方案P的平均跳数AH(P)、新的映射方案C的平均跳数AH(C),如果映射方案P的平均跳数AH(P)大于新的映射方案C的平均跳数AH(C),则使用新的映射方案C替换映射方案P并进入下一步,否则直接进入下一步;
3.5)根据p=exp(AH(P)–AH(C)/T)计算概率p,其中T为退火温度,exp为预设函数,AH(P)为映射方案P的平均跳数,AH(C)为新的映射方案C的平均跳数;若概率p大于预设参数r,则使用新的映射方案C替换映射方案P并进入下一步,否则直接进入下一步;
3.6)更新迭代次数,判断迭代次数是否已达到预设的迭代次数阈值k,如果是则进入下一步,否则跳转执行步骤3.3);
3.7)判断退火温度T小于预设的最小温度Tmin是否成立,若不成立则根据T=Θ×T降低退火温度T,其中Θ为预设的温度冷却率,跳转执行步骤3.3);若成立则进入下一步;
3.8)将映射方案P作为最优方案返回。
此外,本发明还提供一种映射脉冲神经网络到类脑计算平台的***,包括计算机设备,其特征在于,该计算机设备被编程或配置以执行所述映射脉冲神经网络到类脑计算平台的方法的步骤。
此外,本发明还提供一种映射脉冲神经网络到类脑计算平台的***,包括计算机设备,其特征在于,该计算机设备的存储器中存储有被编程或配置以执行所述映射脉冲神经网络到类脑计算平台的方法的计算机程序。
此外,本发明还提供一种计算机可读存储介质,其特征在于,该计算机可读存储介质中存储有被编程或配置以执行所述映射脉冲神经网络到类脑计算平台的方法的计算机程序。
和现有技术相比,本发明具有下述优点:本发明映射脉冲神经网络到类脑计算平台的方法包含三个阶段,分别为SNN模拟与分析、划分、映射,通过这三个阶段可将大型SNN划分成多个子块后映射到基于NOC的类脑处理器上使之能高效执行,一方面能够使得时找到的划分方案最优,另一方面还能够使得找到使类脑平台延迟和能耗更低的映射方案所花费的代价低,降低搜索的时间消耗,确保执行速度高效执行。
附图说明
图1为本发明实施例方法的基本原理示意图。
图2为本发明实施例中多级图划分方法的原理示意图。
图3为本发明实施例中第i级粗糙化的流程示意图。
图4为本发明实施例中第i级精细化的流程示意图。
图5为本发明实施例中基于模拟退火算法的映射优化流程图。
具体实施方式
如图1所示,本实施例映射脉冲神经网络到类脑计算平台的方法包括:
1)SNN模拟与分析:SNN软件模拟器提取经过训练的SNN网络的拓扑结构和神经元的行为,形成无向SNN图以及脉冲行为轨迹;
2)划分:将提取出的无向SNN图使用多级图划分算法划分为多个SNN子块,并优化SNN子块之间的脉冲通信量;
3)映射:使用启发式搜索算法找到一个最优的映射方案将SNN子块分配给目标类脑平台上的神经元核,并使目标平台上通信的脉冲平均跳数最小化。
本实施例映射脉冲神经网络到类脑计算平台的方法在实施时被封装为一套工具链,且记为名为SNEAP(Spiking NEural network mAPping toolchain,简称SNEAP),可方便快捷地将SNN映射到基于NoC结构的类脑平台上。SNEAP工具链以SNN拓扑结构为输入,将SNN结构进行划分后以神经元为单位分配到类脑平台上各个神经元核上,最后的输出为一个映射方案(矩阵)。本实施例映射脉冲神经网络到类脑计算平台的方法包含三个阶段,分别为SNN模拟与分析、划分、映射,通过这三个阶段可将大型SNN划分成多个子块后映射到基于NOC的类脑处理器上,使之能高效执行。
本实施例中,步骤1)中的无向SNN图中以神经元为节点、神经元与神经元之间的突触为边;脉冲行为轨迹包含源神经元以及目的神经元的编号和激发时间。
目前,神经科学家们广泛使用SNN软件模拟器来进行SNN行为上的精确模拟,例如:CARLsim,NEST等。这些SNN软件模拟器都提供了相应的SNN配置接口,当构建好一个SNN网络后,可以使用SNN的一系列属性信息,如神经元数量,神经元动力学方程以及网络拓扑结构等,来配置SNN软件模拟器进行模拟仿真。SNN可以由用户自由定义并部署在SNN上。在部署完成后,本实施例将拓扑结构以图的形式(神经元为节点、神经元与神经元之间的突触为边)提取出来。另外,在模拟阶段还可以获得脉冲行为轨迹。每条脉冲行为轨迹都包含源神经元以及目的神经元的编号和激发时间。然后我们可以通过获得的图以及脉冲行为轨迹文件对SNN进行划分以及映射。
本实施例中,步骤2)使用多级图划分策略以快速完成SNN图划分,并优化划分后SNN子块间通信的脉冲数量。划分问题可以转换为从无向SNN图到划分后无向SNN图的映射即G(N,S)->P(V,E)。这是一个经典的图划分问题。图划分问题已经被证明是一个NP完全问题。之前的工作都是使用经典的算法来解决这个问题如粒子群优化算法,Kernighan-Lin算法等等。但是这些算法随着图的规模增大所需的时间也大幅增加。本文中我们使用多级图划分策略来构建图划分算法,我们提出的方法会在粗糙化阶段使用启发式来快速将一个大规模图迅速压缩为一个小规模图,这样在后续阶段都会因图规模的缩小而使得优化时间缩短.更进一步,在精细化阶段我们使用一个全局优先级队列,这个方法相较于使用多个优先级队列的传统KL算法具有更好的爬上性,使得最后产生的划分结果质量更好。为了更好的阐述整个过程,若无特别之处,下文中的符号定义注释如下:
G(N,S):无向SNN图,以神经元为图中节点(N),突触为节点连接的边(S)。
P(V,E):划分后无向SNN图,SNN子块为图中节点(V),SNN子块之间的连接为边(E)。
Gi(Ni,Si):第i级粗糙化的无向SNN图;
Dc[v]:精细阶段第c级划分向量,表示节点v所属的SNN子块。
B(v):与节点v邻接的SNN子块集合。
ED[v]b:外部连接度(External Degree),对于每个b∈B(v),ED[v]b是v所有邻接边(v,u)权值的和,其中Dc[v]=b。
ID[v]:内部连接度(Internal Degree),ID[v]是节点v所属子块内部边(v,u)权值的和,其中Dc[u]=Dc[v]。
步骤2)中的多级图划分策略由3个步骤组成,分别为粗糙化,初始划分以及精细化,如图2所示,步骤2)的详细步骤包括:
2.1)粗糙化处理:针对初始的SNN图G0一级一级的折叠压缩,且在任意第i级粗糙化中,第i级粗糙化的无向SNN图Gi的两个节点构成的节点集合会被折叠成下一级粗糙化的无向SNN图图Gi+1中的一个节点,且折叠后形成的节点的权值为折叠前的两个节点的权值之和,最终使得初始的SNN图G0会被折叠得到粗糙图Gc;
2.2)初始划分:将粗糙图Gc划分成k个SNN子块,且使得每个SNN子块中节点权值的和不能超过单个神经元核所能容纳的神经元数;
2.3)精细化处理:将粗糙图Gc划分后的粗糙图Gc会一级一级展开直到初始的SNN图G0,且在任意第i级精细化中,对第i级展开是还包括对各SNN子块中的节点进行调整已优化SNN子块间的通信量。
粗糙化步骤被分为多级,初始的SNN图G0(N0,S0)会被一级一级的折叠压缩。在第i级粗糙化中,第i级粗糙化的无向SNN图Gi的两个节点构成的节点集合会被折叠成下一级粗糙化的无向SNN图图Gi+1中的一个节点,最终使得初始的SNN图G0(N0,S0)会被折叠成粗糙的图Gc。在粗糙化开始前,所有节点的权值均为1。被折叠的节点是随机选择的。如果随机选中的节点m在之前未被折叠过,我们会选择与节点m邻接边中权值最大的边(m,n)所对应的节点n进行折叠,折叠后形成Gi+1中的节点v,节点v的权值为节点m与节点n权值之和。我们将节点m与n标记为已被折叠,然后继续折叠其他未被标记的点,直到没有可折叠的点,这一级的折叠就结束了。另外如果一些节点的邻接边所对应的节点都是已折叠节点,那么这些节点不会被折叠而直接成为下一级图的节点。在每一级的折叠中,新形成的节点权值如此一级一级折叠压缩,初始的图会被折叠成粗糙的图Gc。
如图3所示,步骤2.1)中任意第i级粗糙化的详细步骤包括:
2.1.1)随机选取第i级粗糙化的无向SNN图Gi中的节点m;
2.1.2)选择与节点m的邻接边中权值最大的边(m,n)所对应的节点n;
2.1.3)判断节点n是否已经被折叠,若是则将边(m,n)从节点m的邻接边中剔除,跳转重新执行步骤2.1.3);否则,执行下一步;
2.1.4)将节点m和节点n进行折叠形成新的节点v,节点v的权值为节点m与节点n权值之和;
2.1.5)判断第i级粗糙化的无向SNN图Gi中是否仍存在可折叠节点,若仍存在可折叠节点则跳转执行步骤2.1.1);否则,执行下一步;
2.1.6)将生成的所有节点v、节点v的权值更新到第i+1级粗糙化的无向SNN图Gi+1中,生成第i+1级粗糙化的无向SNN图Gi+1。
初始划分步骤会将上一阶段得到的图Gc划分成k个SNN子块,每个子块中节点权值的和不能超过单个神经元核所能容纳的神经元数。假设图Gc中的节点m被随机挑选出加入了SNN子块a,我们随后选择节点m的所有邻接边中权值最大的边(m,n)所对应的节点n加入到子块中,然后更新子块a的邻接边集合。不断重复这个过程,直到子块a中的节点权值和达到神经元核的容量上限。当一个子块不能加入节点后,再开始下一个子块的填充。不断执行上述过程直到将图Gc划分为k个子块。
本实施例中,步骤2.2)中将粗糙图Gc划分成k个SNN子块时,每一个SNN子块的生成步骤包括:首先从粗糙图Gc中选择任意节点m加入SNN子块j,然后依次选择节点m的所有邻接边中权值最大的边(m,n)所对应的节点n加入到SNN子块j中,然后更新SNN子块j的邻接边集合,若SNN子块j中节点权值的和超过单个神经元核所能容纳的神经元数,则判定SNN子块j的节点已满,并将当前节点m的所有邻接边中权值最大的边(m,n)所对应的节点n作为第一个节点生成新的SNN子块j+1。
精细化步骤与粗糙化步骤类似,也被分为多级,只是精细化是将节点一级级展开。划分后的粗糙图Gc会一级一级展开直到初始的SNN图G0,在每一级的展开中,还需要对各SNN子块中的节点进行调整,来优化子块间的通信量,见图4。我们使用全局优先队列来记录节点的增益。首先,所有的节点都会扫描一遍,如果节点ED的和大于ID,那么这个节点将会被加入到全局优先队列。假设节点v,b∈B(v),ED[v]b是在B(v)中最大的。我们将节点v***到优先级队列中,增益为ED[v]b-ID[v]。每次优先级队列中增益最大的节点v将会被挑选出进行移动。我们移动节点v到子块b中,因为ED[v]b是最大的,当然也得同时满足子块b的容量限制。就这样不断的进行移动直到子块间的边权值和不再变化。每一级的展开后都会进行优化,直到展开为初始图G0。此时的图G0已经是被划分好的图了。
如图4所示,步骤2.3)中任意第i级精细化的详细步骤包括:
2.3.1)将第i+1级粗糙化的无向SNN图Gi+1展开生成第i级粗糙化的无向SNN图Gi;
2.3.2)计算第i级粗糙化的无向SNN图Gi中所有节点的内部连接度ID,以及与各个邻接的SNN子块的外部连接度ED,所述外部连接度ED为该节点与邻接的SNN子块的所有邻接边的权值之和;
2.3.3)扫描第i级粗糙化的无向SNN图Gi中的所有节点,若任意节点v的外部连接度ED之和大于内部连接度ID,则将节点v***到优先级队列中;
2.3.4)针对优先级队列中的节点计算外部连接度ED之和、内部连接度ID之间的差作为增益,从优先级队列中挑选出增益最大的节点;
2.3.5)移动挑选出的增益最大的节点到外部连接度ED最大的邻接的SNN子块中;
2.3.6)更新第i级粗糙化的无向SNN图Gi中所有边的权值,计算SNN子块之间的边的权值和;
2.3.7)判断SNN子块之间的边的权值和是否发生变化,若发生变化则跳转执行步骤2.3.3);否则输出优化后的第i级粗糙化的无向SNN图Gi。
在SNN被划分为多个子块后,这些子块在类脑平台上的位置同样影响着整个平台的能耗和延迟。不同的映射方案将改变NoC上脉冲的通信行为,从而导致能耗和延迟方面的差异。我们使用启发式搜索算法-模拟退火算法来构建映射工具。该工具可以找到最佳的映射方案,以最大程度地减少基于NoC结构的类脑平台上的脉冲延迟和能耗。映射的优化目标可以是延迟或能耗。但是,评估这些指标通常需要使用真实的硬件或硬件模拟器,这会导致大量的时间开销。为了避免使用实际硬件或硬件模拟器,从而消除相应的时间开销,我们使用平均跳数(Average Hop,简称AH)作为优化目标。
本实施例中利用模拟退火算法去寻找脉冲平均跳数最小的映射方案。划分好后的SNN用图P(V,E)来表示。基于NoC的类脑平台结构使用图A(C,I)来表示,其中C表示神经元核的集合,I表示在指定互连拓扑结构下神经元核物理链接的集合。映射问题M也就可以转换成M:P(V,E)→A(C,I)。M可以使用矩阵mij∈{0,1}|C|x|V|来表示,其中mij定义为:
上式中,条件1为神经元核ci是否映射到路由节点vj上,其中ci为神经元核集合C中的第i个神经元核,vj为路由节点集合V中的第j个路由节点。
在搜索过程中,优化目标为找到平均跳数最小的映射方案Mmin:
Mmin=argmin{AH(Mi)|i∈1,2,...N}
上式中,AH(Mi)表示映射方案Mi的平均跳数,N表示评估的映射方案数量,平均跳数AH可以使用如下公式来计算:
上式中,d(i,j)表示路由节点i到路由节点j之间的距离,Vij表示路由节点i与路由节点j之间通信的脉冲数量。对于XY路由算法,可使用曼哈顿距离dMH(i,j)来计算d(i,j):
dMH(i,j)=|ix-jx|+|iy-jy|
上式中,(ix,iy)表示路由节点i的坐标,(jx,jy)表示路由节点j的坐标。
如图5所示,步骤3)的详细步骤包括:
3.1)初始化设置初始的退火温度T,迭代次数阈值k;
3.2)随机生成一个映射方案P,计算映射方案P的平均跳数AH(P);
3.3)通过交换或移动子块在映射方案P附近进行扰动,产生新的映射方案C,计算新的映射方案C的平均跳数AH(C);
3.4)比较映射方案P的平均跳数AH(P)、新的映射方案C的平均跳数AH(C),如果映射方案P的平均跳数AH(P)大于新的映射方案C的平均跳数AH(C),则使用新的映射方案C替换映射方案P并进入下一步,否则直接进入下一步;
其中,使用新的映射方案C替换映射方案P记为:P=C,AH(P)=AH(C),下同;
3.5)根据p=exp(AH(P)–AH(C)/T)计算概率p,其中T为退火温度,exp为预设函数,AH(P)为映射方案P的平均跳数,AH(C)为新的映射方案C的平均跳数;若概率p大于预设参数r,则使用新的映射方案C替换映射方案P并进入下一步,否则直接进入下一步;
本实施例中,预设参数r为区间在(0,1)内的一个随机数值,r=random(0,1)。
3.6)更新迭代次数,判断迭代次数是否已达到预设的迭代次数阈值k,如果是则进入下一步,否则跳转执行步骤3.3);
3.7)判断退火温度T小于预设的最小温度Tmin是否成立,若不成立则根据T=Θ×T降低退火温度T,其中Θ为预设的温度冷却率,跳转执行步骤3.3);若成立则进入下一步;
3.8)将映射方案P作为最优方案返回。
此外,本实施例还提供一种映射脉冲神经网络到类脑计算平台的***,包括计算机设备,该计算机设备被编程或配置以执行前述映射脉冲神经网络到类脑计算平台的方法的步骤。
此外,本实施例还提供一种映射脉冲神经网络到类脑计算平台的***,包括计算机设备,该计算机设备的存储器中存储有被编程或配置以执行前述映射脉冲神经网络到类脑计算平台的方法的计算机程序。
此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行前述映射脉冲神经网络到类脑计算平台的方法的计算机程序。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (8)
1.一种映射脉冲神经网络到类脑计算平台的方法,其特征在于,该方法包括:
1)SNN模拟与分析:SNN软件模拟器提取经过训练的SNN网络的拓扑结构和神经元的行为,形成无向SNN图以及脉冲行为轨迹;
2)划分:将提取出的无向SNN图使用多级图划分算法划分为多个SNN子块,并优化SNN子块之间的脉冲通信量;
3)映射:使用启发式搜索算法找到一个最优的映射方案将SNN子块分配给目标类脑平台上的神经元核,并使目标平台上通信的脉冲平均跳数最小化;
步骤2)的详细步骤包括:
2.1)粗糙化处理:针对初始的SNN图G 0 一级一级的折叠压缩,且在任意第i级粗糙化中,第i级粗糙化的无向SNN图G i 的两个节点构成的节点集合会被折叠成下一级粗糙化的无向SNN图图G i+1 中的一个节点,且折叠后形成的节点的权值为折叠前的两个节点的权值之和,最终使得初始的SNN图G 0 会被折叠得到粗糙图G c ;
2.2)初始划分:将粗糙图G c 划分成k个SNN子块,且使得每个SNN子块中节点权值的和不能超过单个神经元核所能容纳的神经元数;
2.3)精细化处理:将划分后的粗糙图G c 一级一级展开直到初始的SNN图G 0 ,且在任意第i级精细化中,对第i级展开时还包括对各SNN子块中的节点进行调整以优化SNN子块间的通信量;
步骤2.1)中任意第i级粗糙化的详细步骤包括:
2.1.1)随机选取第i级粗糙化的无向SNN图G i 中的节点m;
2.1.2)选择与节点m的邻接边中权值最大的边(m,n)所对应的节点n;
2.1.3)判断节点n是否已经被折叠,若是则将边(m,n)从节点m的邻接边中剔除,跳转重新执行步骤2.1.3);否则,执行下一步;
2.1.4)将节点m和节点n进行折叠形成新的节点v,节点v的权值为节点m与节点n权值之和;
2.1.5)判断第i级粗糙化的无向SNN图G i 中是否仍存在可折叠节点,若仍存在可折叠节点则跳转执行步骤2.1.1);否则,执行下一步;
2.1.6)将生成的所有节点v、节点v的权值更新到第i+1级粗糙化的无向SNN图G i+1 中,生成第i+1级粗糙化的无向SNN图G i+1 。
2.根据权利要求1所述的映射脉冲神经网络到类脑计算平台的方法,其特征在于,步骤1)中的无向SNN图中以神经元为节点、神经元与神经元之间的突触为边;脉冲行为轨迹包含源神经元以及目的神经元的编号和激发时间。
3.根据权利要求1所述的映射脉冲神经网络到类脑计算平台的方法,其特征在于,步骤2.2)中将粗糙图G c 划分成k个SNN子块时,每一个SNN子块的生成步骤包括:首先从粗糙图G c 中选择任意节点m加入SNN子块j,然后依次选择节点m的所有邻接边中权值最大的边(m, n)所对应的节点n加入到SNN子块j中,然后更新SNN子块j的邻接边集合,若SNN子块j中节点权值的和超过单个神经元核所能容纳的神经元数,则判定SNN子块j的节点已满,并将当前节点m的所有邻接边中权值最大的边(m, n)所对应的节点n作为第一个节点生成新的SNN子块j+1。
4.根据权利要求1所述的映射脉冲神经网络到类脑计算平台的方法,其特征在于,步骤2.3)中任意第i级精细化的详细步骤包括:
2.3.1)将第i+1级粗糙化的无向SNN图G i+1 展开生成第i级粗糙化的无向SNN图G i ;
2.3.2)计算第i级粗糙化的无向SNN图G i 中所有节点的内部连接度ID,以及与各个邻接的SNN子块的外部连接度ED,所述外部连接度ED为该节点与邻接的SNN子块的所有邻接边的权值之和;所述内部连接度ID为该节点同一SNN子块的所有邻接边的权值之和;
2.3.3)扫描第i级粗糙化的无向SNN图G i 中的所有节点,若任意节点v的外部连接度ED之和大于内部连接度ID,则将节点v***到优先级队列中;
2.3.4)针对优先级队列中的节点计算外部连接度ED之和、内部连接度ID之间的差作为增益,从优先级队列中挑选出增益最大的节点;
2.3.5)移动挑选出的增益最大的节点到外部连接度ED最大的邻接的SNN子块中;
2.3.6)更新第i级粗糙化的无向SNN图G i 中所有边的权值,计算SNN子块之间的边的权值和;
2.3.7)判断SNN子块之间的边的权值和是否发生变化,若发生变化则跳转执行步骤2.3.3);否则输出优化后的第i级粗糙化的无向SNN图G i 。
5.根据权利要求1所述的映射脉冲神经网络到类脑计算平台的方法,其特征在于,步骤3)的详细步骤包括:
3.1)初始化设置初始的退火温度T,迭代次数阈值k;
3.2)随机生成一个映射方案P,计算映射方案P的平均跳数AH(P);
3.3)通过交换或移动子块在映射方案P附近进行扰动,产生新的映射方案C,计算新的映射方案C的平均跳数AH(C);
3.4)比较映射方案P的平均跳数AH(P)、新的映射方案C的平均跳数AH(C),如果映射方案P的平均跳数AH(P)大于新的映射方案C的平均跳数AH(C),则使用新的映射方案C替换映射方案P并进入下一步,否则直接进入下一步;
3.5)根据p = exp(AH(P) –AH(C)/T)计算概率p,其中T为退火温度,exp为预设函数,AH(P)为映射方案P的平均跳数,AH(C)为新的映射方案C的平均跳数;若概率p大于预设参数r,则使用新的映射方案C替换映射方案P并进入下一步,否则直接进入下一步;
3.6)更新迭代次数,判断迭代次数是否已达到预设的迭代次数阈值k,如果是则进入下一步,否则跳转执行步骤3.3);
3.7)判断退火温度T小于预设的最小温度T min 是否成立,若不成立则根据T = Q´T降低退火温度T,其中Q为预设的温度冷却率,跳转执行步骤3.3);若成立则进入下一步;
3.8)将映射方案P作为最优方案返回。
6.一种映射脉冲神经网络到类脑计算平台的***,包括计算机设备,其特征在于,该计算机设备被编程或配置以执行权利要求1~5中任意一项所述映射脉冲神经网络到类脑计算平台的方法的步骤。
7.一种映射脉冲神经网络到类脑计算平台的***,包括计算机设备,其特征在于,该计算机设备的存储器中存储有被编程或配置以执行权利要求1~5中任意一项所述映射脉冲神经网络到类脑计算平台的方法的计算机程序。
8.一种计算机可读存储介质,其特征在于,该计算机可读存储介质中存储有被编程或配置以执行权利要求1~5中任意一项所述映射脉冲神经网络到类脑计算平台的方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010767631.1A CN111882065B (zh) | 2020-08-03 | 2020-08-03 | 映射脉冲神经网络到类脑计算平台的方法、***及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010767631.1A CN111882065B (zh) | 2020-08-03 | 2020-08-03 | 映射脉冲神经网络到类脑计算平台的方法、***及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111882065A CN111882065A (zh) | 2020-11-03 |
CN111882065B true CN111882065B (zh) | 2022-05-03 |
Family
ID=73204458
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010767631.1A Active CN111882065B (zh) | 2020-08-03 | 2020-08-03 | 映射脉冲神经网络到类脑计算平台的方法、***及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111882065B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112463532B (zh) * | 2020-11-24 | 2022-09-09 | 江南大学 | 构建snn工作负载自动映射器的方法及自动映射器 |
CN112329327B (zh) * | 2020-11-26 | 2022-06-07 | 中国人民解放军国防科技大学 | 一种硬件感知的液体状态机网络生成方法及*** |
CN112468401B (zh) * | 2020-11-26 | 2022-05-20 | 中国人民解放军国防科技大学 | 用于类脑处理器的片上网络路由通信方法及片上网络 |
CN112561042B (zh) * | 2021-03-01 | 2021-06-29 | 浙江大学 | 一种类脑计算机操作***的神经模型映射方法 |
CN113570049B (zh) * | 2021-07-23 | 2024-05-28 | 上海新氦类脑智能科技有限公司 | 多snn芯片互联的相对寻址方法、装置、设备和介质 |
CN113900795A (zh) * | 2021-09-02 | 2022-01-07 | 四川晟锦汇科技有限公司 | 一种脉冲神经网络映射方法 |
CN116070682B (zh) * | 2023-04-06 | 2023-08-15 | 浙江大学 | 神经元计算机操作***的snn模型动态映射方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201408915D0 (en) * | 2014-05-20 | 2014-07-02 | Ibm | Partitioning of a network using multiple poles for each part thereof |
CN107169561A (zh) * | 2017-05-09 | 2017-09-15 | 广西师范大学 | 面向功耗的混合粒子群脉冲神经网络映射方法 |
CN107909111A (zh) * | 2017-11-24 | 2018-04-13 | 中国地质大学(武汉) | 一种居民地多边形的多级图聚类划分方法 |
CN110826437A (zh) * | 2019-10-23 | 2020-02-21 | 中国科学院自动化研究所 | 基于生物神经网络的智能机器人控制方法、***、装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11216719B2 (en) * | 2017-12-12 | 2022-01-04 | Intel Corporation | Methods and arrangements to quantize a neural network with machine learning |
CA3099659A1 (en) * | 2018-05-07 | 2019-11-14 | Strong Force Iot Portfolio 2016, Llc | Methods and systems for data collection, learning, and streaming of machine signals for analytics and maintenance using the industrial internet of things |
-
2020
- 2020-08-03 CN CN202010767631.1A patent/CN111882065B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201408915D0 (en) * | 2014-05-20 | 2014-07-02 | Ibm | Partitioning of a network using multiple poles for each part thereof |
CN107169561A (zh) * | 2017-05-09 | 2017-09-15 | 广西师范大学 | 面向功耗的混合粒子群脉冲神经网络映射方法 |
CN107909111A (zh) * | 2017-11-24 | 2018-04-13 | 中国地质大学(武汉) | 一种居民地多边形的多级图聚类划分方法 |
CN110826437A (zh) * | 2019-10-23 | 2020-02-21 | 中国科学院自动化研究所 | 基于生物神经网络的智能机器人控制方法、***、装置 |
Non-Patent Citations (1)
Title |
---|
美国人工智能芯片研发动态;史入文;《上海信息化》;20191110(第11期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111882065A (zh) | 2020-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111882065B (zh) | 映射脉冲神经网络到类脑计算平台的方法、***及介质 | |
CN112085204B (zh) | 一种用于量子编译的线路变换方法 | |
US20180018555A1 (en) | System and method for building artificial neural network architectures | |
CN112561042B (zh) | 一种类脑计算机操作***的神经模型映射方法 | |
CN111860801B (zh) | 神经网络方法、神经网络***和计算机可读介质 | |
CN115186821B (zh) | 面向芯粒的神经网络推理开销估计方法及装置、电子设备 | |
CN112329327B (zh) | 一种硬件感知的液体状态机网络生成方法及*** | |
CN112468401B (zh) | 用于类脑处理器的片上网络路由通信方法及片上网络 | |
CN109951392B (zh) | 一种基于深度学习的中大型网络智能路由选择方法 | |
JP6709718B2 (ja) | 入力パラメータ探索装置、入力パラメータ探索方法、及び入力パラメータ探索プログラム | |
CN112528591A (zh) | 一种基于联合蒙特卡洛树搜索的pcb板自动布线方法 | |
CN116644804B (zh) | 分布式训练***、神经网络模型训练方法、设备和介质 | |
CN114492770A (zh) | 一种面向循环脉冲神经网络的类脑计算芯片映射方法 | |
Saadatmand-Tarzjan et al. | A novel constructive-optimizer neural network for the traveling salesman problem | |
Vashishtha et al. | Particle swarm optimization based feature selection | |
CN115168281A (zh) | 一种基于禁忌搜索算法的神经网络片上映射方法和装置 | |
CN114580636A (zh) | 基于三目标联合优化的神经网络轻量化部署方法 | |
Chen et al. | Cycle-accurate noc-based convolutional neural network simulator | |
CN113627592A (zh) | 面向Winograd参数可调的卷积张量优化方法及*** | |
CN114547954A (zh) | 物流配送中心选址方法、装置、计算机设备 | |
CN107516020A (zh) | 序列位点重要度的确定方法、装置、设备及存储介质 | |
CN113554157A (zh) | 数据处理方法及相关产品 | |
CN111645687A (zh) | 变道策略确定方法、装置及存储介质 | |
Maeda et al. | Identifying Cellular Automata Rules. | |
CN115857492A (zh) | 一种基于神经形态硬件的机器人全局路径规划装置及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |