一种脉冲神经网络计算负载的通信稀疏化方法技术

技术编号:28558552 阅读:17 留言:0更新日期:2021-05-25 17:52
本发明专利技术提供一种脉冲神经网络计算负载的通信稀疏化方法,其有效解决了分布式平台通信效率可扩展性问题,随着分布式计算平台中计算节点的逐渐增加,有效的解决了计算效率逐渐下降的问题。在本专利的技术方案中,基于重分布操作将神经元重新分布在每个节点上,每个节点上分配的神经元在此节点中拥有最多的突触后神经元,节点与节点之间基于非阻塞通信模式,每次通信过程中,每个节点都将脉冲数据异步发送给其所有的目标节点,并等待接收其源节点发送的脉冲,即,每个节点只发送必要的数据给本次通信的目标节点,而不会与非目标节点通信,避免与非相邻进程交流。

【技术实现步骤摘要】
一种脉冲神经网络计算负载的通信稀疏化方法
本专利技术涉及深度学习
,具体为一种脉冲神经网络计算负载的通信稀疏化方法。
技术介绍
随着深度学习领域的发展,出现了越来越多的大脑神经计算科学的研究工作,希望通过解析大脑工作机理,发展类脑计算来克服现有深度学习的不足。类脑计算的基础是脉冲神经网络(SNN,SpikingNeuralNetwork),与传统的深度神经网络(DNN,DeepNeuralNetwork)相比,SNN的工作机理更接近于生物大脑。而为了获得最佳的计算能力,为了更接近于大脑计算规模,现有技术中大多通过构建大规模集群形成分布式计算平台来进行类脑计算。然而随着计算节点的增多,分布式集群中硬件节点和硬件节点之间的通信时间所占比例越来越大,而计算节点中有效计算的比例逐渐下降,即,随着分布式计算平台中计算节点的逐渐增加,SNN的计算效率逐渐下降。对于这个问题,技术人员也在各个角度进行尝试解决。比如,常见的冲神经网络模型的仿真器NEST中采用了“缓冲区动态相等”的方法来解决计算效率下降的问题。在NEST模拟环境中,各节点无需通信,直接动态保持发送缓冲区。此方法由于不需要对缓冲区大小进行通信,因此对于通信时间进行了一定程度的优化,但是在能耗方面表现得比较差,导致产生了新的问题:NEST通信能耗随着节点的增加迅速上升,使得NEST在通信能耗方面可扩展性比较差。
技术实现思路
为了解决分布式计算平台中随着计算节点的增加,SNN的计算效率逐渐下降的问题,本专利技术提供一种脉冲神经网络计算负载的通信稀疏化方法,其有效解决了分布式平台通信效率可扩展性问题,随着分布式计算平台中计算节点的逐渐增加,有效的解决了计算效率逐渐下降的问题。本专利技术的技术方案是这样的:一种脉冲神经网络计算负载的通信稀疏化方法,其包括以下步骤:S1:基于分布式系统架构,构架脉冲神经网络;其特征在于,其还包括以下步骤:S2:遍历所述脉冲神经网络,找到所有的节点和神经元,以及神经元连接表;S3:对每个所述节点上的所述神经元进行重分布操作;所述重分布操作确保每个节点上分配的神经元在此节点中拥有最多的突触后神经元;S4:按照所述重分布操作后的所述节点、每个所述节点上分配的所述神经元,创建突触;S5:进入通信阶段后,每次通信开始前,每个所述节点与其他节点进行交流,得到本次通信中自身的所有的源节点、目标节点的信息;S6:每个所述节点都将脉冲数据异步发送给其所有的目标节点,并等待接收其源节点发送的脉冲;通信过程中,所有的所述节点基于非阻塞通信模式,与其所述源节点、所述目标节点进行通信;S7:所述节点与其所述有的源节点、目标节点的通信结束之后,本次通信阶段结束。其进一步特征在于:步骤S3中,所述重分布操作包括以下步骤:a1:将所有的节点放入节点集合中,将所有的神经元放入神经元集合中;a2:从所述节点集合中选取一个节点,设为当前节点后,在所述节点集合中去掉所述当前节点;a3:从所述神经元集合中选取一个神经元,设为当前神经元;a4:将所述当前神经元分布到所述当前节点上;在所述神经元集合中去掉所述当前神经元;a5:确认所述当前节点是否达到了最大容纳量;如果没有达到最大容量则执行步骤a6;否则执行步骤a8;a6:基于所述神经元连接表,在所述神经元集合中找到其突触后神经元在节点中分布最多的那个神经元,记做待分布神经元;a7:将所述待分布神经元分布到所述当前节点上,在所述神经元集合中去掉所述待分布神经元;循环执行步骤a5~a7;a8:确认所述节点集合中是否还有未分布神经元的节点;如果存在,则循环执行步骤a2~a8;否则,记录所有的分布结果,结束本次重分布操作;步骤S1中,构架脉冲神经网络时,无需创建具体的突触,只需要构建神经元之间的连接,可以得到所述神经元连接表即可;步骤S3中的所述重分布操作,在任意一个所述节点上运行,操作结束后,将所述重分布操作的分布结果发送给其他节点;所述重分布操作的内存使用计算方式:M=N*Mint*(2N+1)其中:M表示总内存,N表示神经元总数量,Mint表示int型参数占用内存。本专利技术提供的一种脉冲神经网络计算负载的通信稀疏化方法,基于重分布操作将神经元重新分布在每个节点上,每个节点上分配的神经元在此节点中拥有最多的突触后神经元,从而降低了跨节点脉冲的产生,使得跨硬件节点之间的连接变得稀疏,从而节点间通信减少,降低了分布式集群中硬件节点和硬件节点之间的通信时间,提高了SNN的计算效率;节点与节点之间基于非阻塞通信模式,每次通信过程中,每个节点都将脉冲数据异步发送给其所有的目标节点,并等待接收其源节点发送的脉冲,即,每个节点只发送必要的数据给本次通信的目标节点,而不会与非目标节点通信,避免与非相邻进程交流,进一步优化了节点之间的通信效率;同时,经过重分布操作后重新分布了神经元到每个节点上,SNN模型每一轮神经元产生的脉冲减少,因此减少了点对点通信的发生,并且只需要发送目标进程所需的脉冲数据,所以改善了集体通信带来的通信能耗可扩展性差的问题。附图说明图1为本专利中重分布操作的流程示意图;图2为基于NEST仿真器实现本专利技术方案的流程示意图;图3为现有技术中并行SNN连通结构示意图;图4为现有技术中节点之间的通信方式示意图;图5为本专利中SNN子图结构示意图;图6为基于皮质微电路模型运行本专利技术方案的结果:仿真时间;图7为基于皮质微电路模型运行本专利技术方案的结果:通信时间;图8为基于皮质微电路模型运行本专利技术方案的结果:通信数据量;图9为基于皮质微电路模型运行本专利技术方案的结果:本专利技术方案运行耗时;图10为基于皮质微电路模型运行本专利技术方案的结果:神经元到节点的连接数量比较。具体实施方式本专利中的一种脉冲神经网络计算负载的通信稀疏化方法,如图2所示以NEST仿真器作为SNN负载表征模拟工具,详细介绍本专利技术方案的实现步骤。S1:基于分布式系统架构,构架脉冲神经网络;构架脉冲神经网络时,无需创建具体的突触,只需要构建神经元之间的连接,可以得到神经元连接表即可。S2:遍历脉冲神经网络,找到所有的节点和神经元,以及神经元连接表。在NEST上应用本专利技术方案时,Create只需要得到神经元之间的连接情况;在Connect的时候不会创建具体的突触对象,只是通过所有连接得到一个连接表。S3:对每个节点上的神经元进行重分布操作;重分布操作确保每个节点上分配的神经元在此节点中拥有最多的突触后神经元。在NEST上,调用仿真函数初始化仿真的时候根据连接表进行神经元的重分布处理,之后再创建突触和运行仿真过程。即,在Simulate中初始化的时候会调用Red本文档来自技高网...

【技术保护点】
1.一种脉冲神经网络计算负载的通信稀疏化方法,其包括以下步骤:/nS1:基于分布式系统架构,构架脉冲神经网络;/n其特征在于,其还包括以下步骤:/nS2:遍历所述脉冲神经网络,找到所有的节点和神经元,以及神经元连接表;/nS3:对每个所述节点上的所述神经元进行重分布操作;/n所述重分布操作确保每个节点上分配的神经元在此节点中拥有最多的突触后神经元;/nS4:按照所述重分布操作后的所述节点、每个所述节点上分配的所述神经元,创建突触;/nS5:进入通信阶段后,每次通信开始前,每个所述节点与其他节点进行交流,得到本次通信中自身的所有的源节点、目标节点的信息;/nS6:每个所述节点都将脉冲数据异步发送给其所有的目标节点,并等待接收其源节点发送的脉冲;通信过程中,所有的所述节点基于非阻塞通信模式,与其所述源节点、所述目标节点进行通信;/nS7:所述节点与其所述有的源节点、目标节点的通信结束之后,本次通信阶段结束。/n

【技术特征摘要】
1.一种脉冲神经网络计算负载的通信稀疏化方法,其包括以下步骤:
S1:基于分布式系统架构,构架脉冲神经网络;
其特征在于,其还包括以下步骤:
S2:遍历所述脉冲神经网络,找到所有的节点和神经元,以及神经元连接表;
S3:对每个所述节点上的所述神经元进行重分布操作;
所述重分布操作确保每个节点上分配的神经元在此节点中拥有最多的突触后神经元;
S4:按照所述重分布操作后的所述节点、每个所述节点上分配的所述神经元,创建突触;
S5:进入通信阶段后,每次通信开始前,每个所述节点与其他节点进行交流,得到本次通信中自身的所有的源节点、目标节点的信息;
S6:每个所述节点都将脉冲数据异步发送给其所有的目标节点,并等待接收其源节点发送的脉冲;通信过程中,所有的所述节点基于非阻塞通信模式,与其所述源节点、所述目标节点进行通信;
S7:所述节点与其所述有的源节点、目标节点的通信结束之后,本次通信阶段结束。


2.根据权利要求1所述一种脉冲神经网络计算负载的通信稀疏化方法,其特征在于:步骤S3中,所述重分布操作包括以下步骤:
a1:将所有的节点放入节点集合中,将所有的神经元放入神经元集合中;
a2:从所述节点集合中选取一个节点,设为当前节点后,在所述节点集合中去掉所述当前节点;
a3:从所述神经元集合中选取一个神经元...

【专利技术属性】
技术研发人员:柴志雷刘家航王涛白云王皓洋尤佳
申请(专利权)人:苏州蓝甲虫机器人科技有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1