当前位置: 首页 > 专利查询>南京大学专利>正文

一种基于脉冲神经网络的无乘法卷积调度器及其硬件实现方法技术

技术编号:29304649 阅读:16 留言:0更新日期:2021-07-17 01:42
本发明专利技术提出一种基于脉冲神经网络的无乘法卷积调度器及其硬件实现方法,利用SNN基于事件驱动的特性,通过硬件来实现SNN中的卷积计算,为图像分割中的SNN提出了一种有效的卷积调度方法;该方法通过FIFO缓存输入的神经元状态,并送入“1”过滤器实现有效状态的过滤,避免无效状态参与计算,提高计算效率,且无需乘法计算;根据数据流特点,特殊考虑并行存储结构,使用较少的存储资源达到并行存储,以适配计算单元的高并行算力;计算过程中每个time step的结果原位存回,提高存储资源利用率;最终可实现基于脉冲神经网络任意规格输入的3

A multiplier free convolution scheduler based on pulse neural network and its hardware implementation

【技术实现步骤摘要】
一种基于脉冲神经网络的无乘法卷积调度器及其硬件实现方法


[0001]本专利技术涉及卷积神经网络算法领域,尤其涉及一种基于脉冲神经网络的无乘法卷积调度器及其硬件实现方法。

技术介绍

[0002]近年来,神经网络的复杂度逐渐增加,传统的人工神经网络(ANN)通常具有巨大量参数,需要参与矩阵乘法计算,导致其在硬件平台上实施时会消耗巨大的内存和功耗;与传统ANN相比,受生物脑启发的脉冲神经网络(SNN)直接在硬件中重新激活神经元,具有数千个突触,这些神经元之间的尖峰连接是二进制的,这意味着不需要乘法,仅通过加法即可完成运算,同时脉冲神经网络基于事件驱动,可利用被激活神经元的稀疏性来追求更高的效率和更低的功耗。
[0003]对于脉冲神经网络(SNN)来说,每个神经元对应一个膜电位,它基于时间步长进行更新,在每个步长内,神经元的输入是前一层神经元的spike激活信号,通过计算一个kernel卷积核中有效神经元所对应的权重和,可得到新的神经元膜电位,当膜电位达到一个阈值时,神经元会被激活并向其后继神经元输出一个spike激活信号。
[0004]利用SNN的优势,通过硬件来实现高效的SNN生物模型逐渐成为研究热点,然而使用当前的CPU或GPU体系结构执行SNN效果并理想,与CPU所提供的架构相比,SNN需要具有更高并行度的架构,GPU虽可实现高并行计算,但不适用于事件驱动的计算模式;同时,虽然SNN可通过减少等待时间和计算量达到更高效率,但是它需要跨多个time step接收和处理输入数据,重复的数据访问会导致吞吐量不高;此外,SNN被激活神经元具有稀疏性,它的数据存储结构以及控制流也需要特殊考虑。

技术实现思路

[0005]专利技术目的:旨在克服以上现有技术的不足,提出一种基于脉冲神经网络的无乘法卷积调度器及其硬件实现方法。通过FIFO缓存输入的神经元状态,并送入“1”过滤器实现有效状态的过滤,避免无效状态参与计算,提高计算效率,且无需乘法计算;根据数据流特点,特殊考虑并行存储结构,使用较少的存储资源达到并行存储,以适配计算单元的高并行算力;计算过程中每个time step的结果原位存回,提高存储资源利用率;最终可实现基于脉冲神经网络任意规格输入的3
×
3卷积计算,并支持64路并行计算。
[0006]技术方案:一种基于脉冲神经网络的无乘法卷积调度器,包括处理器,外部DDR存储器,硬件加速器,其中硬件加速器包括卷积控制器,存储单元和计算单元;其中,所述卷积控制器负责对处理器的指令进行解码,控制卷积计算的整体执行,从存储单元读数写数,管理计算单元的输入输出,并据此更新神经元状态;所述存储单元包括三个独立部分,分别存储神经元状态(NeuronState),膜电位(Vmem)和突触权重(Weight);
所述计算单元承担了大部分计算任务,负责计算前一层有效神经元发射的尖峰信号,据此判断当前层神经元是否被激活,最终更新神经元状态。
[0007]在进一步的实施例中,所述基于脉冲神经网络的无乘法卷积调度器高效硬件实现方法的进一步设计在于,卷积控制器管理计算单元的输入输出,只考虑被激活神经元对后一层神经元的影响,控制未激活神经元不参与计算,从而有效节省计算时间。
[0008]在进一步的实施例中,所述基于脉冲神经网络的无乘法卷积调度器高效硬件实现方法的进一步设计在于,卷积控制器控制卷积计算的整体执行:首先将一个kernel对应的神经元状态按序读入FIFO中;然后将FIFO中的数送入“1”过滤器,过滤出状态值为1的神经元在kernel中对应的index,将其解码为权重地址;接着根据权重地址从存储单元取对应的Weight和Vmem值;最后送入计算单元计算,并将Vmem和State结果原位存回。
[0009]在进一步的实施例中,所述基于脉冲神经网络的无乘法卷积调度器高效硬件实现方法的进一步设计在于,使用一块较小的RAM,特殊考虑NeuronState的存储结构,最终可 8路并行取出1个kernel中的一层NeuronState,通过三级缓存可在1个周期取出kernel中所有的NeuronState,存入FIFO中,实现流水取数。
[0010]在进一步的实施例中,所述基于脉冲神经网络的无乘法卷积调度器高效硬件实现方法的进一步设计在于,FIFO中每个位置缓存了N个神经元状态,其中N是1个kernel对应的权重个数,“1”代表神经元被激活,M是kernel中被激活神经元的个数,利用“1”过滤器,可在M个周期内过滤出M个
“ꢀ
1”状态神经元对应的index,处理速度是传统CNN的N/M倍,针对稀疏性的高效数据流,即N/M很大,可得到很好的优化效果。
[0011]在进一步的实施例中,所述基于脉冲神经网络的无乘法卷积调度器高效硬件实现方法的进一步设计在于,卷积模块采用64路并行计算,支持任意规格输入的3
×
3卷积计算,8路控制器控制计算8行卷积结果,同时每路控制器负责计算8个channel的结果,1个channel代表卷积结果的1个通道;每个channel共享相同输入NeuronState,对应不同的权重。
[0012]在进一步的实施例中,所述基于脉冲神经网络的无乘法卷积调度器高效硬件实现方法的进一步设计在于,Vmem和Weight需要8路并行存储,以适配计算单元的高并行算力;Vmem数据按行依次存放在编号0~7的RAM中,计算时可同时提供8行源数据,同时每个RAM从高到低依次存放1~8通道的Vmem结果,若通道数大于8,则在存完1~8通道结果后,继续存9~16通道,以此类推。
[0013]在进一步的实施例中,所述基于脉冲神经网络的无乘法卷积调度器高效硬件实现方法的进一步设计在于,Weight规格为3
×3×
InC,其中InC是输入层的通道数,每一层的结果共享相同的权重,共有OutC个3
×3×
InC规格的权重,其中OutC为结果通道数;每个RAM从高到低依次存放第1~8个的Weight值,若OutC大于8,则继续往下存。
[0014]综上,所述基于脉冲神经网络的无乘法卷积调度器高效硬件实现方法,包括如下步骤:步骤1、将一个kernel对应的NeuronState按下一层结果顺序存入FIFO中;步骤2、将FIFO中的数送入“1”过滤器,并解码出有效权重的地址,过滤完成后再取下一个数;步骤3、接着根据解码地址从存储单元取对应的Weight和Vmem值;
步骤4、将Weight和Vmem送入计算单元,并将计算结果Vmem和NeuronState原位存回存储单元。
[0015]有益效果:第一,卷积控制器可实现NeuronState的流水取数,通过NeuronState并行存储以及缓存的方式,可在1拍将一个kernel对应全部的State存入FIFO中,大大减少数据搬运所耗时间,提高数据吞吐率;第二,利用过滤器进行“1”的过滤,利用被激活神经元的稀疏性控制未激活神经元不参与计算,从而有效节省计算时间本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于脉冲神经网络的无乘法卷积调度器,其特征在于,包括:处理器;存储单元,包括至少一组用于存储神经元状态的第一存储区,至少一组用于存储膜电位的第二存储区,以及至少一组用于存储突触权重的第三存储区;卷积控制器,用于对所述处理器的指令进行解码,控制卷积计算的整体执行;所述卷积控制器从所述存储单元读数写数,管理计算单元的输入输出,并据此更新神经元状态;计算单元,与所述卷积控制器电性连接,用于计算前一层有效神经元发射的尖峰信号,据此判断当前层神经元是否被激活,最终更新神经元状态。2.根据权利要求1所述的一种基于脉冲神经网络的无乘法卷积调度器,其特征在于,所述膜电位和突触权重至少以8路并行存储;所述膜电位数据按行依次存放在编号0~7的RAM中,同时每个RAM从高到低依次存放1~8通道的膜电位结果,若通道数大于8,则在存完1~8通道结果后,继续存9~16通道,以此类推。3.根据权利要求1所述的一种基于脉冲神经网络的无乘法卷积调度器,其特征在于,突触权重规格为3
×3×
InC,其中InC是输入层的通道数,每一层的结果共享相同的权重,共有OutC个3
×3×
InC规格的权重,其中OutC为结果通道数;每个RAM从高到低依次存放第1~8个的突触权重值,若OutC大于8,则继续往下存。4.根据权利要求1所述的一种基于脉冲神经网络的无乘法卷积调度器,其特征在于,所述卷积控制器采用至少...

【专利技术属性】
技术研发人员:李丽徐瑾傅玉祥陈沁雨王心沅沈思睿李伟何书专
申请(专利权)人:南京大学
类型:发明
国别省市:

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

1