脉冲神经元的Nios Ⅱ多核实现方法研究
2017-09-21张文娟
张文娟,张 喆
(东北师范大学物理学院,国家级实验教学示范中心,吉林 长春 130024)
脉冲神经元的Nios Ⅱ多核实现方法研究
张文娟,张 喆
(东北师范大学物理学院,国家级实验教学示范中心,吉林 长春 130024)
选定Izhikevich脉冲神经元模型作为计算单元,讨论了4种Nios Ⅱ处理器的通信方法.针对Izhikevich神经元的特点,经过实验比较,采用其中2种Nios Ⅱ多核通信技术相结合的方式实现脉冲神经元并行计算结构.该结构能很好地实现Izhikevich神经元的功能,并且能充分体现脉冲神经网络并行计算的特点.
多核通信;Nios Ⅱ;Izhikevich神经元模型;并行计算
0 引言
人工神经网络(Artificial Neural Networks,ANN)通过对连续输入做状态响应而进行信息处理.基于第三代人工神经元模型(Spike神经元)建立的脉冲神经网络(Spiking Neural Network,SNN)成为近年来神经网络领域研究的热点.与前两代人工神经网络模型相比,SNN更接近生物的信息处理机制.[1-3]
国内外对神经网络硬件实现的研究分为基于通用神经元处理器的芯片和基于现场可编程门阵列(Field-Programmable Gate Array,FPGA)的硬件实现[4].在FPGA硬件实现方面,C.E.Cox和W.E Blanz[5]在1992年实现了FPGA上的单隐层全连接的神经网络分类器;1994年,N.M Botros和M.Abdul-Aziz[6]实现了基于在Xilinx FPGA的全数字的多层感知器网络;H.Hikawa[7]实现了基于FPGA的激励函数可调神经元.
纯硬件实现的脉冲神经网络包含大量的乘法运算,硬件需求较高[8],而可编程片上系统(System-on-a-Programmable-Chip,SOPC)搭建的系统具有器件少、成本低、灵活性强、数据存储方便等众多优点.[9]将神经网络与SOPC多核技术结合,可以实现人工神经网络运行的并行性、权值、结构自适应性,同时通过复用硬件乘法器的方法节约系统资源,是实现嵌入式神经网络最有效的方法之一.
本文使用3个Nios II软核处理器模拟3个脉冲神经元细胞,实现脉冲神经元电势积累和脉冲发放的过程.
1 脉冲神经元模型
脉冲神经元把外部刺激编码成脉冲,并对脉冲发放的时间进行运算.每个脉冲神经元可以同时接收多个突触的脉冲,当它的膜电压超过阈值时,产生一个脉冲传给下一级神经元,这个过程被称为突触后电位(Post-Synaptic Potential,PSP).PSP信号根据权值的正负可以对子神经元产生激励或抑制2种作用.
本文使用的Izhikevich模型[10]是由Izhikevich教授依据非线性动力学的分叉理论推导得出的神经元模型.该模型可描述为:
(1)
(2)
(3)
上述公式可以等价为:
(4)
(5)
(6)
其中:v代表膜电位,u代表膜电压恢复量,I代表输入电流,参数b决定了变量u的敏感程度,a决定了电压恢复时间,c为电压复位值,参数d为脉冲发放时神经元总体输出和输入的电流之差.(4)—(6)式相比(1)—(3)式多了4个参数,其中C是膜电容,vr是静息电位,vt是触发电位,vpeak是脉冲发放阈值,实际应用中当模型选定时,这4个参数都为定值.
2 Nios Ⅱ多核通信方法探究
嵌入式多核处理器设计非常复杂,但是借助FPGA技术,开发者可以方便地利用IP核研究嵌入式多核系统.本文在正式系统设计之前,先验证了4种基于Nios Ⅱ的多核通信方法,分析了各个方法的优缺点和适用情况,为我们进一步研究提供了参考.
(1) 双端口RAM多核通信方法.On-Chip Memory IP核可以选择初始化为双端口模式,双口RAM被总线当做两个设备,2个处理器软核可以同时对其进行读操作.
(2) Mailbox多核通信方法.Mailbox IP核可以用来处理双核之间的数据通信.Mailbox核包含了2个互斥核,分别用来保证唯一写权限和唯一读权限.共享消息通过Mailbox传输的过程相当于FIFO(First in First out)队列.
(3) Mutex互斥核多核通信方法.Mutex核是基于Avalon总线的一种硬件协议,它可以保证多处理器对共享资源所有权的互斥性.Mutex核在硬件上不与共享资源产生连接,它只提供共享资源的所有权标志,对共享资源的保护必须通过与软件配合来实现.
(4) SPI串口多核通信方法.在数据交换量不大的情况时,可以采用通用串行接口作为核与核之间通信的方案.Altera提供了基于Avalon总线的全功能的SPI和UART接口IP核.
Nios Ⅱ 4种多核通信方法比较见表1.
表1 Nios Ⅱ 4种多核通信方法比较
Nios Ⅱ 4种多核通信方法的软件设计流程分别如图1—4所示.
3 硬件电路设计
本文设计采用FPGA芯片型号为Cyclone Ⅱ EP2C35F672C8.设计中包含3个NIOS Ⅱ处理器软核,每个处理器模拟一个神经元,共两层3个神经元.其中cpu0和cpu2为突触前细胞,模拟前级神经元脉冲发放的过程,cpu1为突触后细胞,模拟后级神经元膜电压积累发放的过程,设计模拟的生物结构如图5所示.
图1 Mailbox通信流程
图2 Mutex通信流程
图3 双端口Ram通信流程
图4 SPI串口通信流程
图5 3个脉冲神经元生物模型
图5中突触前神经元I和J,分别在t1和t2时刻发放脉冲,突触后神经元K接收2个脉冲输入后在t3时刻膜电位积分到达阈值Vpeak,并发放脉冲,电位重置.K的膜电位波形如图5右侧Vi(t)所示.
正常的生物神经网络中,刺激信号是从末梢神经向中枢神经单向传递的,但是在人工模拟神经元时,数学模型是由时间驱动的,在多核多神经元系统中,为了避免突触前后神经元代码运行时间代价不同而引起的脉冲错位问题,突触前后脉冲神经元需要一个统一的同步时间信号作为驱动.
选择多核间通信方式,设计中包含3个方向的信息传递,突触前神经元到突触后神经元需要一对一传输,突触后神经元到突触前神经元需要一对二传输,结合第2部分所述内容,信息向后传递时需要传递一个包含脉冲信息的结构体,双端口RAM和Mailbox适用于此种情况,又考虑到信息量不大,采用片内RAM作为通信缓存则使用双端口RAM最适合本文设计中信息正向传递的情况.时间信息向前同步时,需要一对二的通信模式,则Mutex和SPI串口适用于此种情况,又考虑到Mutex程序较为复杂,时间成本和硬件成本都比较高,且设计中时间信息较少,使用SPI串口能很好地实现一对二发送时间的功能.
综上所述,最后设计的硬件系统如图6所示.
图6 3个脉冲神经元硬件实现
图6中cpu0和cpu2为突触前神经元,通过双端口RAM向后发送包含脉冲信息的结构体,且2个神经元都含有一个SPI从端口.cpu1为突触后神经元,同时接受2个前级神经元的脉冲信息,并且含有一个SPI主端口向前发送时间同步信息,设计中SPI只考虑单向传输,所以主机只初始化了一个接口,2个从机并联,同时接收信息.设计中3个处理器全部初始化为Nios Ⅱ标准型内核,该内核下含有硬件乘加器,可以提高脉冲积累发放程序的运算速度,同时相比Nios Ⅱ快速型内核省去了一些不必要的组件,更节约硬件资源.
4 软件设计
在设计3个处理器软核间通信流程时,需要初始化脉冲信息传递的结构体Spike,结构体成员如表2所示,神经元功能实现流程如图7所示.
表2 结构体Spike成员列表
图73个处理器软核系统程序流程
通信的关键在于前后神经元的时间同步,在实际的系统中,突触前神经元cup0和cpu2的程序完全相同,数组初始化后进入主循环等待SPI中断,当中断来临时将Pretime中的时间信息与cpu1通过SPI发来的时间信息同步,然后根据系统时间发送既定的脉冲信号.突触后神经元中主循环在每个循环的开始先向后同步时间信息,然后查询等待结构体中Pretime变量的同步,同步完成意味着前级脉冲已经发送完毕,则后神经元在读取脉冲信息后进入Izhikevich神经元模型的计算过程中,在每次循环的末尾将时间加1 ms,若时间为100 ms则清零.此循环不断模拟100 ms内一个神经元细胞的电位变化.
5 实验结果
图8 cpu1产生波形图
实验中cpu1输出的膜电位通过串口发回计算机,波形结果如图8所示.cpu0每隔1 ms向后发送一个脉冲,cpu2在前50 ms与cpu0交替发送脉冲,后50 ms不发送脉冲,即cpu1在前50 ms接收到一个直流信号,后50 ms接收到间隔1 ms 的脉冲信号.在sopc builder中生成系统时,为每个cpu初始化了一个pio输出接口,软件实现中,每个cpu在运行各自代码期间将其pio端口设置为高电平,通过逻辑分析仪观察3个pio端口的波形状况,如图9所示.
从图9中可以看出cpu1作为突触后神经元,需要对前级输入脉冲进行积累发放运算,程序运行时间代价较高,cpu0和cpu2在系统中只起到脉冲发放的作用,激活时间较短;另一方面,cpu0和cpu2的激活时间完全相同,即时间同步完成后,同一级神经元可以同时工作,很好地体现了实际生物神经网络中同级神经元激活的并行性.
基于FPGA多核技术的脉冲神经元系统实现了预期的功能,多核间的通信得到了很好的实现,脉冲后神经元输出的波形与Matlab模拟波形基本一致.
本文所述的脉冲神经元系统,具有低成本、灵活性强和重复配置升级等众多优势.FPGA技术与神经网络技术的结合是嵌入式神经网络技术最可行的发展方向.
图9 逻辑分析仪波形
本文实现的是脉冲神经网络中的一个基本单元,通过结合脉冲神经网络学习算法,可以很方便地搭建一个完整的脉冲神经网络,用以完成更多复杂的任务,也可以使用其他脉冲神经元模型,优化系统运行速度,实现所需功能.
[1] 王鸿斌,张立毅,胡志军.人工神经网络理论及其应用[J].山西电子技术,2006(2):41-43.
[2] ZURADA J M.Introduction to Artificial Neural Systems [M].New York:West Publishing Co,1992:17-20.
[3] MAASS W.Networks of Spiking neurons:the third generation of neural network models [J].Neural Networks.1997,10(9):1659-1671.
[4] DINU A,CIRSTEA M N,CIRSTEA S E.Direct neural-network hardware-implementation algorithm [J].IEEE Transactions on Industrial Electronics,2010,57(5):1845-1848.
[5] COX C E,BLANZ W E.GANGLION-a fast field-programmable gate array implementation of a connectionist classifier [J].IEEE Journal of Solid-State Circuits,1992,27(3):288-299.
[6] BOTROS N M,ABDUL-AZIZ M.Hardware implementation of an artificial neural network using field programmable gate arrays(FPGA’s)[J].IEEE Transactions on Industrial Electronics,1994,41(6):665-667.
[7] HIKAWA H.A digital hardware pulse-mode neuron with piecewise linear activation function [J].IEEE Transactions on Neural Networks,2003,14(5):1028-1037.
[8] 钱玉多.基于FPGA的神经网络硬件实现研究[D].武汉:华中科技大学,2012.
[9] 张文娟,王蕾,王连明.基于Nios Ⅱ的脉冲神经网络硬件实现方法[J].东北师大学报(自然科学版),2016,48(4):57-62.
[10] IZHIKEVICH E M.Simple model of spiking neurons [J].Neural Networks,IEEE Transactions on Neural Networks,2003,14(6):1569-1572.
(责任编辑:石绍庆)
MethodformulticoreimplementationofspikeneuronbasedonNiosⅡ
ZHANG Wen-juan,ZHANG Zhe
(School of Physics,National Demonstration Center for Experimental Physics Education,Northeast Normal University,Changchun 130024,China)
The third generation neural network which has better biological characteristics and named spiking neural network is a hot research topic in recent years.Firstly,Izhikevich neuron mode is used as the calculating unit.Secondly,communication methods of four Nios Ⅱ processors are discussed.Finally,two kinds of Nios Ⅱ multicore technology are combined to realize the structure of the parallel computation of neurons after experimental comparison according to the characteristics of Izhikevich neurons.The structure can achieve the function of Izhikevich neuron,and can fully reflect the characteristics of the parallel computing of the spiking neural network after testing.
multicore communication;Nios Ⅱ;Izhikevich neuron mode;parallel computing
1000-1832(2017)03-0073-05
10.16163/j.cnki.22-1123/n.2017.03.016
2016-07-21
国家自然科学基金专项基金资助项目(21227008);中央高校基本科研业务费专项基金资助项目(2412015KJ006).
张文娟(1983—),女,博士,工程师,主要从事嵌入式系统、智能信息处理研究.
TP 183 [学科代码] 520·20
A