本发明属于人工智能硬件领域,尤其涉及低延时低能耗脉冲神经网络处理器。
背景技术:
1、相比于一般的人工神经网络(artificial neural network,ann),脉冲神经网络(spiking neural network,snn)采用更接近大脑的神经元模型来模拟大脑中的脉冲发放机制,基于该算法实现的硬件在降低能耗方面展现出巨大的发展潜力。然而,snn难以在硬件上采用高数据重用和并行处理的数据流。这是由于snn以不规则的脉冲序列在神经元之间进行信息传递,而且单个序列中存在时间依赖关系,即时空稀疏特性。这使得硬件在执行snn算法时,难以对网络参数进行高效的时空部署,最终导致计算过程中存在大量重复的数据访问,大幅增加了硬件能耗。此外,snn中单个神经元的状态需要在特定的几个计算周期后才能完成更新,延长硬件执行时间。
2、目前,一些研究人员通过并行计算的方式缩短神经元状态更新时间,并在此基础上实现多个神经元的并行计算,以此加速硬件执行过程,但这类方法对数据的重用比较局限,并且需要复杂的控制机制。有研究人员提出数据索引与特定数据流结合的方法,这在一定程度上提高了膜电位的重用和多个神经元计算的并行性,但在面临卷积运算中大量的输入、权重以及部分和的数据重用问题时,其优化方法仍存在不足。不能充分利用snn中的时空稀疏特性,使得目前的snn处理器需要依靠极高的输入稀疏度才能凸显其低能耗的优势,然而,这会导致算法的准确率大幅降低,难以完成既定任务的准确率目标。
技术实现思路
1、有鉴于此,本发明提供了一种低延时低能耗脉冲神经网络处理器,以解决现有处理器因对snn的稀疏性利用不充分、导致无法有效减少数据重用并以此加速计算过程、实现低延时低能耗硬件部署的技术问题。
2、为解决上述问题,本发明采用如下技术方案:
3、一种低延时低能耗脉冲神经网络处理器,包括存储单元、权重变换单元、脉冲解码单元、脉冲计算阵列、脉冲转换单元、脉冲编码压缩单元和主控制器;
4、所述存储单元用于存储低延时低能耗脉冲神经网络处理器外部输入和本地产生的数据。外部输入包括网络模型的初始权重和编码脉冲。初始权重为以定点数的格式进行存储的权重数据,编码脉冲为经过压缩后的脉冲序列;本地产生的数据包括脉冲计算阵列计算过程中产生的膜电位中间结果、以及整个网络模型计算得到的最终结果,都以定点数的格式进行存储。
5、所述权重变换单元接收存储单元发送的权重数据,根据权重数据的定点方式、以及神经元的脉冲发放阈值对初始权重进行移位扩展变换;变换后的结果后续将进入脉冲计算阵列与解码后的脉冲序列完成膜电位的计算与更新。
6、所述脉冲解码单元,用于接收存储单元发送的的编码脉冲,并对其进行解压缩处理,得到的索引信息和脉冲序列;将索引信息发送至主控制器,在主控制器的调度下将脉冲序列发送至脉冲计算阵列;
7、所述脉冲计算阵列,用于接收脉冲解码单元发送的脉冲序列和权重变换单元移位扩展变换后的权重,结合预设脉冲序列时间宽度,完成批量脉冲和变换后权重的计算;时间宽度是指时间窗长。每个脉冲计算单元并行处理单个脉冲序列中的所有脉冲,在单个时钟周期内即可完成单个神经元所有时间步的膜电位更新计算。若脉冲计算阵列已计算出单层网络最终的膜电位,则发送该计算结果至脉冲转换单元;若脉冲计算阵列计算所得只是中间过程值,且当前脉冲计算阵列存储容量不足以支持在本地完成进一步更新,则发送该计算结果至存储单元进行存储,后续将取出直接送至脉冲计算阵列完成最终的计算结果;若脉冲计算阵列已计算出整个网络的最终结果,则将其直接发送至存储单元,最终发送至外部进行处理。
8、所述脉冲转换单元,采用并行处理的方式将收到的膜电位转化为脉冲序列发送至脉冲编码压缩单元;其中,膜电位为定点数表示的数据,脉冲序列则是以多个二进制值表示的一串数据。
9、所述脉冲编码压缩单元,对收到的脉冲序列进行数据压缩后,发送至存储单元进行存储;脉冲编码压缩单元对收到脉冲序列进行数据压缩的过程剔除了不再参与计算的脉冲序列,以减少数据的存储;不再参与计算的脉冲序列包括不足以达到神经元的最小脉冲发放阈值和完全不发脉冲两种类型的序列;剩余留存的脉冲序列则被附加索引信息,处理后的数据将发送至存储单元进行存储,后续取出以完成剩余网络层的计算。
10、所述主控制器,与上述各模块互联,用于获取上述各模块的状态,根据获取的各模块状态生成相应的控制指令,以控制各模块完成数据调度与计算;具体的:通过控制存储单元,向权重变换单元发送初始定点的权重数据完成权重转换,向脉冲解码单元发送压缩编码脉冲数据完成脉冲索引信息和脉冲序列的提取;根据索引信息控制计算阵列内输入脉冲序列、权重以及计算过程值的调度,以协调脉冲计算阵列、脉冲转换单元和脉冲编码压缩单元完成整个网络模型的计算任务。
11、进一步的,所述权重转换单元在进行移位扩展变换时,根据当前层网络采用的权重定点方式和神经元发放脉冲阈值进行处理,即每层网络采用的权重定点方式及神经元阈值均不相同。
12、进一步的,所述脉冲转换单元采用fs神经元模型,且每个时间步所采用阈值的组合是一个首项为2的幂次,公比为1/2,长度等于脉冲时间窗长的等比数列。
13、进一步的,所述的脉冲计算阵列根据当前层网络采用的脉冲时间窗长完成计算,每层网络采用的时间窗长可不相同,并且对于单个脉冲序列,只有在0时刻到时间窗长内的脉冲参与计算,在这段时间外产生的脉冲不作处理。
14、进一步的,所述脉冲计算阵列和脉冲转换单元之间还设有多路选择器,该选择器在主控制器控制下,根据索引信息选择阵列某条或某几条总线上的数据送入脉冲转换单元进行处理。
15、本发明是基于fs神经元模型,利用定点数据在硬件中表示的原理,将膜电位到脉冲的转换转变为特定位置上的数据位提取,并将脉冲到膜电位的更新转换为可并行处理的移位加法,使得snn的时空稀疏特性在硬件上被更加充分的利用。整个计算过程只有移位和加法,大幅减少计算复杂度,实现了批量神经元的并行处理,可大幅减少计算延迟。在算法准确率得以保证,即在算法对输入稀疏度无特殊要求的情况下,实现了低延时低能耗的脉冲神经网络处理器。
16、与现有的技术相比,本发明具有以下有益效果:
17、1)结合fs神经元模型和定点量化原理,将膜电位到脉冲转换中的减法和比较计算转变为特定数据位的提取,大幅减少计算量,提升转换速度。减少了硬件计算能耗和延迟。
18、2)通过将神经元脉冲发射阈值设定为2的幂次,将脉冲到膜电位的转换转变为并行的移位加法,可减少数据读取次数,降低计算复杂度,最终提升计算速度,减少硬件的访存能耗和计算能耗。
19、3)充分利用snn的时空稀疏特性,将具有时间依赖性的脉冲序列压缩成可并行处理的数据,减少计算过程数据的读取次数,提升数据调度效率,可实现高数据重用和并行处理的数据流。
1.一种低延时低能耗脉冲神经网络处理器,包括存储单元、权重变换单元、脉冲解码单元、脉冲计算阵列、脉冲转换单元、脉冲编码压缩单元、以及主控制器,其特征在于:
2.根据权利要求1所述的一种低延时低能耗脉冲神经网络处理器,其特征在于:所述脉冲编码压缩单元对收到脉冲序列进行数据压缩的过程还包括:剔除不再参与计算的脉冲序列,以减少数据的存储;不再参与计算的脉冲序列包括不足以达到神经元的最小脉冲发放阈值和完全不发脉冲两种类型的序列。
3.根据权利要求1所述的一种低延时低能耗脉冲神经网络处理器,其特征在于:所述权重转换单元在进行移位扩展变换时,根据当前层网络采用的权重定点方式和神经元发放脉冲阈值进行处理,即每层网络采用的权重定点方式及神经元阈值均不相同。
4.根据权利要求1所述的一种低延时低能耗脉冲神经网络处理器,其特征在于:所述脉冲转换单元采用fs神经元模型,且每个时间步所采用阈值的组合是一个首项为2的幂次,公比为1/2,长度等于脉冲时间窗长的等比数列。
5.根据权利要求1所述的一种低延时低能耗脉冲神经网络处理器,其特征在于:所述的脉冲计算阵列根据当前层网络采用的脉冲时间窗长完成计算,即每层网络采用的时间窗长不相同,且对于单个脉冲序列,仅计算在0时刻到时间窗长内的脉冲。
6.根据权利要求1至5任一项所述的一种低延时低能耗脉冲神经网络处理器,其特征在于:所述脉冲计算阵列和脉冲转换单元之间还设有多路选择器,该选择器在主控制器控制下,根据索引信息选择阵列某条或某几条总线上的数据送入脉冲转换单元进行处理。
