CN115081587A - 类脑计算机中脉冲神经网络在硬件上的运行部署方法 - Google Patents

类脑计算机中脉冲神经网络在硬件上的运行部署方法 Download PDF

Info

Publication number
CN115081587A
CN115081587A CN202210593127.3A CN202210593127A CN115081587A CN 115081587 A CN115081587 A CN 115081587A CN 202210593127 A CN202210593127 A CN 202210593127A CN 115081587 A CN115081587 A CN 115081587A
Authority
CN
China
Prior art keywords
node
nodes
energy
hardware
neural network
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.)
Pending
Application number
CN202210593127.3A
Other languages
English (en)
Inventor
潘纲
金欧文
李莹
邓水光
吕攀
杨国青
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN202210593127.3A priority Critical patent/CN115081587A/zh
Publication of CN115081587A publication Critical patent/CN115081587A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种类脑计算机中脉冲神经网络在硬件上的运行部署方法,包括:根据底层类脑计算硬件限制,将脉冲神经网络的神经元进行簇划分后,以簇作为节点,根据簇之间的有向脉冲连接关系确定节点之间的连边,以构建有向图;使用层次优先的拓扑排序算法对有向图进行节点排序,以得到节点序列;对底层类脑计算硬件的计算核心按照希尔伯特空间填充曲线的顺序进行标号,按照标号将节点序列中的每个节点以一对一的方式分配到计算核心上,以形成初步映射方案;基于初步映射方案,采用力引导图算法多次迭代优化映射方案,以得到最终映射方案;依据最终映射方案实现神经元到计算核心的映射分配。能够提升类脑硬件计算效率、降低计算功耗。

Description

类脑计算机中脉冲神经网络在硬件上的运行部署方法
技术领域
本发明属于神经形态计算技术领域,具体涉及一种类脑计算机中脉冲神经网络在硬件上的运行部署方法。
背景技术
脉冲神经网络被称为第三代人工神经网络,以其“事件驱动”的核心特征与生物可解释性为亮点,正成为当下人工智能研究的一大热点。许多基于脉冲神经网络的机器学习应用已经被研究者们提出。
为高效研究与部署运行脉冲神经网络应用,许多神经形态计算芯片或是类脑计算硬件平台被设计并生产。这些新型类脑硬件架构各异,芯片制造工艺、底层实现原理也不尽相同。但是它们都遵循着相同的设计理念来部署运行脉冲神经网络应用,即:
1)使用大量专门类脑计算核心来并行模拟神经元动态。
2)使用高密度的片上网络组织方式实现计算核心之间的脉冲通信。
基于以上设计理念,类脑硬件可以实现高效率模拟运行脉冲神经网络应用。
为高效利用这些新型类脑硬件资源,需要将脉冲神经网络中的神经元映射到底层类脑硬件的计算核心上,而脉冲神经网络映射方案的优劣将极大地影响类脑硬件的运行效率与功耗。
不同于传统多核系统任务映射问题,针对基于传递脉冲完成推理的脉冲神经网络端计算过程的脉冲神经网络映射一般建模为约束条件下的多目标非线性规划问题,需同时考虑芯片内所有节点间脉冲传递的总功耗(也即通讯代价)、最长脉冲传输距离、通信路由堵塞程度、映射方案求解耗时等多种指标。
针对脉冲神经网络的图拓扑结构,映射算法一般分为两个阶段:1)对原脉冲神经网络先进行划分,重构拓扑结构;2)为每个网络分块分配绑定至物理计算核心。由于求解给定优化目标下的最优映射方案已经被证明是一个NP-Hard问题,如何在芯片的硬件约束下使用较短时间找到近似解是技术难点所在。另一需要解决的问题是映射算法的可扩展性,随着需要部署的脉冲神经网络规模的增大与底层芯片计算核心数量增加、核心性能增强,映射问题的搜索空间将呈指数级增长,因此映射优化算法需要具备极强的可扩展性以应对可能的超大规模脉冲神经网络模型映射问题。
工业界中目前的映射算法和框架种类丰富,但多数为针对特定类脑硬件进行的特定建模和优化算法设计,因此缺少可移植性。同时,目前已有的映射算法缺少可扩展性,在面对大规模网络映射问题时,要么无法在可接受时间内完成求解,要么获得的解的质量低下。
发明内容
鉴于上述,本发明的目的是提供一种类脑计算机中脉冲神经网络在硬件上的运行部署方法,通过空间填充曲线与力引导图寻找脉冲神经网络的神经元到底层类脑硬件的计算核心的最优映射方案。
为实现上述发明目的,实施例提供的一种类脑计算机中脉冲神经网络在硬件上的运行部署方法,包括以下步骤:
步骤1,根据底层类脑计算硬件限制,将脉冲神经网络的神经元进行簇划分后,以簇作为节点,根据簇之间的有向脉冲连接关系确定节点之间的连边,以构建有向图;
步骤2,使用层次优先的拓扑排序算法对有向图进行节点排序,以得到节点序列;
步骤3,对底层类脑计算硬件的计算核心按照希尔伯特空间填充曲线的顺序进行标号,按照标号将节点序列中的每个节点以一对一的方式分配到计算核心上,以形成初步映射方案;
步骤4,基于初步映射方案,采用力引导图算法多次迭代优化映射方案,以得到最终映射方案;
步骤5,依据最终映射方案实现脉冲神经网络的神经元到计算核心的映射分配。
在一个实施例的步骤1中,根据底层类脑计算硬件限制,将脉冲神经网络的神经元进行簇划分,包括:
根据底层类脑计算硬件的每个计算核心的荷载神经元数量,将将脉冲神经网络的神经元进行簇划分,保证每个簇包含的神经元数量不超过计算核心的荷载神经元数量,以保证每个簇能够被分配给任意计算核心。
在一个实施例的步骤1中,以簇作为节点,根据簇之间的脉冲连接关系确定节点之间的连边,以构建有向图,包括:
以簇作为节点,对于任意两个第一簇A和第二簇B,若脉冲神经网络中存在至少一个有向脉冲连接关系(a,b),且满足a是突触前神经元且a属于第一簇A;b是突触后神经元且b属于第二簇B,则在第一簇A和第二簇B之间构建一条由第一簇A指向第二簇B的超边作为节点之间的连边;连边的强度设定为第一簇A中的神经元向第二簇B中的神经元发放的脉冲总量,以此构建有向图。
在一个实施例的步骤2包括:
步骤2-1,从有向图中每个节点,统计节点的入度和出度,并筛选入度为0的节点加入节点序列,其中,以节点的向外指出连边的数量作为节点的出度、以节点的向内指入连边的数量作为节点的入度;
步骤2-2,以对节点队列中的首节点开始,针对节点队列中每个节点进行如下操作:遍历与节点连接的每个相邻节点,并将相邻节点的入度减1,若此时相邻节点的入度为0,就将相邻节点加入到节点序列尾部;完成所有节点的上述操作后,得到对节点排序后的节点序列。
在一个实施例的步骤3包括:
步骤3-1,依据底层类脑计算硬件的计算核心的分布状态计算生成符合分布状态的希尔伯特空间填充曲线,并得到每个计算核心在希尔伯特空间填充曲线下的顺序标号,组成标号序列;
步骤3-2,进行标号序列与节点序列的匹配,即按照标号序列中的标号顺序,将节点序列中的每个节点对应的簇分配到每个标号对应的计算核心,以形成初步映射方案。
在一个实施例的步骤4,包括:
步骤4-1,依据能量场模型将初步映射方案中节点之间的连接强度转换为拉力强度;
步骤4-2,针对由相邻第一节点和第二节点组成的节点对,计算节点之间的拉力强度之和,作为节点对的张力。此时,节点对的张力等于交换对应节点后,系统总能量的减少量。筛选所有张力为正的节点对并根据张力大小进行节点对的降序排序,以形成交换序列;
步骤4-3,从交换序列中筛选前λ%个节点对进行交换,针对当前待交换的节点对,先检查节点对的张力是否为正,在张力为正时,将节点对中两节点对应的计算核心进行位置交换,并更新所有与交换节点有连接关系的其他节点的拉力强度,并记录拉力强度改变的节点;
步骤4-4,在筛选前λ%个节点对交换结束后,统计步骤4-3被记录的节点以及交换序列的所有节点作为统计节点,计算与统计节点相关的统计节点对的张力后,筛选所有张力为正的统计节点对并根据张力大小进行统计节点对的降序排序,以生成新交换序列;
步骤4-5,以新交换序列作为步骤4-3中的交换序列,重复执行步骤4-3和步骤4-4,直到新交换序列为空为止,实现对初步分配的优化,得到最终映射方案。
在一个实施例的步骤4-1包括:
步骤4-1-1,针对每个当前节点,将与当前节点有连接关系的每个连接节点对应的计算核心位置为原点构建能量场模型,依据当前节点对应的计算核心相对于每个能量场原点的相对坐标,计算当前节点在每个能量场模型中的能量系数;
步骤4-1-2,以当前节点与每个连接节点之间的连接强度与能量系数的乘积作为当前节点相对于每个连接节点的能量;
步骤4-1-3,统计当前节点相对于所有连接节点的能量之和作为节点的能量;
步骤4-1-4,将当前节点对应计算核心位置更新为上下左右4个方向上相邻计算核心位置,并根据当前节点对应的4个新计算核心位置计算相对于每个能量场原点的4个新相对坐标;
步骤4-1-5,针对每个方向,依据新相对坐标计算当前节点在每个能量场模型中的新能量系数,以当前节点与每个连接节点之间的连接强度与新能量系数的乘积作为当前节点相对于每个连接节点的新能量,统计当前节点相对于所有连接节点的新能量之和作为对应方向的能量;
步骤4-1-6,计算当前节点的能量分别与4个方向的能量之差,以得到当前节点在4个方向的拉力强度。
在一个实施例的骤4-1-1中,能量场模型包含三种,这三种能量场模型对应的能量系数Z的计算公式分别为:
第一种能量场模型对应的能量系数Z=|X|+|Y|;
第二种能量场模型对应的能量系数Z=(|X|+|Y|)2
第三种能量场模型对应的能量系数Z=|X|2+|Y|2
其中,(X,Y)为每个相邻节点对应的计算核心相对于能量场原点的相对坐标;
当优化优化映射方案的目标为降低总脉冲距离时,选择第一种能量场模型计算能量系数;
优化优化映射方案的目标除降低总脉冲距离外,额外要求降低最长脉冲距离时,选择第二种能量场模型或第三种能量场模型计算能量系数。
在一个实施例的步骤4-2中,针对由相邻第一节点和第二节点组成的节点对,会存在由第一节点指向第二节点的拉力强度,还会存在第二节点指向第一节点的拉力强度,将这两个拉力强度求和得到节点对的张力。
与现有技术相比,本发明具有的有益效果至少包括:
使用的希尔伯特空间填充曲线充分利用了脉冲神经网络连接具有局部性的特点,在各个不同的距离尺度上尽可能地缩短了有脉冲连接关系的神经元之间的物理距离,在相对非常短的计算时间内提供了一个高质量的初始分配方案。
力引导图算法在初始分配方案的基础上进行分配方案的优化调整,由于对节点对的张力计算也具有局部性,该力引导图算法复杂度上限被有效限制,因而具备了可扩展性,使其在面临超大规模脉冲神经网络映射问题时也能高效计算出高质量分配方案,并可同时优化总脉冲距离最小、降低最长脉冲距离以及降低路由堵塞情况等多个优化目标。最终实现了减少分配方案求解时间,提升类脑硬件计算效率、降低计算功耗。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动前提下,还可以根据这些附图获得其他附图。
图1是实施例提供的类脑计算机中脉冲神经网络在硬件上的运行部署方法的流程图;
图2是实施例提供的原始脉冲神经网络到初步映射方案再到最终映射方案的流程图;
图3是实施例提供的三种能量场模型;
图4是实施例提供的采用力引导图算法多次迭代优化映射方案的流程图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不限定本发明的保护范围。
面对大规模脉冲神经网络映射问题时,存在缺少可拓展性,无法有效计算映射方案,且映射算法针对专门类脑硬件,缺少可移植性的技术问题。针对该技术问题,实施例提供了一种类脑计算机中脉冲神经网络在硬件上的运行部署方法。
图1是实施例提供的类脑计算机中脉冲神经网络在硬件上的运行部署方法的流程图。如图1所示,实施例提供的类脑计算机中脉冲神经网络在硬件上的运行部署方法,包括以下步骤:
步骤1,根据底层类脑计算硬件限制,将脉冲神经网络的神经元进行簇划分后,以簇作为节点,根据簇之间的有向脉冲连接关系确定节点之间的连边,以构建有向图。
实施例中,在对脉冲神经网络的神经元进行簇划分时,根据底层类脑计算硬件的每个计算核心的荷载神经元数量,将将脉冲神经网络的神经元进行簇划分,保证每个簇包含的神经元数量不超过计算核心的荷载神经元数量,以保证每个簇能够被分配给任意计算核心。
实施例中,在构建有向图时,以簇作为节点。对于任意两个第一簇A和第二簇B,若脉冲神经网络中存在至少一个有向脉冲连接关系(a,b),且满足a是突触前神经元且a属于第一簇A;b是突触后神经元且b属于第二簇B,则在第一簇A和第二簇B之间构建一条由第一簇A指向第二簇B的超边作为节点之间的连边。连边的强度设定为第一簇A中的神经元向第二簇B中的神经元发放的脉冲总量。具体来说,设脉冲神经网络中存在N个有向脉冲连接关系(a1,b1),(a2,b2),…(aN,bN),满足ai是突触前神经元且ai属于第一簇A;bi是突触后神经元且bi属于第二簇B,且这些脉冲前神经元分别会发放若干个脉冲,发放的脉冲数量记为w1,w2,…wN,则第一簇A中的神经元向第二簇B中的神经元发放的脉冲总量为
Figure BDA0003666395170000081
步骤2,使用层次优先的拓扑排序算法对有向图进行节点排序,以得到节点序列。
实施例中,步骤2中,使用层次优先的拓扑排序算法对有向图进行节点排序,以得到节点序列,包括:
步骤2-1,针对有向图中每个节点,统计节点的入度和出度,并筛选入度为0的节点加入节点序列,其中,以节点的向外指出连边的数量作为节点的出度、以节点的向内指入连边的数量作为节点的入度。假设有节点1、节点2、节点3,其中,节点1与节点2之间存在有由节点1指向节点2的连边L1,节点2与节点3之间存在有由节点2指向节点3的连边L2,则针对节点2来说,连边L1为向内指入连边,连边L2为向外指出连边。
步骤2-2,从节点队列中的首节点开始,针对节点队列中每个节点进行如下操作:遍历与节点连接的每个相邻节点,并将相邻节点的入度减1,若此时相邻节点的入度为0,就将相邻节点加入到节点序列尾部;完成所有节点的上述操作后,得到对节点排序后的节点序列。
步骤3,对底层类脑计算硬件的计算核心按照希尔伯特空间填充曲线的顺序进行标号,按照标号将节点序列中的每个节点以一对一的方式分配到计算核心上,以形成初步映射方案。
实施例中,步骤3包括:
步骤3-1,依据底层类脑计算硬件的计算核心的分布状态计算生成符合分布状态的希尔伯特空间填充曲线,并得到每个计算核心在希尔伯特空间填充曲线下的顺序标号,组成标号序列,如图2中b所示,箭头方向即为标号序列方向。
步骤3-2,进行标号序列与节点序列的匹配,即按照标号序列中的标号顺序,将节点序列中的每个节点对应的簇分配到每个标号对应的计算核心,以形成初步映射方案。
步骤4,基于初步映射方案,采用力引导图算法多次迭代优化映射方案,以得到最终映射方案。
实施例中,步骤4,包括:
步骤4-1,依据能量场模型将初步映射方案中节点之间的连接强度转换为拉力强度。
具体地,如图4所示,步骤4-1包括:
步骤4-1-1,步骤4-1-1,针对每个当前节点,将与当前节点有连接关系的每个连接节点对应的计算核心位置为原点构建能量场模型,依据当前节点对应的计算核心相对于每个能量场原点的相对坐标,计算当前节点在每个能量场模型中的能量系数;
实施例中,根据不同的能量场模型可以获得节点在不同计算核心上的能量大小。简单来说,距离有连接关系的其他节点越远、连接强度越大,产生的能量越高。此时,优化映射方案的减少脉冲距离问题可以转换为减少系统总能量问题。
实施例中,如图3所示,提供了三种能量场模型,其中,如图3中(a)所示,第一种能量场模型中,能量和脉冲连接关系的曼哈顿距离成线性关系,这种建模最简单,计算速度最快,具体地,第一种能量场模型对应的能量系数Z=|X|+|Y|。如图3中(b)所示,第二种能量场模型中,取曼哈顿距离的平方为能量场的计算基数,第二种能量场模型对应的能量系数。Z=(|X|+|Y|)2。如图3中(c)所示,第三种能量场模型中,取欧几里得距离的平方作为能量场的计算基数,第三种能量场模型对应的能量系数Z=|X|2+|Y|2。第二种和第三种能量场模型中,能量在距离过远时会显著增加,以此惩罚长距离脉冲,根据不同的优化目标需求,可以选择不同的能量场建模方案,包括:当优化优化映射方案的目标为降低总脉冲距离时,选择第一种能量场模型计算能量系数;优化优化映射方案的目标除降低总脉冲距离外,额外要求降低最长脉冲距离时,选择第二种能量场模型或第三种能量场模型计算能量系数。
步骤4-1-2,以当前节点与每个连接节点之间的连接强度与能量系数的乘积作为当前节点相对于每个连接节点的能量;
步骤4-1-3,统计当前节点相对于所有连接节点的能量之和作为节点的能量。假设,在有向图中,节点1存在与其有连接关系的3个连接节点,需要说明的是,此处的连接关系同时考虑向内指入连接和向外指出连接,则将节点1相对于3个连接节点的能量之和作为节点1的能量。
步骤4-1-4,将当前节点对应计算核心位置更新为上下左右4个方向上相邻计算核心位置,并根据当前节点对应的4个新计算核心位置计算相对于每个能量场原点的4个新相对坐标;
步骤4-1-5,针对每个方向,依据新相对坐标计算当前节点在每个能量场模型中的新能量系数,以当前节点与每个连接节点之间的连接强度与新能量系数的乘积作为当前节点相对于每个连接节点的新能量,统计当前节点相对于所有连接节点的新能量之和作为对应方向的能量;
步骤4-1-6,计算当前节点的能量分别与4个方向的能量之差,以得到当前节点在4个方向的拉力强度。
步骤4-2,针对由相邻第一节点和第二节点组成的节点对,计算节点之间的拉力强度之和,作为节点对的张力。此时,节点对的张力等于交换对应节点后,系统总能量的减少量。筛选所有张力为正的节点对并根据张力大小进行节点对的降序排序,以形成交换序列。
需要说明的是,组成节点对的第一节点和第二节点是相邻的,此处的相邻理解为在节点对应的计算核心的物理位置的相邻,第一节点和第二节点之间可能存在连接关系,即存在有向连边,也可能不存在连接关系,即不存在有向连边。
经过步骤4-1的计算,能够得到每个节点在4个方向的拉力强度,由于拉力强度是有方向性的,则针对由相邻第一节点1和第二节点2组成的节点对,会存在由第一节点1指向第二节点2的拉力强度,还会存在第二节点2指向第一节点1的拉力强度,将这两个拉力强度求和得到节点对的张力。
步骤4-3,从交换序列中筛选前λ%个节点对进行交换,针对当前待交换的节点对,先检查节点对的张力是否为正,如果张力为正,说明交换两个节点时可以降低系统总能量,否则会增加系统总能量,在张力为正时,将节点对中两节点对应的计算核心进行位置交换,并更新所有与交换节点有连接关系的其他节点的拉力强度,并记录拉力强度改变的节点。
实施例中,λ作为超参数可自定义设置,在对交换队列的前λ%个节点对实施交换时,λ越小,计算越准确,但是计算效率越低。λ越大,计算越不准确,计算效率越高。可根据需求设定合适的λ数值,因此,根据实验探究,λ取效果较优的经验值为50。
实施例中,对节点对进行交换是实时进行的,当前节点对交换后,会可能影响其他节点对的受力情况,如果当前节点对张力不为正时,说明其他结点对的交换的结果影响了当前交换节点对的受力情况,继续交换无法减少系统总能量,因此,针对当前节点对,在交换之前,还需要进行节点对张力是否仍然为正的判断,当不为正时,将节点对抛弃,当节点对张力为正时,才进行节点对中两节点对应的计算核心进行位置交换,并更新所有与交换节点有连接关系的其他节点的拉力强度,并记录拉力强度改变的节点。
需要说明的是,采用步骤4-1中的方式更新与交换节点有连接关系的其他节点的拉力强度,具体不再赘述。
步骤4-4,在筛选前λ%个节点对交换结束后,统计步骤4-3被记录的节点以及交换序列的所有节点作为统计节点,计算与统计节点相关的统计节点对的张力后,筛选所有张力为正的统计节点对并根据张力大小进行统计节点对的降序排序,以生成新交换序列。
步骤4-5,以新交换序列作为步骤4-3中的交换序列,重复执行步骤4-3和步骤4-4,直到新交换序列为空为止,实现对初步分配的优化,得到最终映射方案。
如图2中a所示的待分配原脉冲神经网络,经过步骤3的希尔伯特空间填充曲线进行初分配,得到如图2中b所示的初步映射方案,再经过步骤4的使用力引导图算法进行局部调整,得到如图2中c所示的最终映射方案。
步骤5,依据最终映射方案实现脉冲神经网络的神经元到计算核心的映射分配。
实施例中,将节点对应簇中的神经元分配到节点对应的计算核心上,完成映射分配。
上述和实施例提供的类脑计算机中脉冲神经网络在硬件上的运行部署方法,在得到的高质量初始映射方案的基础上进行进一步地调整优化,具备了可扩展性,使其在面临超大规模脉冲神经网络映射问题时也能高效计算出高质量映射方案,并可同时优化总脉冲距离最小、降低最长脉冲距离以及降低路由堵塞情况等多个优化目标。最终实现了减少分配方案求解时间,提升类脑硬件计算效率、降低计算功耗。
以上所述的具体实施方式对本发明的技术方案和有益效果进行了详细说明,应理解的是以上所述仅为本发明的最优选实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种类脑计算机中脉冲神经网络在硬件上的运行部署方法,其特征在于,包括以下步骤:
步骤1,根据底层类脑计算硬件限制,将脉冲神经网络的神经元进行簇划分后,以簇作为节点,根据簇之间的有向脉冲连接关系确定节点之间的连边,以构建有向图;
步骤2,使用层次优先的拓扑排序算法对有向图进行节点排序,以得到节点序列;
步骤3,对底层类脑计算硬件的计算核心按照希尔伯特空间填充曲线的顺序进行标号,按照标号将节点序列中的每个节点以一对一的方式分配到计算核心上,以形成初步映射方案;
步骤4,基于初步映射方案,采用力引导图算法多次迭代优化映射方案,以得到最终映射方案;
步骤5,依据最终映射方案实现脉冲神经网络的神经元到计算核心的映射分配。
2.根据权利要求1所述的类脑计算机中脉冲神经网络在硬件上的运行部署方法,其特征在于,步骤1中,根据底层类脑计算硬件限制,将脉冲神经网络的神经元进行簇划分,包括:
根据底层类脑计算硬件的每个计算核心的荷载神经元数量,将将脉冲神经网络的神经元进行簇划分,保证每个簇包含的神经元数量不超过计算核心的荷载神经元数量,以保证每个簇能够被分配给任意计算核心。
3.根据权利要求1所述的类脑计算机中脉冲神经网络在硬件上的运行部署方法,其特征在于,步骤1中,以簇作为节点,根据簇之间的脉冲连接关系确定节点之间的连边,以构建有向图,包括:
以簇作为节点,对于任意两个第一簇A和第二簇B,若脉冲神经网络中存在至少一个有向脉冲连接关系(a,b),且满足a是突触前神经元且a属于第一簇A;b是突触后神经元且b属于第二簇B,则在第一簇A和第二簇B之间构建一条由第一簇A指向第二簇B的超边作为节点之间的连边;连边的强度设定为第一簇A中的神经元向第二簇B中的神经元发放的脉冲总量,以此构建有向图。
4.根据权利要求1所述的类脑计算机中脉冲神经网络在硬件上的运行部署方法,其特征在于,步骤2包括:
步骤2-1,从有向图中每个节点,统计节点的入度和出度,并筛选入度为0的节点加入节点序列,其中,以节点的向外指出连边的数量作为节点的出度、以节点的向内指入连边的数量作为节点的入度;
步骤2-2,以对节点队列中的首节点开始,针对节点队列中每个节点进行如下操作:遍历与节点连接的每个相邻节点,并将相邻节点的入度减1,若此时相邻节点的入度为0,就将相邻节点加入到节点序列尾部;完成所有节点的上述操作后,得到对节点排序后的节点序列。
5.根据权利要求1所述的类脑计算机中脉冲神经网络在硬件上的运行部署方法,其特征在于,步骤3包括:
步骤3-1,依据底层类脑计算硬件的计算核心的分布状态计算生成符合分布状态的希尔伯特空间填充曲线,并得到每个计算核心在希尔伯特空间填充曲线下的顺序标号,组成标号序列;
步骤3-2,进行标号序列与节点序列的匹配,即按照标号序列中的标号顺序,将节点序列中的每个节点对应的簇分配到每个标号对应的计算核心,以形成初步映射方案。
6.根据权利要求1所述的类脑计算机中脉冲神经网络在硬件上的运行部署方法,其特征在于,步骤4,包括:
步骤4-1,依据能量场模型将初步映射方案中节点之间的连接强度转换为拉力强度;
步骤4-2,针对由相邻第一节点和第二节点组成的节点对,计算节点之间的拉力强度之和,作为节点对的张力,筛选所有张力为正的节点对并根据张力大小进行节点对的降序排序,以形成交换序列;
步骤4-3,从交换序列中筛选前λ%个节点对进行交换,针对当前待交换的节点对,先检查节点对的张力是否为正,在张力为正时,将节点对中两节点对应的计算核心进行位置交换,并更新所有与交换节点有连接关系的其他节点的拉力强度,并记录拉力强度改变的节点;
步骤4-4,在筛选前λ%个节点对交换结束后,统计步骤4-3被记录的节点以及交换序列的所有节点作为统计节点,计算与统计节点相关的统计节点对的张力后,筛选所有张力为正的统计节点对并根据张力大小进行统计节点对的降序排序,以生成新交换序列;
步骤4-5,以新交换序列作为步骤4-3中的交换序列,重复执行步骤4-3和步骤4-4,直到新交换序列为空为止,实现对初步分配的优化,得到最终映射方案。
7.根据权利要求6所述的类脑计算机中脉冲神经网络在硬件上的运行部署方法,步骤4-1包括:
步骤4-1-1,针对每个当前节点,将与当前节点有连接关系的每个连接节点对应的计算核心位置为原点构建能量场模型,依据当前节点对应的计算核心相对于每个能量场原点的相对坐标,计算当前节点在每个能量场模型中的能量系数;
步骤4-1-2,以当前节点与每个连接节点之间的连接强度与能量系数的乘积作为当前节点相对于每个连接节点的能量;
步骤4-1-3,统计当前节点相对于所有连接节点的能量之和作为节点的能量;
步骤4-1-4,将当前节点对应计算核心位置更新为上下左右4个方向上相邻计算核心位置,并根据当前节点对应的4个新计算核心位置计算相对于每个能量场原点的4个新相对坐标;
步骤4-1-5,针对每个方向,依据新相对坐标计算当前节点在每个能量场模型中的新能量系数,以当前节点与每个连接节点之间的连接强度与新能量系数的乘积作为当前节点相对于每个连接节点的新能量,统计当前节点相对于所有连接节点的新能量之和作为对应方向的能量;
步骤4-1-6,计算当前节点的能量分别与4个方向的能量之差,以得到当前节点在4个方向的拉力强度。
8.根据权利要求7所述的类脑计算机中脉冲神经网络在硬件上的运行部署方法,步骤4-1-1中,能量场模型包含三种,这三种能量场模型对应的能量系数Z的计算公式分别为:
第一种能量场模型对应的能量系数Z=|X|+|Y|;
第二种能量场模型对应的能量系数Z=(|X|+|Y|)2
第三种能量场模型对应的能量系数Z=|X|2+|Y|2
其中,(X,Y)为每个相邻节点对应的计算核心相对于能量场原点的相对坐标;
当优化优化映射方案的目标为降低总脉冲距离时,选择第一种能量场模型计算能量系数;
优化优化映射方案的目标除降低总脉冲距离外,额外要求降低最长脉冲距离时,选择第二种能量场模型或第三种能量场模型计算能量系数。
9.根据权利要求6所述的类脑计算机中脉冲神经网络在硬件上的运行部署方法,步骤4-2中,针对由相邻第一节点和第二节点组成的节点对,会存在由第一节点指向第二节点的拉力强度,还会存在第二节点指向第一节点的拉力强度,将这两个拉力强度求和得到节点对的张力。
CN202210593127.3A 2022-05-27 2022-05-27 类脑计算机中脉冲神经网络在硬件上的运行部署方法 Pending CN115081587A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210593127.3A CN115081587A (zh) 2022-05-27 2022-05-27 类脑计算机中脉冲神经网络在硬件上的运行部署方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210593127.3A CN115081587A (zh) 2022-05-27 2022-05-27 类脑计算机中脉冲神经网络在硬件上的运行部署方法

Publications (1)

Publication Number Publication Date
CN115081587A true CN115081587A (zh) 2022-09-20

Family

ID=83249981

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210593127.3A Pending CN115081587A (zh) 2022-05-27 2022-05-27 类脑计算机中脉冲神经网络在硬件上的运行部署方法

Country Status (1)

Country Link
CN (1) CN115081587A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115392443A (zh) * 2022-10-27 2022-11-25 之江实验室 类脑计算机操作系统的脉冲神经网络应用表示方法及装置
CN116070682A (zh) * 2023-04-06 2023-05-05 浙江大学 神经元计算机操作系统的snn模型动态映射方法及装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115392443A (zh) * 2022-10-27 2022-11-25 之江实验室 类脑计算机操作系统的脉冲神经网络应用表示方法及装置
CN115392443B (zh) * 2022-10-27 2023-03-10 之江实验室 类脑计算机操作系统的脉冲神经网络应用表示方法及装置
CN116070682A (zh) * 2023-04-06 2023-05-05 浙江大学 神经元计算机操作系统的snn模型动态映射方法及装置
CN116070682B (zh) * 2023-04-06 2023-08-15 浙江大学 神经元计算机操作系统的snn模型动态映射方法及装置

Similar Documents

Publication Publication Date Title
Zhu et al. An efficient evolutionary grey wolf optimizer for multi-objective flexible job shop scheduling problem with hierarchical job precedence constraints
Wu et al. Ensemble strategies for population-based optimization algorithms–A survey
CN115081587A (zh) 类脑计算机中脉冲神经网络在硬件上的运行部署方法
CN109871995B (zh) Spark框架下分布式深度学习的量子优化调参方法
CN106919769B (zh) 一种基于多层次方法和赋权超图的层次式fpga布局布线方法
De Toro et al. PSFGA: a parallel genetic algorithm for multiobjective optimization
CN112181867B (zh) 基于多目标遗传算法的片上网络内存控制器布局方法
Yu et al. Evolutionary fuzzy neural networks for hybrid financial prediction
CN114492770A (zh) 一种面向循环脉冲神经网络的类脑计算芯片映射方法
CN116402002B (zh) 一种用于芯片布局问题的多目标分层强化学习方法
CN110119399B (zh) 基于机器学习的业务流程优化方法
CN108832615A (zh) 一种基于改进二进制粒子群算法的配电网重构方法及系统
CN115238899A (zh) 面向超导量子计算机的量子程序并行处理方法及操作系统
Wang et al. Solving task scheduling problems in cloud manufacturing via attention mechanism and deep reinforcement learning
CN111414961A (zh) 一种基于任务并行的细粒度分布式深度森林训练方法
Mansour et al. Allocating data to multicomputer nodes by physical optimization algorithms for loosely synchronous computations
CN108198084A (zh) 一种复杂网络重叠社区发现方法
Golub et al. A new model of global parallel genetic algorithm
Zhu et al. Optimal schedule for agricultural machinery using an improved Immune-Tabu Search Algorithm
CN117151482A (zh) 一种基于多目标优化的应急物资调度和路径规划方法
Sergienko et al. Problems of discrete optimization: Challenges and main approaches to solve them
CN101894063A (zh) 一种用于微处理器功能验证的测试程序生成方法及装置
CN115001978B (zh) 一种基于强化学习模型的云租户虚拟网络智能映射方法
Gao et al. The multi-objective cloud tasks scheduling based on hybrid particle swarm optimization
CN115270921A (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