1、第5 7卷 第1期2 0 2 3年1月西 安 交 通 大 学 学 报J OUR NA LO FX IANJ I AO T ON GUN I V E R S I T YV o l.5 7 N o.1J a n.2 0 2 3.*用于图像识别的高能效脉冲神经网络加速器设计张剑1,刘佳2,万贤杰2,俞宙2,韩传余1,张国和1(1.西安交通大学电子与信息学部,7 1 0 0 4 9,西安;2.中国电子科技集团第二十四研究所,4 0 0 0 6 0,重庆)摘要:针对基于通用处理器解决方案在图像识别应用中速度慢、功耗高的问题,提出了一种高能效的脉冲神经网络加速器设计方案。首先,采用神经形态学计算中的高并行
2、设计思想,设计了多核并行结构来实现硬件加速;然后,根据脉冲数据传输稀疏性的特点,采用基于事件驱动的数据传输与处理方式,设计了一对一的核间传输机制,减小了用于通信的硬件资源并提高了数据传输效率;其次,提出了按行的数据存放方式来加快膜电压数据在存储器的存取效率;最后,设计了结合查找表与异或的电路结构,可以快速的将事件向量转变为地址事件表达(A E R)格式。采用所提加速器设计方案在现场可编程逻辑门阵列(F P G A)开发板上进行优化和部署。实验结果表明:当时钟频率采用1 0 0MH z时,识别单张手写数字图像所需能量为1.0 4m J,仅为2.2GH z通用中央处理器(C P U)上的串行软件程
3、序的1/1 4 5 3.8。该加速器设计方案适用于实时性要求高和能量受限的实际场景。关键词:图像识别;脉冲神经网络;加速器;并行结构中图分类号:TM 3 0 1 文献标志码:AD O I:1 0.7 6 5 2/x j t u x b 2 0 2 3 0 1 0 2 0 文章编号:0 2 5 3-9 8 7 X(2 0 2 3)0 1-0 2 1 1-1 0D e s i g no fH i g hE n e r g yE f f i c i e n tS p i k i n gN e u r a lN e t w o r kA c c e l e r a t o rf o r I m a g
4、 eR e c o g n i t i o nZ HANGJ i a n1,L I UJ i a2,WANX i a n j i e2,YUZ h o u2,HANC h u a n y u1,Z HANGG u o h e1(1.F a c u l t yo fE l e c t r o n i ca n dI n f o r m a t i o nE n g i n e e r i n g,X ia nJ i a o t o n gU n i v e r s i t y,X ia n7 1 0 0 4 9,C h i n a;2.N o.2 4I n s t i t u t e,C h i
5、 n aE l e c t r o n i c sT e c h n o l o g yG r o u pC o r p o r a t i o n,C h o n g q i n g4 0 0 0 6 0,C h i n a;)A b s t r a c t:Ah i g he n e r g ye f f i c i e n c ys p i k i n gn e u r a l n e t w o r k(S NN)a c c e l e r a t o r i sp r o p o s e d t o s o l v et h ep r o b l e m so f l o w-s p
6、 e e da n dh i g h-p o w e r c o n s u m p t i o n i n i m a g e r e c o g n i t i o na p p l i c a t i o nb a s e do nt h eg e n e r a l p r o c e s s o r.F i r s t l y,am u l t i-c o r ep a r a l l e l s t r u c t u r e i sd e s i g n e df o rh a r d w a r ea c c e l e r a-t i o nb ya d o p t i n
7、g t h e c o n c e p t o f h i g hp a r a l l e l d e s i g n i nn e u r o m o r p h i c c o m p u t a t i o n.S e c o n d l y,c o n-s i d e r i n gt h e s p a r s i t yo f s p i k ed a t a t r a n s m i s s i o n,t h eo n e-t o-o n e i n t e r-c o r e t r a n s m i s s i o nm e c h a n i s mi sd e s
8、 i g n e db a s e do ne v e n t-d r i v e nd a t at r a n s m i s s i o na n dp r o c e s s i n g,w h i c hr e d u c e st h eh a r d w a r er e s o u r c e su s e df o rc o mm u n i c a t i o na n d i m p r o v e s t h ed a t a t r a n s m i s s i o ne f f i c i e n c y.T h i r d l y,ad a t aa r r a
9、 n g e m e n ts c h e m e i sp r o p o s e d t os p e e du p t h e a c c e s s e f f i c i e n c yo fm e m b r a n e i nm e m o r y.F i n a l-l y,ac i r c u i t s t r u c t u r ec o m b i n i n g l o o k u p sa n dX O Ri sd e s i g n e d,w h i c hc a nq u i c k l yt r a n s f o r mt h ee v e n tv e
10、c t o r s i n t oa d d r e s s-e v e n t-r e p r e s e n t(A E R)f o r m a t.T h ep r o p o s e dd e s i g ni so p t i m i z e da n di m p l e m e n t e do n t h e f i e l dp r o g r a mm a b l e l o g i cg a t e a r r a y(F P GA)d e v e l o p m e n t b o a r d.T h e e x p e r i-*收稿日期:2 0 2 2-0 7-2
11、9。作者简介:张剑(1 9 8 9),男,博士生;张国和(通信作者),男,教授,博士生导师。基金项目:国家自然科学基金资助项目(6 2 1 7 4 1 3 0);国防基础加强项目(2 0 1 9-J C J Q-J J-5 6 6)。网络出版时间:2 0 2 2-0 9-0 6 网络出版地址:h t t p s:/k n s.c n k i.n e t/k c m s/d e t a i l/6 1.1 0 6 9.T.2 0 2 2 0 9 0 5.1 4 2 9.0 0 8.h t m l西 安 交 通 大 学 学 报第5 7卷 h t t p:z k x b.x j t u.e d u.
12、c n m e n t a l r e s u l t ss h o wt h a tw h e n t h e c l o c k f r e q u e n c y i s 1 0 0MH z,t h e e n e r g y r e q u i r e d t o r e c o g n i z e ah a n d w r i t t e nd i g i t a l i m a g e i s1.0 4m J,w h i c h i so n l y1/14 5 3.8o f t h es e r i a l s o f t w a r ep r o g r a mo nt h e
13、2.2GH zu n i v e r s a l c e n t r a l p r o c e s s i n gu n i t(C P U).T h ep r o p o s e da c c e l e r a t o rd e s i g ns c h e m e i ss u i t a b l e f o r t h er e a l s c e n a r i o sw i t hh i g hr e a l-t i m er e q u i r e m e n t sa n d l i m i t e de n e r g y.K e y w o r d s:i m a g e
14、r e c o g n i t i o n;s p i k i n gn e u r a ln e t w o r k;a c c e l e r a t o r;p a r a l l e l a r c h i t e c t u r e 随着万物互联的快速发展,在近数据端移动设备上进行高能效的数据分析可以解决数据传输至云端导致的高延时、高传输带宽和低安全性等问题。最流行的深度学习具有较大的计算量和高能耗的缺点,使其不能有效部署至边缘设备上1。因此,高能效的类脑智能计算逐渐受到众多学者的关注,对其的研究不仅可以解决实际问题,比如图像识别2和故障检测3等,还可以以另一种方式来侧面了解生物学大
15、脑。脉冲神经网络(S NN)作为生物学启发的类脑神经网络4,通过模拟大脑神经元和采用生物神经元之间的信息传输方式,具有高能效和硬件友好的优点5。尽管脉冲神经网络的应用比如对图像传感器采集的图像进行识别可以在基于冯诺依曼结构的软件模型中实施,但是软件仿真普遍以串行的方式进行处理,处理速度慢导致不能完成数据的实时分析,并且通用处理器具有体积大、能耗高等缺陷,限制了其在能耗和空间体积受限环境中的使用。为了获得实时低能耗的图像识别解决方案,有必要设计专用的硬件电路来替代基于通用处理器的软件仿真。脉冲神经网络的专用硬件电路设计通常分为模拟电路和数字电路两种实现方式。悉尼大学的S c h a i k和瑞士
16、苏黎世大学的M i t r a分别设计了模拟电路6-7来实现类生物学神经元功能,但是模拟电路具有对电压温度等环境敏感的缺点,针对不同的应用条件需要对参数进行调整。数字电路由于对工艺节点不敏感等原因,更适合大规模的设计集成。数字电路的实现平台包括高灵活性的现场可编程逻辑门 阵 列(F P GA)和 高 性 能 的 专 用 集 成 电 路(A S I C)。I BM公 司 的T r u e N o r t h芯 片8是 基 于A S I C的脉冲神经网络加速器,支持上百万个神经元并行工作。浙江大学的“达尔文”芯片9是一款支持可配置的神经形态学协处理器,专为资源受限的嵌入式应用所设计。曼彻斯特大学的
17、S p i NN a k e r芯片1 0利用A RM核来实现脉冲神经网络的可编程性,支持高并行和高配置性的神经元处理。清华大学团 队 开 发 研 制 的“天 机 芯”1 1支 持S NN和ANN的混合芯片结构,并在自行车上成功进行了无人驾驶的试验。斯坦福大学的设计的N e u r o G r i d芯片1 2,只需要5W的能量即可模拟上百万的神经元实现对哺乳动物大脑皮层工作机制的研究。上述设计优先考虑的是设计的通用性和神经元的大规模实现,复杂的通信系统需要高硬件资源和高通信带宽。电子科技大学的周军团队提出了一款可配置S NN处理器1 3,通过采用多对多通信的路由电路来控制脉冲数据的分发与传输
18、,具有低能耗高速度的优势,并在F P GA上进行了验证。作为一种可编程设 备,F P GA支 持 互 补 金 属 氧 化 物 半 导 体(CMO S)数字逻辑的灵活开发与设计,具有丰富的计算资源和比A S I C更快的开发周期。另外,在F P GA上成功进行验证与实现也是完成低能耗的A S I C芯片前的重要一步。本文的设计方案结合F P GA的特点进行硬件设计与优化,实现了高性能的脉冲神经网络应用。本文受文献1 4 中采用软件仿真来完成图像识别的启发,从计算单元并行工作实现加速的角度出发,以高能效和低硬件资源为目的,采用多核并行结构来实现数据的加速运算,提出了一种新的脉冲神经网络硬件加速器设
19、计方案。该加速器设计方案通过可 综 合 硬 件 描 述 语 言V e r i l o g在 寄 存 器 级 上(R T L)进行电路描述,并将电 路实施在V i r t e x-7F P GA开发板上进行了验证。1 脉冲神经网络模型脉冲神经网络的计算单元、数据传输以及网络模型来自对生物神经网络的模拟。本节构建应用于图像识别的脉冲神经网络,主要研究内容包括图像编码、脉冲神经网络神经元模型建模、网络模型结构及事件驱动型数据传输等4个部分。1.1 图像编码由于脉冲神经网路的输入和神经元间的通信都是以1位的脉冲来传输,编码的目的是为了将图像传感器采集到的图像表示成脉冲神经网络接收的脉冲序 列。编 码
20、方 法 一 般 有 时 间 编 码1 5、频 率 编码1 6和群体编码1 7等,其中最常用的是频率编码。本文适用于频率编码。对图像像素进行频率编码时利用数学概率分布212 第1期张剑,等:用于图像识别的高能效脉冲神经网络加速器设计 h t t p:z k x b.x j t u.e d u.c n 模型,采用泊松分布的方式来产生脉冲序列,在每个时间点t,若输入神经元满足式(1)条件,则需要在该时间点产生一个脉冲,若不符合式(1)则在该时间点不产生脉冲r a n d()a x(1)式中:r a n d()表示在(0,1)范围内均匀分布中随机抽取一个数;a是缩放因子,用于调整神经元的脉冲个数发放率
21、;x是像素标准化后的值。采用频率编码机制对图像像素的编码示意图如图1所示,不同明暗程度的图像像素在总的编码区间内产生了不同的脉冲个数。图1 频率编码机制示意图F i g.1S c h e m a t i cd i a g r a mo f r a t ec o d i n gm e c h a n i s m1.2 神经元建模研究学者们提出了众多神经元模型用于模拟生物学大脑中神经元的膜电压变化,最常见的有S RM神经元1 8、I F神经元1 9、L I F神经元(积分泄露点火模型)2 0、H o d g k i n-H u x l e y模型2 1和I z h i k e v i c h模型2
22、 2等。本文使用的L I F神经元模型,是受到生物神经元启发的模型,具有计算简单、硬件友好的特点。L I F神经元的物理模型示意如图2所示,体细胞的膜电压值在接收到树突传输的脉冲后会上升,当膜电压超过阈值时会产生一个脉冲,此时神经元的膜电压会下降到复位值并通过轴突向外发放脉冲。图2 L I F神经元的物理模型示意图F i g.2S c h e m a t i cd i a g r a mo f t h ep h y s i c a lm o d e l o fL I Fn e u r o nL I F神经元的膜电压变化可以总结如下cmdVdt=gl(Vr e s e t-V)+I(2)式中:C
23、m是膜电容;gl是电导率;Vr e s e t是复位膜电压;V是神经元的膜电压;I是输入电流。为了以数字电路实施神经元模型,需要将L I F模型进行离散化,表示如下Vj(t)=Vj(t-1)+iwi jSi(t)-vl e a kSj=1a n dVj(t)=Vr e s e ti fVj(t)Vt h(3)式中:Vj(t)和Vj(t-1)是后突触神经元j在t时刻和t-1时刻的膜电压;前突触神经元标记为i;wi j为前突触后突触神经元间的权重;Vl e a k为神经元泄露值;Vt h为神经元阈值。离散化表示的神经元膜电压随输入脉冲的变化如图3所示,在每个时间点t上,神经元的膜电压若接收到脉冲,
24、膜电压则对输入的脉冲进行集成并判断是否大于阈值。若大于阈值,则此时刻膜电压复位为复位膜电压并发放出脉冲。若小于阈值,则实施泄露操作,膜电压此时减去固定的泄露值Vl e a k。图3 神经元膜电压的变化曲线示意图F i g.3S c h e m a t i cd i a g r a mo fn e u r o nm e m b r a n ec h a n g ec u r v e1.3 网络模型结构图4为本文构建的用于图像目标识别的脉冲神经网络结构示意图,由7层网络层组成,包括1个输入层、2个卷积层、2个池化层和2个全连接层。输入层用于对图像进行编码,共包括7 8 4个神经元,分别代表图像大小
25、为2 82 8中的一个像素。卷积层用于对上一层的输出进行特征提取,随着层数的增加,提取的特征也逐渐由局部到全局变化。每个卷积层后都紧跟着一个池化层,池化层被用于下采样并对卷积层提取的特征进行降维操作来减小数据信息和提高网络结构的容错率。第一个卷积层对输入图像采用3 2个33大小的卷积核进行卷积,卷积层后是采用2 2大小的平均池化层。第二个卷积层用于对第一层池化层的输出进行滤波,卷积核大小312西 安 交 通 大 学 学 报第5 7卷 h t t p:z k x b.x j t u.e d u.c n 图4 本文构建的脉冲神经网络结构示意图F i g.4S c h e m a t i cd i
26、a g r a mo f t h ep r o p o s e ds p i k i n gn e u r a l n e t w o r ks t r u c t u r e为3 233,后面紧接着是一个22的平均池化层。全连接层用于对提取的特征进行分类,2个全连接层各包括1 2 8个神经元和1 0个神经元,第二层池化层中3 266个神经元与全连接层的1 2 8个神经元一对一连接,第一个全连接层神经元与最后一层的1 0个神经元也一对一连接。最后一层的1 0个神经元分别代表着一个类别,神经网络最终的识别结果根据最后一层1 0个神经元的个数来决定:在整个编码的时间区间内,输出个数最多的神经元所标
27、记的类别作为该图像的最终识别结果。1.4 基于事件传输型的数据传输以输入层2 82 8个神经元为例,由于S NN中加入了时间属性,输入的数据可看作是三维的矩阵。考虑到脉冲的稀疏性,在同一时间点中,只有很少输入神经元产生脉冲,若采用基于帧驱动的卷积操作需要计算大量的0值,造成硬件资源与运算时间的浪费。本文采用基于事件驱动的数据传输,将数据表示为地址事件表达(A E R)的方式串行传输2 3。根据基于事件传输型的数据传输方式,上一层神经元与卷积层神经元的连接关系如图5所示,每个上一层神经元都与当前卷积层的多个神经元连接。对于当前卷积层中连接的神经元称为接收野,接收野的大小为qwkhk,其中q为卷积
28、层中特征图的个数,wk、hk为卷积核的宽度和高度。事件驱动型的卷积操作使处理器可以在接收到第一个脉冲时就进行数据处理,同时只要有卷积层中的神经元达到产生脉冲条件就可以输出脉冲,提供给下一层神经元进行数据处理与运算。事件驱动型的计算避免了基于帧驱动型传输方式中需要等待当前帧所有数据到达后才能运算的缺点,这种伪同步传输提升了运算速度。图5 事件驱动型的神经元连接关系示意图 F i g.5S c h e m a t i cd i a g r a mo f e v e n t-d r i v e nn e u r o n a lc o n n e c t i v i t y2 脉冲神经网络加速器设计方
29、案S NN硬件设计具有高仿生学和高能效的优点,适用于硬件资源和能量受限场景的解决方案。本节从加速器的总体架构出发,分别对各模块电路结构进行设计,实现了一种基于S NN模型的图像识别硬件电路,提高了图像数据的处理效率。2.1 结构总览图6描述了本加速器的架构,包括4个卷积工程机、一个全局控制器和一个数据接口。卷积工程机用于执行单层的卷积计算。在每个卷积工程机内都设计了一个局部控制器,用于控制本工程机的数据流向、与其他工程机的通信以及存储器(B l o c kR AM)的存取操作。全局控制器既要对S NN加速器所有模块进行控制,还要对输入的脉冲事件的时间点进行记录,当时间点t变化时,卷积工程机里的
30、神经元需要执行泄露操作。数据接口是一个串行外设接口(S P I),用于接收上位机输入的脉冲事件并将加速器的产生的脉冲输出到上位机。每个卷积工程机里都设计了一个地址计算器、3 2个神经元单元、存储器、事件产生器以及输入输出F I F O,存储器包括一个神经元状态存储器和一个卷积核存储器,412 第1期张剑,等:用于图像识别的高能效脉冲神经网络加速器设计 h t t p:z k x b.x j t u.e d u.c n 神经元状态存储器用于存储神经元的膜电压和神经元的泄露时间点,卷积核存储器用于存储卷积核的值。图6 S NN加速器结构总览图与卷积工程机电路框图F i g.6 O v e r v
31、i e wo fS NNa c c e l e r a t o r a n db l o c kd i a g r a mo f c o n-v o l u t i o ne n g i n ec i r c u i t为了实施多层的S NN,不同层神经元之间的通信需要满足低延时传输。常见的S NN多核电路设计中1 3,采用的是多对多总线结构。但是,多对多的总线结构有3个缺点:一是需要复杂的路由器电路结构,导致高硬件资源需要;二是高扇入和高扇出的总线负载导致大的信号延时;三是多对多通信导致高数据冲突的概率。本设计设计了一对一的数据通信,串行的数据传输避免了数据冲突,不需要仲裁电路,而且保证电路
32、的低扇入扇出。由于S NN的脉冲数据具有稀疏性的特点,既每个时间点上只有很少神经元产生脉冲2 4,因此加速器的输入脉冲以A E R编码方式传输2 5,脉冲表示为(t,y,x),其中t表示时间点,y和x表示脉冲在图像中的位置。加速器的输出是图像的识别分类结果,由于是根据输出层神经元的个数进行判断,因此加速器的输出脉冲表示为c,即发放脉冲的神经元编号。2.2 卷积工程机卷积工程机由7个并行模块组成,电路框图在图6里展示。为了加快数据处理,存储器的数据按行来存取。地址计算器根据输入的脉冲计算出神经元状态存储器和卷积核存储器的地址,两个存储器的行数据发送到神经元模块用于更新神经元膜电压,并判断膜电压是
33、否大于神经元阈值。3 2个神经元计算单元根据膜电压与阈值比较的结果输出3 2b i t的事件向量给事件产生器。事件向量中的每一位为1或0,表示对应的神经元是否有脉冲产生。事件产 生器接收 到事件向量 后 仍 旧 将 其 编 码 为A E R格式进行输出。当卷积工程机中没有数据处理时,该卷积工程机使用钟控技术使电路保持静态,减小电路的动态功耗。2.3 数据存储数据的存储方式对卷积处理的速度有着重要影响,对于基于事件驱动的脉冲卷积处理器,脉冲是逐个串行输入和处理。对于每个输入脉冲,需要更新qwkhk个神经元膜电压和存取qwkhk个卷积核值。以177的卷积核为例,4 9次的存储器读写增加了读写延时以
34、及数据通信的瓶颈,但是可以通过改变数据存取的方式来改变,比如每个时钟周期内按行对存储器进行读取。在同一时钟周期内如何最大化的取出这些神经元膜电压是需要解决的问题。在神经网络中的神经元可看作是三维矩阵,卷积核看作是多个三维矩阵,需要将三维核多维的矩阵排放在二维的存储器中。考虑到卷积神经网络中的q都远大于卷积核尺寸hk,因此将卷积层不同特征图中具有相同(y,x)坐标的神经元排列到存储器的同一行中,如图7所示。由于神经元在每个时间点上都需要实施泄露操作,为了减小膜电压的存取次数,在神经元状态存储器中增加了一列数据,每个数据用于记录本行的膜电压数据在上一次实施泄露的时间。卷积核存储器中的卷积核值以类似
35、的方式进行数据排列,每个三维卷积核矩阵排列为二维存储器矩阵中,再将所有排列后的二维存储器矩阵堆叠在统一存储器中。2.4 神经元模块神经元模块采用流水线技术来实现数据的高速处理,为了保证数据流水线处理,神经元状态存储器选用双端口存储器。神经元模块包括3 2个神经元计算单元,神经元计算单元的电路结构如图8所示。图中t来自全局控制器,泄漏时间点(T)和3 2个膜电压(m1,m2,m3 2)在神经元状态存储器的第一512西 安 交 通 大 学 学 报第5 7卷 h t t p:z k x b.x j t u.e d u.c n 个端口输出,3 2个卷积核值(k1,k2,k3 2)在卷积核存储器输出。根
36、据当前时间点t与存储器中膜电压上一次实施泄漏的时间点T的差值(t-T)乘以每个时间点需要泄漏值Vl e a k,得到实施泄漏要减掉的泄漏值nl e a k。泄漏值被所有神经元计算单元共享来减小硬件资源。在更新该行所有的膜电压后,将膜电压与当前时间点写入到神经元状态存储器的第二个端口。m(z,y,x)坐标为(z,y,x)神经元的膜电压;k(z,y,x)坐标为(z,y,x)的卷积核的值;z 卷积层中特征图的个数;y、x 行标签和列标签。图7 神经元膜电压以及卷积核值在存储器中的排列方式示意图F i g.7S c h e m a t i cr e p r e s e n t a t i o no f
37、n e u r o nm e m b r a n e sa n dk e r n e l v a l u e sa r r a n g e d i nm e m o r yT 泄漏时间点;Fi 事件标记,3 2个Fi组成事件向量;mi、ki 神经元膜电压和卷积核值(i=1,2,3 2)。图8 神经元模块电路结构图F i g.8C i r c u i t s t r u c t u r ed i a g r a mo fn e u r o nm o d u l e612 第1期张剑,等:用于图像识别的高能效脉冲神经网络加速器设计 h t t p:z k x b.x j t u.e d u.c n
38、 2.5 事件产生器事件产生器用于将事件向量中的脉冲编码为A E R格式。对事件向量中的每一位逐位判断是否有脉冲是低效率的,因此采用了基于查找表的方法,实现了优先编码器的功能。事件产生器的电路结构图如图9所示,将事件向量输入查找表,下个时钟则输出事件向量中最高位为1的位置,再将该位置与事件向量进行异或操作,将对应位置所在的位数置0。结合查找表与异或操作查找事件向量中的脉冲过程如图1 0举例所示。假设事件向量的第2 9位为1,表示在此处有一个脉冲,此时将事件向量输入到查找表中,下个时钟查找表输出f=2 9以及独热码。将其与事件向量进行异或,则得到清除了第2 9位标记的事件向量。依此循环,直到事件
39、产生器中所有的事件都被编码。图9 事件产生器电路结构图F i g.9C i r c u i t s t r u c t u r ed i a g r a mo f e v e n tg e n e r a t o r图1 0 事件产生器查找脉冲位置举例示意图F i g.1 0S c h e m a t i c i l l u s t r a t i o no f t h ee v e n tg e n e r a t o r f i n d i n gt h es p i k ep o s i t i o n 虽然脉冲具有稀疏性,但是时间向量中也会有多个脉冲事件的情况,此时事件产生器处理每个事
40、件向量时可能需要多个时钟。若事件产生器对当前事件向量还未处理完毕,又有新的事件向量输入,此时会造成数据冲突。为了避免数据冲突,当前的事件向量的脉冲事件未全部找到时,事件产生器会产生一个“停止”(s t o p)信号,使地址计算器和神经元模块中的寄存器值保持不变,直到脉冲事件全部处理完,再使寄存器继续工作。产生脉冲的卷积层神经元坐标为(z,y,x),z通过结合查找表与异或操作求出。池化层对卷积层进行下采样,22的下采样在硬件中可以通过移位来实现,避免了硬件昂贵的乘法器的使用。3 实验验证与结果分析本文的设计通过可综合的硬件描述语言进行实现,在V i v a d o 2 0 1 6软件上进行综合,
41、并实施在X i l i n xV i r t e x-7V C 7 0 7F P G A开 发 板 中,该 开 发 板 包 含4 8 5 0 0 0个逻辑单元、2 8 0 0个D S P资源以及3 7M b的存储单元。本文提出的设计在开发板上的工作频率为1 0 0MH z。本设计使用了MN I S T手写数字图像数据集进行测试,该数据集包括7万张手写数字图像,每张图像大小为2 82 8,其中的5万张为训练集,其余2万张为测试集,该数据集的示意图如图1 1所示。图1 1 MN I S T数据集示意图F i g.1 1S c h e m a t i co f t h eMN I S Td a t
42、a s e t为了保证准确率和硬件资源的平衡,首先在软件上采用不同的权值位数测试识别结果。如图1 2所示,随着卷积核位数增大,识别准确度也逐渐提高,并712西 安 交 通 大 学 学 报第5 7卷 h t t p:z k x b.x j t u.e d u.c n 在8b i t后稳定,最终卷积核的位数选择为8b i t。图1 2 卷积核位数与加速器分类识别性能关系F i g.1 2 R e l a t i o n s h i pb e t w e e nt h ek e r n e l b i tw i d t ha n dt h er e c o g n i t i o np e r f
43、o r m a n c eo f t h ea c c e l e r a t o r为了比较软件仿真与硬件加速器的性能,该S NN模型也在计算机上使用P y t h o n软件进行了仿真,计算机的配置为3.2G B的因特尔中央处理器(C P U)与1 6G B的内存。软件程序对测试集的2万张图像进行测试。为了避免引入计算机外围设备的工作功耗,中央处理器(C P U)在软件程序运行时的功耗P由计算机的A I D A 6 4软件进行测量。使用P y t h o n的t i m e.c l o c k()函数以浮点数来计算软件程序开始运行的C P U时间t1和结束运行时的C P U时间t2,得到软
44、件程序识别2万张图像的总运行时间(t2-t1)和识别单张图像的运行时间t。识别单张图像的能量E由功耗P与运行时间t相乘得到,公式为E=P t。本文提 出的加速器 设计方案通 过V i v a d o 2 0 1 6软件实施在F P GA上,并使用X i l i n x的功耗分析器(X p o w e rA n a l y s i st o o l s)对设计进行分析并得到功耗。在硬件设计中添加了一个计数器,通过对时钟数进行计数,最后得到了加速器识别单张图像的运行时间。由表1的性能对比可知,本文的硬件设计与软件仿真相比,具有更快的处理速度以及具有显著优势的能量效率。硬件的处理速度、功耗及能量为软
45、件仿真速度的1/7.7、1/1 8 6.2和1/14 5 3.8。虽然本设计采用了定点数进行计算,仍然获得了9 9.1 1%的准确率,准确率和采用3 2位浮点数的软件的准确率相近。表1 硬件设计与软件仿真的性能对比T a b l e1 P e r f o r m a n c ec o m p a r i s o nb e t w e e nh a r d w a r ed e s i g na n ds o f t w a r es i m u l a t i o n平台时间/m s功耗/W能量/m J准确率/%硬件3.60.2 91.0 49 9.1 1软件2 85 415 1 29 9.5
46、 8为了进一步比较本设计的优势,本设计与其他采用F P GA实现的硬件加速器方案进行对比,如表2所示。文献9 是“达尔文”芯片,采用单核(8个神经元)复用计算技术,相比于本设计中多核(每个核3 2个神经元)计算,其低神经元并行度造成处理单张图像需要1 6 0m s的时间。文献1 3 采用多核结构,但是核与核之间采用了复杂的多对多通信,增加了硬件资源和通信延时;采用基于帧驱动的计算增加了对无用数据0的存储与计算,使电路的功耗高达1.6 W。本方案通过设计多核并行工作方式实现了多神经元的高并行计算,采用基于事件驱动的数据传输增加了数据效率,只需3.6m s的时间和1.0 4m J的能量来完成单张图
47、像的识别,能量分别是文献9 与文献1 3 的1/3.2 3和1/4.8 5。实验结果表明,本方案的能效领先于主流基于F P GA实现的S NN硬件水平。表2 本文设计与其他文献的性能对比T a b l e2 P e r f o r m a n c ec o m p a r i s o nb e t w e e nt h ep r o p o s e dd e-s i g na n do t h e r l i t e r a t u r e s方案来源器件型号时钟频率/MH z时间/m s功耗/W能量/m J本文V i r t e x-71 0 03.60.2 91.0 4文献9S p a r
48、 t a n-62 51 6 00.0 2 13.3 6文献1 3V i r t e x-71 0 03.1 51.65.0 44 结 论为了解决传统冯诺依曼结构上软件仿真速度慢、能耗高和体积大等问题,本文以神经形态学的脉冲神经网络为研究背景,提出了一种用于图像识别的脉冲神经网络加速器设计方案。为了解决脉冲稀疏性导致的基于帧传输信息效率低的问题,提出了一种基于事件驱动的脉冲传输方式。通过多核并行工作,每个卷积工程机实现单层的卷积计算,提高了网络的处理速度。提出了一种新的数据排列方式,提高了数据的利用率和神经元计算的并行度。设计了结合查找表与异或的电路结构,可以高效快速的对脉冲位置进行定位。本文
49、基于寄存器级电路设计,全面仿真验证,并在F P GA开发板上进行了实现,使用经典的手写数字图像数据集进行测试。实验结果表明,与基于冯诺依曼结构的软件仿真方案进行对比,本设计具有高速度低能耗的优势。在与同类型硬件电路的比较中,本设计的能量效率优势处于主流水平,更适用于812 第1期张剑,等:用于图像识别的高能效脉冲神经网络加速器设计 h t t p:z k x b.x j t u.e d u.c n 能量体积等受限的边缘设备中。参考文献:1 G R E E N B E R G A,HAM I L T ONJ,MA L T ZD A,e ta l.T h ec o s t o f a c l o
50、u d:r e s e a r c hp r o b l e m s i nd a t a c e n-t e rn e t w o r k sJ.A CM S I G C OMM C o m p u t e rC o m-m u n i c a t i o nR e v i e w,2 0 0 9,3 9(1):6 8-7 3.2 T O G A A RM,E R G E NB,C ME R TZ.D e t e c t i o no fw e a t h e ri m a g e sb yu s i n gs p i k i n gn e u r a ln e t w o r k so f
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100