張文娟,張 喆
(東北師范大學(xué)物理學(xué)院,國家級(jí)實(shí)驗(yàn)教學(xué)示范中心,吉林 長春 130024)
脈沖神經(jīng)元的Nios Ⅱ多核實(shí)現(xiàn)方法研究
張文娟,張 喆
(東北師范大學(xué)物理學(xué)院,國家級(jí)實(shí)驗(yàn)教學(xué)示范中心,吉林 長春 130024)
選定Izhikevich脈沖神經(jīng)元模型作為計(jì)算單元,討論了4種Nios Ⅱ處理器的通信方法.針對(duì)Izhikevich神經(jīng)元的特點(diǎn),經(jīng)過實(shí)驗(yàn)比較,采用其中2種Nios Ⅱ多核通信技術(shù)相結(jié)合的方式實(shí)現(xiàn)脈沖神經(jīng)元并行計(jì)算結(jié)構(gòu).該結(jié)構(gòu)能很好地實(shí)現(xiàn)Izhikevich神經(jīng)元的功能,并且能充分體現(xiàn)脈沖神經(jīng)網(wǎng)絡(luò)并行計(jì)算的特點(diǎn).
多核通信;Nios Ⅱ;Izhikevich神經(jīng)元模型;并行計(jì)算
人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Networks,ANN)通過對(duì)連續(xù)輸入做狀態(tài)響應(yīng)而進(jìn)行信息處理.基于第三代人工神經(jīng)元模型(Spike神經(jīng)元)建立的脈沖神經(jīng)網(wǎng)絡(luò)(Spiking Neural Network,SNN)成為近年來神經(jīng)網(wǎng)絡(luò)領(lǐng)域研究的熱點(diǎn).與前兩代人工神經(jīng)網(wǎng)絡(luò)模型相比,SNN更接近生物的信息處理機(jī)制.[1-3]
國內(nèi)外對(duì)神經(jīng)網(wǎng)絡(luò)硬件實(shí)現(xiàn)的研究分為基于通用神經(jīng)元處理器的芯片和基于現(xiàn)場可編程門陣列(Field-Programmable Gate Array,F(xiàn)PGA)的硬件實(shí)現(xiàn)[4].在FPGA硬件實(shí)現(xiàn)方面,C.E.Cox和W.E Blanz[5]在1992年實(shí)現(xiàn)了FPGA上的單隱層全連接的神經(jīng)網(wǎng)絡(luò)分類器;1994年,N.M Botros和M.Abdul-Aziz[6]實(shí)現(xiàn)了基于在Xilinx FPGA的全數(shù)字的多層感知器網(wǎng)絡(luò);H.Hikawa[7]實(shí)現(xiàn)了基于FPGA的激勵(lì)函數(shù)可調(diào)神經(jīng)元.
純硬件實(shí)現(xiàn)的脈沖神經(jīng)網(wǎng)絡(luò)包含大量的乘法運(yùn)算,硬件需求較高[8],而可編程片上系統(tǒng)(System-on-a-Programmable-Chip,SOPC)搭建的系統(tǒng)具有器件少、成本低、靈活性強(qiáng)、數(shù)據(jù)存儲(chǔ)方便等眾多優(yōu)點(diǎn).[9]將神經(jīng)網(wǎng)絡(luò)與SOPC多核技術(shù)結(jié)合,可以實(shí)現(xiàn)人工神經(jīng)網(wǎng)絡(luò)運(yùn)行的并行性、權(quán)值、結(jié)構(gòu)自適應(yīng)性,同時(shí)通過復(fù)用硬件乘法器的方法節(jié)約系統(tǒng)資源,是實(shí)現(xiàn)嵌入式神經(jīng)網(wǎng)絡(luò)最有效的方法之一.
本文使用3個(gè)Nios II軟核處理器模擬3個(gè)脈沖神經(jīng)元細(xì)胞,實(shí)現(xiàn)脈沖神經(jīng)元電勢積累和脈沖發(fā)放的過程.
脈沖神經(jīng)元把外部刺激編碼成脈沖,并對(duì)脈沖發(fā)放的時(shí)間進(jìn)行運(yùn)算.每個(gè)脈沖神經(jīng)元可以同時(shí)接收多個(gè)突觸的脈沖,當(dāng)它的膜電壓超過閾值時(shí),產(chǎn)生一個(gè)脈沖傳給下一級(jí)神經(jīng)元,這個(gè)過程被稱為突觸后電位(Post-Synaptic Potential,PSP).PSP信號(hào)根據(jù)權(quán)值的正負(fù)可以對(duì)子神經(jīng)元產(chǎn)生激勵(lì)或抑制2種作用.
本文使用的Izhikevich模型[10]是由Izhikevich教授依據(jù)非線性動(dòng)力學(xué)的分叉理論推導(dǎo)得出的神經(jīng)元模型.該模型可描述為:
(1)
(2)
(3)
上述公式可以等價(jià)為:
(4)
(5)
(6)
其中:v代表膜電位,u代表膜電壓恢復(fù)量,I代表輸入電流,參數(shù)b決定了變量u的敏感程度,a決定了電壓恢復(fù)時(shí)間,c為電壓復(fù)位值,參數(shù)d為脈沖發(fā)放時(shí)神經(jīng)元總體輸出和輸入的電流之差.(4)—(6)式相比(1)—(3)式多了4個(gè)參數(shù),其中C是膜電容,vr是靜息電位,vt是觸發(fā)電位,vpeak是脈沖發(fā)放閾值,實(shí)際應(yīng)用中當(dāng)模型選定時(shí),這4個(gè)參數(shù)都為定值.
嵌入式多核處理器設(shè)計(jì)非常復(fù)雜,但是借助FPGA技術(shù),開發(fā)者可以方便地利用IP核研究嵌入式多核系統(tǒng).本文在正式系統(tǒng)設(shè)計(jì)之前,先驗(yàn)證了4種基于Nios Ⅱ的多核通信方法,分析了各個(gè)方法的優(yōu)缺點(diǎn)和適用情況,為我們進(jìn)一步研究提供了參考.
(1) 雙端口RAM多核通信方法.On-Chip Memory IP核可以選擇初始化為雙端口模式,雙口RAM被總線當(dāng)做兩個(gè)設(shè)備,2個(gè)處理器軟核可以同時(shí)對(duì)其進(jìn)行讀操作.
(2) Mailbox多核通信方法.Mailbox IP核可以用來處理雙核之間的數(shù)據(jù)通信.Mailbox核包含了2個(gè)互斥核,分別用來保證唯一寫權(quán)限和唯一讀權(quán)限.共享消息通過Mailbox傳輸?shù)倪^程相當(dāng)于FIFO(First in First out)隊(duì)列.
(3) Mutex互斥核多核通信方法.Mutex核是基于Avalon總線的一種硬件協(xié)議,它可以保證多處理器對(duì)共享資源所有權(quán)的互斥性.Mutex核在硬件上不與共享資源產(chǎn)生連接,它只提供共享資源的所有權(quán)標(biāo)志,對(duì)共享資源的保護(hù)必須通過與軟件配合來實(shí)現(xiàn).
(4) SPI串口多核通信方法.在數(shù)據(jù)交換量不大的情況時(shí),可以采用通用串行接口作為核與核之間通信的方案.Altera提供了基于Avalon總線的全功能的SPI和UART接口IP核.
Nios Ⅱ 4種多核通信方法比較見表1.
表1 Nios Ⅱ 4種多核通信方法比較
Nios Ⅱ 4種多核通信方法的軟件設(shè)計(jì)流程分別如圖1—4所示.
本文設(shè)計(jì)采用FPGA芯片型號(hào)為Cyclone Ⅱ EP2C35F672C8.設(shè)計(jì)中包含3個(gè)NIOS Ⅱ處理器軟核,每個(gè)處理器模擬一個(gè)神經(jīng)元,共兩層3個(gè)神經(jīng)元.其中cpu0和cpu2為突觸前細(xì)胞,模擬前級(jí)神經(jīng)元脈沖發(fā)放的過程,cpu1為突觸后細(xì)胞,模擬后級(jí)神經(jīng)元膜電壓積累發(fā)放的過程,設(shè)計(jì)模擬的生物結(jié)構(gòu)如圖5所示.
圖1 Mailbox通信流程
圖2 Mutex通信流程
圖3 雙端口Ram通信流程
圖4 SPI串口通信流程
圖5 3個(gè)脈沖神經(jīng)元生物模型
圖5中突觸前神經(jīng)元I和J,分別在t1和t2時(shí)刻發(fā)放脈沖,突觸后神經(jīng)元K接收2個(gè)脈沖輸入后在t3時(shí)刻膜電位積分到達(dá)閾值Vpeak,并發(fā)放脈沖,電位重置.K的膜電位波形如圖5右側(cè)Vi(t)所示.
正常的生物神經(jīng)網(wǎng)絡(luò)中,刺激信號(hào)是從末梢神經(jīng)向中樞神經(jīng)單向傳遞的,但是在人工模擬神經(jīng)元時(shí),數(shù)學(xué)模型是由時(shí)間驅(qū)動(dòng)的,在多核多神經(jīng)元系統(tǒng)中,為了避免突觸前后神經(jīng)元代碼運(yùn)行時(shí)間代價(jià)不同而引起的脈沖錯(cuò)位問題,突觸前后脈沖神經(jīng)元需要一個(gè)統(tǒng)一的同步時(shí)間信號(hào)作為驅(qū)動(dòng).
選擇多核間通信方式,設(shè)計(jì)中包含3個(gè)方向的信息傳遞,突觸前神經(jīng)元到突觸后神經(jīng)元需要一對(duì)一傳輸,突觸后神經(jīng)元到突觸前神經(jīng)元需要一對(duì)二傳輸,結(jié)合第2部分所述內(nèi)容,信息向后傳遞時(shí)需要傳遞一個(gè)包含脈沖信息的結(jié)構(gòu)體,雙端口RAM和Mailbox適用于此種情況,又考慮到信息量不大,采用片內(nèi)RAM作為通信緩存則使用雙端口RAM最適合本文設(shè)計(jì)中信息正向傳遞的情況.時(shí)間信息向前同步時(shí),需要一對(duì)二的通信模式,則Mutex和SPI串口適用于此種情況,又考慮到Mutex程序較為復(fù)雜,時(shí)間成本和硬件成本都比較高,且設(shè)計(jì)中時(shí)間信息較少,使用SPI串口能很好地實(shí)現(xiàn)一對(duì)二發(fā)送時(shí)間的功能.
綜上所述,最后設(shè)計(jì)的硬件系統(tǒng)如圖6所示.
圖6 3個(gè)脈沖神經(jīng)元硬件實(shí)現(xiàn)
圖6中cpu0和cpu2為突觸前神經(jīng)元,通過雙端口RAM向后發(fā)送包含脈沖信息的結(jié)構(gòu)體,且2個(gè)神經(jīng)元都含有一個(gè)SPI從端口.cpu1為突觸后神經(jīng)元,同時(shí)接受2個(gè)前級(jí)神經(jīng)元的脈沖信息,并且含有一個(gè)SPI主端口向前發(fā)送時(shí)間同步信息,設(shè)計(jì)中SPI只考慮單向傳輸,所以主機(jī)只初始化了一個(gè)接口,2個(gè)從機(jī)并聯(lián),同時(shí)接收信息.設(shè)計(jì)中3個(gè)處理器全部初始化為Nios Ⅱ標(biāo)準(zhǔn)型內(nèi)核,該內(nèi)核下含有硬件乘加器,可以提高脈沖積累發(fā)放程序的運(yùn)算速度,同時(shí)相比Nios Ⅱ快速型內(nèi)核省去了一些不必要的組件,更節(jié)約硬件資源.
在設(shè)計(jì)3個(gè)處理器軟核間通信流程時(shí),需要初始化脈沖信息傳遞的結(jié)構(gòu)體Spike,結(jié)構(gòu)體成員如表2所示,神經(jīng)元功能實(shí)現(xiàn)流程如圖7所示.
表2 結(jié)構(gòu)體Spike成員列表
圖73個(gè)處理器軟核系統(tǒng)程序流程
通信的關(guān)鍵在于前后神經(jīng)元的時(shí)間同步,在實(shí)際的系統(tǒng)中,突觸前神經(jīng)元cup0和cpu2的程序完全相同,數(shù)組初始化后進(jìn)入主循環(huán)等待SPI中斷,當(dāng)中斷來臨時(shí)將Pretime中的時(shí)間信息與cpu1通過SPI發(fā)來的時(shí)間信息同步,然后根據(jù)系統(tǒng)時(shí)間發(fā)送既定的脈沖信號(hào).突觸后神經(jīng)元中主循環(huán)在每個(gè)循環(huán)的開始先向后同步時(shí)間信息,然后查詢等待結(jié)構(gòu)體中Pretime變量的同步,同步完成意味著前級(jí)脈沖已經(jīng)發(fā)送完畢,則后神經(jīng)元在讀取脈沖信息后進(jìn)入Izhikevich神經(jīng)元模型的計(jì)算過程中,在每次循環(huán)的末尾將時(shí)間加1 ms,若時(shí)間為100 ms則清零.此循環(huán)不斷模擬100 ms內(nèi)一個(gè)神經(jīng)元細(xì)胞的電位變化.
圖8 cpu1產(chǎn)生波形圖
實(shí)驗(yàn)中cpu1輸出的膜電位通過串口發(fā)回計(jì)算機(jī),波形結(jié)果如圖8所示.cpu0每隔1 ms向后發(fā)送一個(gè)脈沖,cpu2在前50 ms與cpu0交替發(fā)送脈沖,后50 ms不發(fā)送脈沖,即cpu1在前50 ms接收到一個(gè)直流信號(hào),后50 ms接收到間隔1 ms 的脈沖信號(hào).在sopc builder中生成系統(tǒng)時(shí),為每個(gè)cpu初始化了一個(gè)pio輸出接口,軟件實(shí)現(xiàn)中,每個(gè)cpu在運(yùn)行各自代碼期間將其pio端口設(shè)置為高電平,通過邏輯分析儀觀察3個(gè)pio端口的波形狀況,如圖9所示.
從圖9中可以看出cpu1作為突觸后神經(jīng)元,需要對(duì)前級(jí)輸入脈沖進(jìn)行積累發(fā)放運(yùn)算,程序運(yùn)行時(shí)間代價(jià)較高,cpu0和cpu2在系統(tǒng)中只起到脈沖發(fā)放的作用,激活時(shí)間較短;另一方面,cpu0和cpu2的激活時(shí)間完全相同,即時(shí)間同步完成后,同一級(jí)神經(jīng)元可以同時(shí)工作,很好地體現(xiàn)了實(shí)際生物神經(jīng)網(wǎng)絡(luò)中同級(jí)神經(jīng)元激活的并行性.
基于FPGA多核技術(shù)的脈沖神經(jīng)元系統(tǒng)實(shí)現(xiàn)了預(yù)期的功能,多核間的通信得到了很好的實(shí)現(xiàn),脈沖后神經(jīng)元輸出的波形與Matlab模擬波形基本一致.
本文所述的脈沖神經(jīng)元系統(tǒng),具有低成本、靈活性強(qiáng)和重復(fù)配置升級(jí)等眾多優(yōu)勢.FPGA技術(shù)與神經(jīng)網(wǎng)絡(luò)技術(shù)的結(jié)合是嵌入式神經(jīng)網(wǎng)絡(luò)技術(shù)最可行的發(fā)展方向.
圖9 邏輯分析儀波形
本文實(shí)現(xiàn)的是脈沖神經(jīng)網(wǎng)絡(luò)中的一個(gè)基本單元,通過結(jié)合脈沖神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法,可以很方便地搭建一個(gè)完整的脈沖神經(jīng)網(wǎng)絡(luò),用以完成更多復(fù)雜的任務(wù),也可以使用其他脈沖神經(jīng)元模型,優(yōu)化系統(tǒng)運(yùn)行速度,實(shí)現(xiàn)所需功能.
[1] 王鴻斌,張立毅,胡志軍.人工神經(jīng)網(wǎng)絡(luò)理論及其應(yīng)用[J].山西電子技術(shù),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的神經(jīng)網(wǎng)絡(luò)硬件實(shí)現(xiàn)研究[D].武漢:華中科技大學(xué),2012.
[9] 張文娟,王蕾,王連明.基于Nios Ⅱ的脈沖神經(jīng)網(wǎng)絡(luò)硬件實(shí)現(xiàn)方法[J].東北師大學(xué)報(bào)(自然科學(xué)版),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.
(責(zé)任編輯:石紹慶)
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
國家自然科學(xué)基金專項(xiàng)基金資助項(xiàng)目(21227008);中央高校基本科研業(yè)務(wù)費(fèi)專項(xiàng)基金資助項(xiàng)目(2412015KJ006).
張文娟(1983—),女,博士,工程師,主要從事嵌入式系統(tǒng)、智能信息處理研究.
TP 183 [學(xué)科代碼] 520·20
A