国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于FPGA并行加速的脈沖神經(jīng)網(wǎng)絡(luò)在線學(xué)習(xí)硬件結(jié)構(gòu)的設(shè)計(jì)與實(shí)現(xiàn)

2023-06-30 08:13:38劉怡俊曹宇葉武劍林子琦
關(guān)鍵詞:處理速度能耗神經(jīng)元

劉怡俊 曹宇 葉武劍? 林子琦

基于FPGA并行加速的脈沖神經(jīng)網(wǎng)絡(luò)在線學(xué)習(xí)硬件結(jié)構(gòu)的設(shè)計(jì)與實(shí)現(xiàn)

劉怡俊1曹宇2葉武劍1?林子琦2

(1. 廣東工業(yè)大學(xué) 集成電路學(xué)院,廣東 廣州 510006;2. 廣東工業(yè)大學(xué) 信息工程學(xué)院,廣東 廣州 510006)

當(dāng)前,基于數(shù)字電路的脈沖神經(jīng)網(wǎng)絡(luò)硬件設(shè)計(jì),在學(xué)習(xí)功能方面的突觸并行性不高,導(dǎo)致硬件整體延時(shí)較大,在一定程度上限制了脈沖神經(jīng)網(wǎng)絡(luò)模型在線學(xué)習(xí)的速度。針對上述問題,文中提出了一種基于FPGA并行加速的高效脈沖神經(jīng)網(wǎng)絡(luò)在線學(xué)習(xí)硬件結(jié)構(gòu),通過神經(jīng)元和突觸的雙并行設(shè)計(jì)對模型的訓(xùn)練與推理過程進(jìn)行加速。首先,設(shè)計(jì)具有并行脈沖傳遞功能和并行脈沖時(shí)間依賴可塑性學(xué)習(xí)功能的突觸結(jié)構(gòu);然后,搭建輸入編碼層和贏家通吃結(jié)構(gòu)的學(xué)習(xí)層,并優(yōu)化贏家通吃網(wǎng)絡(luò)的側(cè)向抑制的實(shí)現(xiàn),形成規(guī)模為784~400的脈沖神經(jīng)網(wǎng)絡(luò)模型。實(shí)驗(yàn)結(jié)果表明:在MNIST數(shù)據(jù)集上,使用該硬件結(jié)構(gòu)的脈沖神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練一幅圖像需要的時(shí)間為1.61 ms、能耗約為3.18 mJ,推理一幅圖像需要的時(shí)間為1.19 ms、能耗約為2.37 mJ,識別MNIST測試集樣本的準(zhǔn)確率可達(dá)87.51%;在文中設(shè)計(jì)的硬件框架下,突觸并行結(jié)構(gòu)能使訓(xùn)練速度提升38%以上,硬件能耗降低約24.1%,有助于促進(jìn)邊緣智能計(jì)算設(shè)備及技術(shù)的發(fā)展。

神經(jīng)網(wǎng)絡(luò);學(xué)習(xí)算法;加速;并行結(jié)構(gòu)

脈沖神經(jīng)網(wǎng)絡(luò)(SNN)作為第三代人工神經(jīng)網(wǎng)絡(luò),能通過神經(jīng)元產(chǎn)生脈沖來傳遞信息,具有稀疏性和事件驅(qū)動(dòng)特性。因此,相比于傳統(tǒng)的人工神經(jīng)網(wǎng)絡(luò)(ANN),SNN的工作方式更加接近生物神經(jīng)網(wǎng)絡(luò)的感知和處理模式,僅需要較少的計(jì)算資源和網(wǎng)絡(luò)層數(shù)據(jù)通信,使得能耗需求大大降低。

近年來,基于CPU和GPU的Brain/Brain 2[1]、CARLsim 4[2]等軟件的出現(xiàn),使得SNN的模擬仿真得以實(shí)現(xiàn),但它們存在并行度低、能耗高以及不適應(yīng)脈沖稀疏性等問題。硬件加速SNN的優(yōu)勢在于適應(yīng)事件驅(qū)動(dòng)、并行性高,可以加快處理速度,使用硬件數(shù)字電路構(gòu)建的SNN在處理速度上往往是軟件SNN的數(shù)百倍以上。因此,越來越多的研究人員投入到神經(jīng)形態(tài)硬件設(shè)計(jì)領(lǐng)域的研究工作中[3],基于專用集成電路(ASIC)和現(xiàn)場可編程門陣列(FPGA)等硬件結(jié)構(gòu)的神經(jīng)形態(tài)平臺相繼被提出。相較于ASIC,F(xiàn)PGA設(shè)計(jì)具有可編程、成本低、設(shè)計(jì)周期短的特點(diǎn),又能兼顧快速性和低功耗特性。因此,大多神經(jīng)形態(tài)平臺采用FPGA進(jìn)行設(shè)計(jì),并對基于神經(jīng)元模型[4-5]、可塑性突觸模型[6-8]、推理計(jì)算結(jié)構(gòu)[9-10]以及低功耗設(shè)計(jì)[11]的FPGA設(shè)計(jì)進(jìn)行了較好的優(yōu)化。

在線學(xué)習(xí)能實(shí)現(xiàn)SNN模型的在線訓(xùn)練與權(quán)值的實(shí)時(shí)更新,因而也逐漸被整合到神經(jīng)形態(tài)硬件平臺中。相關(guān)硬件電路的實(shí)現(xiàn)可減少網(wǎng)絡(luò)延遲,最小化功率[8],所以在線學(xué)習(xí)模塊也成為智能物聯(lián)網(wǎng)邊緣設(shè)備[12]的必備模塊之一。SNN訓(xùn)練方法包括反向傳播有監(jiān)督學(xué)習(xí)(STBP)、脈沖時(shí)間依賴塑性(STDP)無監(jiān)督學(xué)習(xí)、ANN-SNN權(quán)值遷移等。STDP學(xué)習(xí)規(guī)則是一種受生物學(xué)原理啟發(fā)的神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)方法,文獻(xiàn)[13]中的SNN模型與理論是STDP規(guī)則無監(jiān)督訓(xùn)練SNN的經(jīng)典應(yīng)用之一,該方法是通過構(gòu)建贏家通吃(WTA)結(jié)構(gòu)的SNN完成圖像學(xué)習(xí)和識別的任務(wù)。基于WAT結(jié)構(gòu)的SNN模型[13]如圖1所示,輸入編碼層全連接到興奮層的每一個(gè)神經(jīng)元,兩層之間的連接權(quán)值使用STDP規(guī)則進(jìn)行訓(xùn)練,興奮層每個(gè)神經(jīng)元向后連接一個(gè)抑制神經(jīng)元,通過這個(gè)神經(jīng)元來抑制興奮層的其他神經(jīng)元,形成競爭關(guān)系。這種情況下優(yōu)先被激活的一個(gè)或幾個(gè)神經(jīng)元,將會(huì)在后面的競爭中具有優(yōu)勢,從而持續(xù)響應(yīng)。

圖1 SNN模型

STDP學(xué)習(xí)算法僅涉及突觸前、后神經(jīng)元的局部脈沖時(shí)間差,非常適合硬件實(shí)現(xiàn)[14]。近些年逐漸出現(xiàn)了許多使用STDP規(guī)則進(jìn)行SNN在線訓(xùn)練的硬件數(shù)字電路設(shè)計(jì)工作,它們都是通過圖1所示的網(wǎng)絡(luò)來驗(yàn)證硬件的在線學(xué)習(xí)功能。Wang等[11]實(shí)現(xiàn)的SNN在線學(xué)習(xí)加速器,采用近似乘法器來降低功耗,但相同任務(wù)量下其訓(xùn)練時(shí)間與推理時(shí)間較長,未能真正達(dá)到降低能耗的效果。Li等[3]提出了一種具有自適應(yīng)的時(shí)鐘/事件驅(qū)動(dòng)計(jì)算方案,實(shí)現(xiàn)了快速節(jié)能的SNN在線學(xué)習(xí)處理器,每幅MNIST數(shù)據(jù)集圖像的平均推理用時(shí)為3.15 ms,能耗為5.04 mJ;訓(xùn)練用時(shí)為16.30 ms,能耗為26.32 mJ。Wu等[8]提出了基于快速收斂CORDIC算法的STDP規(guī)則,并實(shí)現(xiàn)了在線學(xué)習(xí)SNN的硬件設(shè)計(jì),處理每幅圖像用時(shí)為6.10 ms。Guo等[15]比較了歐拉方法和3階Runge-Kutta(RK3)方法實(shí)現(xiàn)數(shù)字化神經(jīng)元的不同,RK3方法雖然需要比較多的硬件資源,但訓(xùn)練速度相比于歐拉方法有較為明顯的提升。為了實(shí)現(xiàn)高效的SNN在線學(xué)習(xí)硬件,文獻(xiàn)[3,8,14-15]進(jìn)行了SNN數(shù)字電路實(shí)現(xiàn)方法、事件驅(qū)動(dòng)方法等方面的研究。然而,在突觸的脈沖傳遞功能和學(xué)習(xí)算法的并行方面,以往工作尚缺乏比較好的設(shè)計(jì)或方案。突觸是SNN的重要結(jié)構(gòu)之一,以往對脈沖傳遞和學(xué)習(xí)等突觸功能的設(shè)計(jì)通常是串行輸入、并行輸出,對SNN的處理速度尤其是對訓(xùn)練過程的處理速度依舊有比較大的限制。

針對這些問題,文中提出了一種可擴(kuò)展的高效SNN在線學(xué)習(xí)硬件結(jié)構(gòu)。首先,文中結(jié)合突觸功能和SNN事件驅(qū)動(dòng)特性設(shè)計(jì)出一種高度并行的突觸結(jié)構(gòu),根據(jù)前、后膜脈沖產(chǎn)生的并行情況設(shè)計(jì)突觸處理和計(jì)算的并行,并設(shè)計(jì)了相適應(yīng)的并行STDP算法硬件結(jié)構(gòu),以加快SNN的推理和在線學(xué)習(xí)速度;然后,提出了一種既符合脈沖稀疏性,又有利于并行處理的脈沖數(shù)據(jù)形式,統(tǒng)一突觸前后的脈沖表示方法,使硬件結(jié)構(gòu)具有擴(kuò)展?jié)摿?;最后,為了?jié)約硬件資源,文中提出了一種WTA結(jié)構(gòu)的側(cè)向抑制實(shí)現(xiàn)方法,以簡化WTA結(jié)構(gòu),進(jìn)而有利于在硬件上的部署與實(shí)現(xiàn)。

1 硬件結(jié)構(gòu)與并行設(shè)計(jì)

為了實(shí)現(xiàn)SNN的快速學(xué)習(xí)與推理,文中設(shè)計(jì)了一個(gè)基于FPGA的神經(jīng)形態(tài)硬件加速平臺,其內(nèi)部邏輯結(jié)構(gòu)如圖2所示。在FPGA中,使用泊松編碼的方法構(gòu)造并行的輸入編碼層,產(chǎn)生的脈沖傳送到并行突觸結(jié)構(gòu)的權(quán)重存儲(chǔ)塊矩陣;將并行的各路權(quán)重求和,送入并行神經(jīng)元計(jì)算結(jié)構(gòu);神經(jīng)元更新完成后神經(jīng)元計(jì)算結(jié)構(gòu)將產(chǎn)生的脈沖送入并行突觸結(jié)構(gòu)的STDP計(jì)算矩陣,與此同時(shí)輸入編碼層產(chǎn)生的脈沖也會(huì)送入STDP計(jì)算矩陣,依據(jù)這些從突觸前后膜送來的脈沖實(shí)現(xiàn)突觸的可塑性,完成SNN學(xué)習(xí);控制器控制以上過程有序進(jìn)行,并且通過串行數(shù)據(jù)接口完成請求圖像輸入和SNN運(yùn)行信息回傳的功能;外部存儲(chǔ)接口用于獲取、保存神經(jīng)元參數(shù)以及突觸權(quán)重;前端服務(wù)程序是一個(gè)控制臺程序,配合硬件完成SNN的學(xué)習(xí)與推理過程,完成硬件SNN的調(diào)試。

圖2 基于FPFA的神經(jīng)形態(tài)硬件平臺邏輯框圖

1.1 神經(jīng)元硬件形態(tài)

1.1.1神經(jīng)元并行計(jì)算模塊

使用FPGA實(shí)現(xiàn)SNN脈沖神經(jīng)元的方案是通過一個(gè)計(jì)算核心去更新一個(gè)神經(jīng)元狀態(tài)參數(shù)存儲(chǔ)塊,即將一個(gè)物理神經(jīng)元復(fù)用到多個(gè)邏輯神經(jīng)元,再將多個(gè)復(fù)用結(jié)構(gòu)并行,如圖3所示。

圖3 神經(jīng)元計(jì)算核心并行結(jié)構(gòu)

文中實(shí)現(xiàn)的神經(jīng)元?jiǎng)恿W(xué)模型是泄漏-積分-發(fā)放(LIF)模型。LIF模型是一種兼顧生物神經(jīng)元特性和計(jì)算復(fù)雜度的模型,文中采用歐拉方法對LIF神經(jīng)元模型進(jìn)行離散化處理,設(shè)計(jì)LIF計(jì)算單元。在計(jì)算單元完成膜電位計(jì)算后,將膜電位與神經(jīng)元閾值進(jìn)行比較,判斷是否發(fā)出脈沖。在圖3中,輸入神經(jīng)元群體的e表示神經(jīng)元計(jì)算核心接收的來自突觸的權(quán)重累加和,i表示神經(jīng)元接收到的抑制作用。文中在實(shí)現(xiàn)WTA結(jié)構(gòu)的SNN時(shí),對WTA網(wǎng)絡(luò)的側(cè)向抑制功能進(jìn)行了簡化,見圖3中的側(cè)向抑制模塊。

文中將圖3所示的結(jié)構(gòu)作為學(xué)習(xí)層神經(jīng)元,輸出脈沖數(shù)據(jù)由脈沖標(biāo)志(Spike flag)和脈沖序號(Spike id)兩部分組成,脈沖標(biāo)志的位數(shù)與神經(jīng)元計(jì)算單元的并行數(shù)相同。工作時(shí),一層內(nèi)的多個(gè)計(jì)算核心同步更新存儲(chǔ)塊內(nèi)的神經(jīng)元狀態(tài),當(dāng)計(jì)算核心檢測到有脈沖輸出時(shí),與計(jì)算核心相對應(yīng)的標(biāo)志位設(shè)置為1,其余無脈沖的標(biāo)志位設(shè)置為0,同時(shí)輸出該神經(jīng)元在片內(nèi)塊隨機(jī)存取存儲(chǔ)(BRAM)塊中的存儲(chǔ)序號作為脈沖id。這樣,不但可以滿足脈沖的稀疏性,還能夠適應(yīng)硬件結(jié)構(gòu)的并行性。

1.1.2輸入編碼

輸入層的主要功能是將輸入到脈沖神經(jīng)網(wǎng)絡(luò)的信息編碼成脈沖,文中采用泊松編碼方法。對輸入數(shù)據(jù)進(jìn)行編碼,需要隨機(jī)數(shù)生成器,文中使用線性反饋移位寄存器(LFSR)單元產(chǎn)生隨機(jī)數(shù),將輸入的像素?cái)?shù)據(jù)作為脈沖泊松編碼的頻率。參考神經(jīng)元計(jì)算核心的并行結(jié)構(gòu),文中將輸入編碼層設(shè)計(jì)成并行結(jié)構(gòu),輸出如圖3中所示的脈沖數(shù)據(jù)。

1.2 并行突觸結(jié)構(gòu)

設(shè)計(jì)具有在線學(xué)習(xí)功能的硬件SNN結(jié)構(gòu),突觸設(shè)計(jì)需要包含權(quán)重累加和STDP權(quán)重修改兩個(gè)功能。結(jié)合圖3中的脈沖表示方法,文中將邏輯框圖2中的并行突觸計(jì)算結(jié)構(gòu)設(shè)計(jì)成圖4所示的電路結(jié)構(gòu)。

圖4 并行STDP突觸結(jié)構(gòu)

1.2.1突觸并行設(shè)計(jì)

這種設(shè)計(jì)符合事件驅(qū)動(dòng)的特點(diǎn),提高了運(yùn)行速度。相比于傳統(tǒng)的依據(jù)突觸后膜神經(jīng)元計(jì)算單元的并行數(shù)量分塊存儲(chǔ)權(quán)重,文中的設(shè)計(jì)提高了并行程度,并且適應(yīng)了并行神經(jīng)元核心生成的自然脈沖表現(xiàn)形式,不需要對脈沖形式進(jìn)行解析,同時(shí)設(shè)計(jì)出相適應(yīng)的STDP算法并行結(jié)構(gòu),大大加快了硬件學(xué)習(xí)時(shí)的處理速度。

1.2.2突觸功能設(shè)計(jì)

圖5所示為文中設(shè)計(jì)的權(quán)重累加結(jié)構(gòu),在權(quán)重BRAM中,w表示前膜神經(jīng)元傳遞到后膜神經(jīng)元的權(quán)重值。假設(shè)突觸前膜神經(jīng)元有個(gè),突觸后膜神經(jīng)元有個(gè),將前膜相同的權(quán)重存放在連續(xù)的一片存儲(chǔ)空間中,形成圖5中的存儲(chǔ)形式。當(dāng)前膜神經(jīng)元的脈沖輸入到突觸時(shí),讀取出權(quán)重w0~w-1)與累加緩存中對應(yīng)位置的數(shù)值相加,再將結(jié)果保存到累加緩存中,直到每一個(gè)周期神經(jīng)元更新完成后,將累加緩存中的累加結(jié)果輸出并將其清0,完成前、后膜神經(jīng)元間的脈沖傳遞。

圖5 突觸權(quán)重累加結(jié)構(gòu)

文中使用數(shù)字電路完成了基于三相脈沖的STDP[16]規(guī)則的設(shè)計(jì),用于訓(xùn)練SNN,STDP模塊的結(jié)構(gòu)如圖6所示。每個(gè)突觸都需要兩個(gè)指數(shù)衰減的軌跡變量(、)來衡量前、后膜神經(jīng)元的放電時(shí)間差。

圖6 STDP模塊的結(jié)構(gòu)

文中設(shè)計(jì)了軌跡變量更新模塊,即圖4和圖6中的變量更新和變量更新,每當(dāng)前膜脈沖到達(dá)時(shí),突觸前軌跡變量被設(shè)置為1,無脈沖到達(dá)時(shí)按照指數(shù)規(guī)則衰減。同理,突觸后軌跡變量在突觸后膜神經(jīng)元被激活時(shí)被設(shè)置為1,否則按照指數(shù)規(guī)則衰減。文中使用歐拉方法實(shí)現(xiàn)STDP規(guī)則,即軌跡變量的差分計(jì)算公式為

硬件運(yùn)行時(shí),SNN依據(jù)突觸前、后膜脈沖情況進(jìn)行突觸訓(xùn)練,軌跡變量以及權(quán)重的變化過程如圖7所示??梢钥闯?,后膜脈沖作用時(shí),需要依據(jù)上一次前、后膜神經(jīng)元放電的時(shí)間,脈沖形成后-前-后或者前-后-后的形式,稱為基于三相脈沖的STDP學(xué)習(xí)規(guī)則。

圖7 STDP規(guī)則學(xué)習(xí)過程

1.3 改進(jìn)的WTA網(wǎng)絡(luò)側(cè)向抑制

文中使用WTA結(jié)構(gòu)的SNN作為學(xué)習(xí)層,其結(jié)構(gòu)如圖8(a)所示。在WTA網(wǎng)絡(luò)中,每個(gè)抑制性神經(jīng)元必然會(huì)跟隨輸入的興奮性神經(jīng)元響應(yīng),且對每一個(gè)興奮性神經(jīng)元產(chǎn)生的抑制作用是相同的,抑制神經(jīng)元的功能僅僅是向同層傳遞一個(gè)抑制作用。為了簡化結(jié)構(gòu)、降低能耗,文獻(xiàn)[8]使用抑制性突觸代替抑制性神經(jīng)元,形成圖8(b)所示的結(jié)構(gòu)。為更大程度地減少計(jì)算時(shí)間和硬件資源的消耗,文中提出了一種針對WTA結(jié)構(gòu)的側(cè)向抑制的實(shí)現(xiàn)方法,即不是構(gòu)造抑制性神經(jīng)元和突觸連接結(jié)構(gòu),而是利用一般性規(guī)律設(shè)計(jì)側(cè)向抑制,達(dá)到去掉抑制層神經(jīng)元實(shí)體,保留抑制作用的目的。

圖8 脈沖神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)

在每個(gè)抑制性神經(jīng)元具有相同突觸延時(shí)的情況下,抑制層的功能可以抽象為:在某一個(gè)時(shí)間窗口,統(tǒng)計(jì)興奮層的脈沖數(shù)目,然后往回作用到興奮層,產(chǎn)生脈沖的神經(jīng)元接收到的抑制作用強(qiáng)度將比未產(chǎn)生脈沖的神經(jīng)元少一個(gè)單位,如興奮層在某一時(shí)刻產(chǎn)生的脈沖數(shù)目為2,那么當(dāng)這兩個(gè)脈沖作用到興奮層時(shí),產(chǎn)生脈沖的兩個(gè)神經(jīng)元將接收到1個(gè)單位抑制作用,而其余神經(jīng)元將收到2個(gè)單位的抑制作用,文中將興奮層→抑制層→興奮層的脈沖傳輸過程的延時(shí)設(shè)為1個(gè)時(shí)間單位,即文中所描述SNN的一個(gè)工作周期。

1.4 高效的時(shí)序流程

為了使文中設(shè)計(jì)的各個(gè)部分協(xié)調(diào)運(yùn)行,從而高效地實(shí)現(xiàn)SNN的功能,文中提出了時(shí)間線上不同任務(wù)過程并發(fā)的設(shè)計(jì)原則:若處理過程中兩個(gè)任務(wù)不需要訪問一個(gè)存儲(chǔ)塊,則它們的功能就可以同時(shí)運(yùn)行,而無需相互等待。例如,編碼層生成脈沖與神經(jīng)元狀態(tài)更新這兩個(gè)任務(wù),在神經(jīng)元和輸入編碼產(chǎn)生脈沖時(shí),可以依據(jù)前膜送來的脈沖進(jìn)行權(quán)重累加,而無需等待所有神經(jīng)元更新后再進(jìn)行權(quán)重累加。

文中設(shè)計(jì)了如圖9所示的時(shí)間線并行執(zhí)行過程。SNN每個(gè)周期的工作任務(wù)有:脈沖產(chǎn)生(包括輸入編碼、神經(jīng)元狀態(tài)更新)、權(quán)重累加、突觸輸出以及STDP計(jì)算。權(quán)重累加是根據(jù)突觸前神經(jīng)元的激活情況累加權(quán)重值,權(quán)重輸出是突觸將每個(gè)周期脈沖的權(quán)重累加結(jié)果輸出給突觸后膜神經(jīng)元。STDP計(jì)算就是根據(jù)輸入的脈沖進(jìn)行學(xué)習(xí)的過程。

圖9 并行處理進(jìn)程

2 測試與結(jié)果分析

為了分析文中所提出的硬件結(jié)構(gòu)的性能,筆者在Xilinx的Kintex-7系列XC7K325T設(shè)備上實(shí)現(xiàn)784×400的WTA網(wǎng)絡(luò),突觸規(guī)模為784×400,采用16位定點(diǎn)數(shù)的形式存儲(chǔ)在片內(nèi)BRAM,系統(tǒng)時(shí)鐘為200 MHz。然后,使用MNIST訓(xùn)練集對SNN模型進(jìn)行在線訓(xùn)練,通過訓(xùn)練后學(xué)習(xí)層神經(jīng)元的輸入權(quán)重、識別MNIST測試集的準(zhǔn)確率等分析文中的SNN在線學(xué)習(xí)硬件的性能,以驗(yàn)證文中設(shè)計(jì)方案的可行性。文中統(tǒng)計(jì)了SNN硬件結(jié)構(gòu)學(xué)習(xí)6萬幅圖像樣本花費(fèi)的時(shí)間、輸入層產(chǎn)生的脈沖總量,并且計(jì)算出處理每幅圖像花費(fèi)的平均時(shí)間、輸入脈沖的平均處理速度,結(jié)合Vivado軟件綜合、實(shí)現(xiàn)后提供的片上總功耗,計(jì)算出處理每幅圖像的硬件能耗。分析突觸處理輸入脈沖的并行程度的改變對這些性能指標(biāo)的影響,反映出文中的并行設(shè)計(jì)對硬件在線學(xué)習(xí)的加速效果。

2.1 在線訓(xùn)練效果

在實(shí)驗(yàn)中,每幅圖像樣本送入后,SNN將運(yùn)行500 ms,其中前350 ms內(nèi),編碼層根據(jù)圖像像素進(jìn)行編碼生成脈沖,經(jīng)突觸傳向后層神經(jīng)元;后150 ms內(nèi),將編碼層的輸入頻率變?yōu)?,不加外部干預(yù),讓整個(gè)SNN模型自然恢復(fù)。將樣本圖像0~255的灰度值轉(zhuǎn)換為編碼層0~63.75 Hz的脈沖發(fā)放率,若激活的興奮性神經(jīng)元總數(shù)少于5,則將輸入層的發(fā)放率相應(yīng)增加0~30 Hz,重新運(yùn)行一次SNN。通過收集運(yùn)行過程中的數(shù)據(jù),可以得到圖10所示的SNN硬件運(yùn)行情況。

如圖10所示,輸入標(biāo)簽為2的MNIST樣本圖像,可以得到SNN的編碼層、學(xué)習(xí)層的脈沖情況。學(xué)習(xí)層僅有固定的一個(gè)或幾個(gè)神經(jīng)元在重復(fù)激活,說明文中設(shè)計(jì)的側(cè)向抑制功能正常。

完成硬件設(shè)計(jì)后,整個(gè)實(shí)驗(yàn)包括訓(xùn)練、神經(jīng)元賦值、測試3個(gè)過程[13]。在訓(xùn)練過程中,將MNIST訓(xùn)練集所有圖像依次傳入硬件SNN中,使硬件學(xué)習(xí)輸入的特征。神經(jīng)元賦值過程是:在訓(xùn)練完成后,再次輸入1萬幅MNIST訓(xùn)練集圖像,通過圖2中的前端服務(wù),統(tǒng)計(jì)學(xué)習(xí)層神經(jīng)元對不同標(biāo)簽的響應(yīng)的脈沖數(shù),脈沖數(shù)最大的標(biāo)簽即為對應(yīng)神經(jīng)元識別的類。經(jīng)過賦值過程后,每個(gè)神經(jīng)元都會(huì)識別一類輸入,在測試時(shí),輸入MNIST測試集數(shù)據(jù),在前端服務(wù)統(tǒng)計(jì)每一類的神經(jīng)元脈沖總數(shù),脈沖數(shù)最多的類即為模型對輸入的預(yù)測結(jié)果。

圖10 SNN硬件運(yùn)行情況

訓(xùn)練前、后學(xué)習(xí)層神經(jīng)元的輸入權(quán)重如圖11所示。學(xué)習(xí)層的每個(gè)神經(jīng)元與輸入編碼層都是全連接,因此每個(gè)神經(jīng)元都有784(28×28)個(gè)輸入權(quán)值,文中按照所連接的編碼層神經(jīng)元順序?qū)?quán)重值排列成28×28的矩陣,并轉(zhuǎn)換成灰度圖像,最后將不同神經(jīng)元的輸入權(quán)重圖排布成圖11所示的形式。在圖11中亮度越高的點(diǎn)表示傳遞給學(xué)習(xí)層神經(jīng)元的權(quán)重越高,連接度越強(qiáng)。訓(xùn)練前,初始權(quán)重是隨機(jī)生成的,因此圖中沒有表現(xiàn)出任何規(guī)律;訓(xùn)練后,每個(gè)神經(jīng)元的輸入權(quán)重會(huì)出現(xiàn)數(shù)字特征,這說明每個(gè)神經(jīng)元都習(xí)得了輸入圖像的一些特征。在進(jìn)行任務(wù)識別時(shí),各個(gè)神經(jīng)元會(huì)對具有相應(yīng)特征的輸入圖像產(chǎn)生響應(yīng),從而實(shí)現(xiàn)對手寫數(shù)字的識別。

圖11 學(xué)習(xí)層神經(jīng)元輸入權(quán)重

訓(xùn)練后,SNN模型識別MNIST測試集數(shù)據(jù)的準(zhǔn)確率可達(dá)87.51%,略高于相同規(guī)模下文獻(xiàn)[13]中的87.0%。

以上結(jié)果證明,文中實(shí)現(xiàn)的SNN硬件結(jié)構(gòu)整體運(yùn)行情況協(xié)調(diào)有序,可完成SNN在線學(xué)習(xí)任務(wù),設(shè)計(jì)的側(cè)向抑制功能和并行突觸結(jié)構(gòu)對輸入脈沖進(jìn)行并行處理的方法并不會(huì)影響SNN的學(xué)習(xí)效果。

2.2 硬件性能測試結(jié)果分析

在SNN功能測試的基礎(chǔ)之上,對文中的SNN硬件結(jié)構(gòu)的加速特性進(jìn)行分析。文獻(xiàn)[10,15]研究發(fā)現(xiàn),改變神經(jīng)元計(jì)算核心的并行數(shù)量可以使SNN硬件的處理速度受到影響。文中主要分析突觸的并行設(shè)計(jì)處理對SNN硬件的處理速度、能耗等性能的影響。結(jié)合圖2,文中將突觸對前膜神經(jīng)元輸入的處理并行路數(shù)稱為突觸前膜并行數(shù);突觸對后膜神經(jīng)元返回脈沖的處理路數(shù)稱為突觸后膜并行數(shù),也等于神經(jīng)元計(jì)算核心并行數(shù)量。這個(gè)并行結(jié)構(gòu)是文中設(shè)計(jì)的核心要點(diǎn),對SNN的脈沖處理具有加速的效果。

文中實(shí)現(xiàn)的WTA網(wǎng)絡(luò)結(jié)構(gòu),學(xué)習(xí)層神經(jīng)元的脈沖發(fā)放率比較低,因此改變突觸后膜并行數(shù)不能直接反映文中設(shè)計(jì)的加速效果。因而,文中固定后膜并行數(shù)量為8,改變前膜并行數(shù)量開展實(shí)驗(yàn),其中并行情況2×8表示突觸前膜并行數(shù)量為2,突觸后膜并行數(shù)量為8。

2.2.1資源利用率分析

使用Xilinx Vivado軟件綜合和實(shí)現(xiàn)后,統(tǒng)計(jì)了不同并行程度時(shí)SNN硬件中邏輯資源(查找表LUT、寄存器LUTRAM、觸發(fā)器FF等)、BRAM等資源消耗情況,結(jié)果如表1所示。設(shè)計(jì)時(shí),采用生成語句塊來擴(kuò)展突觸結(jié)構(gòu)的并行,獲得的資源消耗隨著前膜并行數(shù)量的增加整體上呈現(xiàn)線性增加趨勢。

從表1可知,除了BRAM的需求較高外,其他硬件資源的消耗總體上均保持在比較低的水平,而BRAM的資源消耗主要是用于權(quán)重存儲(chǔ)。在增加并行程度的情況下,受限于XC7K325T設(shè)備的片上BRAM數(shù)量,本研究只能實(shí)現(xiàn)313 600(784×400)個(gè)16位定點(diǎn)權(quán)重值的突觸結(jié)構(gòu),因而后續(xù)的實(shí)驗(yàn)數(shù)據(jù)均是在訓(xùn)練網(wǎng)絡(luò)規(guī)模為784×400的WTA網(wǎng)絡(luò)下獲得的。

表1 SNN硬件的資源使用

Table 1 Resource usage of SNN hardware

并行情況使用數(shù)量使用率/%片上總功耗/W LUTLUTRAMFFBRAMLUTLUTRAMFFBRAM 1×821 33591526 323266.010.471.436.4659.781.322 2×826 43694631 685282.012.971.487.7763.371.636 4×836 5361 01840 690314.017.931.599.9870.561.986 8×856 8421 27962 547379.527.892.0015.3585.282.906

2.2.2平臺加速性能分析

使用MNIST數(shù)據(jù)集訓(xùn)練SNN時(shí),SNN硬件的處理速度及能耗如表2所示。訓(xùn)練用時(shí)是輸入訓(xùn)練集圖像后訓(xùn)練SNN所用時(shí)間總和,沒有包含串口的傳入圖像和脈沖等數(shù)據(jù)的回傳時(shí)間。輸入脈沖數(shù)量是編碼層對所有訓(xùn)練集數(shù)據(jù)產(chǎn)生的脈沖總數(shù)。脈沖事件處理速度等于輸入脈沖數(shù)量除以訓(xùn)練用時(shí)。單幅圖像處理時(shí)間等于訓(xùn)練用時(shí)除以樣本圖像數(shù)。處理能耗是片上總功耗乘以圖像處理時(shí)間。這些數(shù)據(jù)可以反映出SNN訓(xùn)練架構(gòu)的性能。

從表2可以看出,對于在線學(xué)習(xí)任務(wù),突觸前膜并行數(shù)量從1變?yōu)?時(shí),硬件結(jié)構(gòu)處理脈沖事件的速度有明顯的提升,每幅圖像的處理時(shí)間可減少38%左右,處理能耗降低約24.1%。這說明文中的并行設(shè)計(jì)相比于傳統(tǒng)的突觸輸入串行處理,硬件處理脈沖事件的速度有一個(gè)質(zhì)的飛躍,也反映了文中設(shè)計(jì)的意義所在。隨著突觸前并行程度繼續(xù)提高,硬件處理速度有所提升,但能耗也在增加。因此,需要考慮硬件處理速度與能耗之間的折衷問題。在本次MNIST訓(xùn)練實(shí)驗(yàn)中,最低能耗出現(xiàn)在突觸前膜輸入并行數(shù)為2時(shí),但并行數(shù)為4時(shí)單幅圖像處理時(shí)間有所減少,且能耗的增加程度比較小,這在實(shí)際應(yīng)用中是值得考慮的??傮w上來說,在學(xué)習(xí)MNIST數(shù)據(jù)集時(shí),文中提出的SNN并行訓(xùn)練結(jié)構(gòu)每秒鐘處理的脈沖數(shù)量級約為106,每幅圖像樣本在硬件結(jié)構(gòu)中的訓(xùn)練用時(shí)在2 ms以內(nèi)。

2.3 與現(xiàn)有硬件結(jié)構(gòu)性能的比較分析

文中通過簡化抑制層的實(shí)現(xiàn)、增加脈沖傳遞和學(xué)習(xí)過程的并行處理等方面的設(shè)計(jì),提高了SNN硬件的學(xué)習(xí)處理速度。在此基礎(chǔ)上,將文中硬件的整體性能與文獻(xiàn)[3,11,15]中的硬件結(jié)構(gòu)性能進(jìn)行比較,結(jié)果如表3所示??梢钥闯?,文中設(shè)計(jì)的硬件結(jié)構(gòu)在處理速度和能耗方面有著比較明顯的優(yōu)勢。文獻(xiàn)[11]搭建的平臺較為特殊,其編碼層產(chǎn)生脈沖是在計(jì)算機(jī)端進(jìn)行的,通過串口將脈沖傳入到學(xué)習(xí)層,存在較大的傳輸延時(shí),處理速度方面文中僅作為參考,但其在近似乘法器簡化計(jì)算降低功耗方面的工作依然非常有參考意義。文獻(xiàn)[3]設(shè)計(jì)的結(jié)構(gòu)模塊化思想較清晰,直觀來看比較具有通用性,但作為數(shù)字電路設(shè)計(jì)其思路有些復(fù)雜。與文獻(xiàn)[3]結(jié)構(gòu)相比,文中設(shè)計(jì)的SNN硬件結(jié)構(gòu)更為簡單、高效,脈沖傳遞和并行處理的效率更高,在處理速度與能耗方面均有較為明顯的優(yōu)勢:訓(xùn)練(在線學(xué)習(xí))過程處理速度(單幅圖像處理時(shí)間)是文獻(xiàn)[3]結(jié)構(gòu)的10倍左右,但能耗僅是0.12倍;推理過程的處理速度為文獻(xiàn)[3]結(jié)構(gòu)的2.65倍,能耗也僅是0.47倍。與文獻(xiàn)[15]相比,文中的設(shè)計(jì)增加了前膜脈沖輸入的并行處理結(jié)構(gòu)和并行的STDP處理結(jié)構(gòu),因此能耗上相對略高,訓(xùn)練與推理過程每幅圖像的能耗均為文獻(xiàn)[15]的1.3倍左右,但處理速度卻均是20倍以上。文中側(cè)向抑制的實(shí)現(xiàn)方式?jīng)]有抑制神經(jīng)元更新方面的工作,也給文中設(shè)計(jì)的提速帶來一定的優(yōu)勢。

表2 學(xué)習(xí)MNIST數(shù)據(jù)集的加速情況

Table 2 Acceleration of learning MNIST datasets

任務(wù)并行情況樣本數(shù)/104訓(xùn)練用時(shí)/s輸入脈沖數(shù)量脈沖事件處理速度單幅圖像處理時(shí)間/ms單幅圖像處理能耗/mJ準(zhǔn)確率/% 在線學(xué)習(xí)1×86179.623152 777 357850 544.52.9943.95886.80 2×86110.189150 372 0471 364 673.81.8363.00487.41 4×8696.291150 255 9761 560 436.31.6053.18186.92 8×8690.802146 492 9961 613 323.41.5134.39887.51 推理1×8119.59626 248 9571 339 505.81.9602.59186.80 2×8112.91420 794 1151 610 199.31.2912.11387.41 4×8111.94125 913 6462 170 140.31.1942.36786.92 8×8111.71425 262 7902 156 632.21.1713.40487.51

表3 4種硬件的性能比較(學(xué)習(xí)MNIST數(shù)據(jù)集)

Table 3 Performance comparison among four hardwares (learning MNIST dataset)

硬件結(jié)構(gòu)系統(tǒng)時(shí)鐘/MHz數(shù)據(jù)格式學(xué)習(xí)算法FPGA設(shè)備神經(jīng)元模型神經(jīng)元總數(shù)突觸數(shù)量單幅圖像處理時(shí)間/ms單幅圖像處理能耗/mJ準(zhǔn)確率/% 在線學(xué)習(xí)推理在線學(xué)習(xí)推理 文獻(xiàn)[11]1208位固定STDPVirtex 6LIF1 591638 20816 800.008 400.001 330.001 120.0089.10 文獻(xiàn)[3]10016位浮點(diǎn)STDPVirtex 7LIF98488 40016.303.1526.325.0485.28 文獻(xiàn)[15]1008位固定STDPVirtex 7LIF1 184313 60034.0028.002.431.7389.70 文中設(shè)計(jì)20016位固定STDPKintex 7LIF1 184313 6001.611.193.182.3787.51

因使用FPGA芯片資源限制了文中SNN的規(guī)模,故文中設(shè)計(jì)的硬件結(jié)構(gòu)識別測試樣本的準(zhǔn)確率略低,但能達(dá)到目前主流水平[13]。依據(jù)表2及文獻(xiàn)[13]中軟件實(shí)現(xiàn)的理論分析結(jié)果,在資源相同的情況下,可以預(yù)測文中設(shè)計(jì)的硬件結(jié)構(gòu)在同樣規(guī)模的網(wǎng)絡(luò)下,將能獲得相近于其他SNN硬件學(xué)習(xí)平臺的識別效果,同時(shí)在處理速度方面也能保持優(yōu)勢。

3 結(jié)論

文中設(shè)計(jì)了一種快速高能效的SNN在線學(xué)習(xí)的數(shù)字電路并行方案,提出了一種高度并行的突觸結(jié)構(gòu),突觸前、后神經(jīng)元脈沖采用相同的表示形式,使結(jié)構(gòu)具有可擴(kuò)展性;為省略WAT網(wǎng)絡(luò)的抑制層,提出了一種實(shí)現(xiàn)側(cè)向抑制的簡化方案,節(jié)約了硬件資源開銷,并達(dá)到了與抑制層神經(jīng)元相同的效果。實(shí)驗(yàn)結(jié)果表明,文中提出的突觸并行結(jié)構(gòu)對每幅圖像的處理時(shí)間可減少38%左右,使用文中提出的結(jié)構(gòu)搭建規(guī)模為784×400的WTA網(wǎng)絡(luò)實(shí)驗(yàn)平臺,訓(xùn)練一幅MNIST圖像樣本的時(shí)間約為1.61 ms,需要能耗約3.18 mJ。文中設(shè)計(jì)的硬件SNN處理速度相比于傳統(tǒng)的軟件框架有百倍甚至千倍量級的提升,相比于同等條件下的硬件實(shí)現(xiàn),處理速度和功耗也有明顯的優(yōu)勢。

受限于芯片資源,文中未進(jìn)行更大規(guī)模神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的測試與研究,這將是今后進(jìn)行改進(jìn)的方向,做出多芯片擴(kuò)展方面的設(shè)計(jì)或者權(quán)重片外存儲(chǔ)的在線學(xué)習(xí)硬件神經(jīng)形態(tài)加速器,以更加靈活地實(shí)現(xiàn)更大規(guī)模和更深度的SNN。

[1] STIMBERG M,BRETTE R,GOODMAN D F M.Brian 2,an intuitive and efficient neural simulator[J].Elife,2019,8:e47314/1-10.

[2] CHOU T S,KASHYAP H J,XING J,et al.CARLsim 4:an open source library for large scale,biologically detailed spiking neural network simulation using heterogeneous clusters[C]∥ Proceedings of 2018 International Joint Conference on Neural Networks.Rio de Janeiro:IEEE,2018:1158-1165.

[3] LI S,ZHANG Z,MAO R,et al.A fast and energy-efficient SNN processor with adaptive clock/event-driven computation scheme and online learning[J].IEEE Transactions on Circuits and Systems I:Regular Papers,2021,68(4):1543-1552.

[4] SOLEIMANI H,AHMADI A,BAVANDPOUR M.Biologically inspired spiking neurons:piecewise linear models and digital implementation[J].IEEE Transactions on Circuits and Systems I:Regular Papers,2012,59(12):2991-3004.

[5] HEIDARPUR M,AHMADI A,AHMADI M,et al.CORDIC-SNN:on-FPGA STDP learning with Izhikevich neurons[J].IEEE Transactions on Circuits and Systems I:Regular Papers,2019,66(7):2651-2661.

[6] JOKAR E,SOLEIMANI H.Digital multiplierless realization of a calcium-based plasticity model[J].IEEE Transactions on Circuits and Systems Ⅱ:Express Briefs,2017,64(7):832-836.

[7] QUINTANA F M,PEREZ-PE?A F,GALINDO P L.Bio-plausible digital implementation of a reward modulated STDP synapse[J].Neural Computing and Applications,2022,34:15649-15660.

[8] WU J,ZHAN Y,PENG Z,et al.Efficient design of spiking neural network with STDP learning based on fast CORDIC[J].IEEE Transactions on Circuits and Systems I:Regular Papers,2021,68(6):2522-2534.

[9] WAN L,LUO Y,SONG S,et al.Efficient neuron architecture for FPGA-based spiking neural networks[C]∥ Proceedings of 2016 the 27th Irish Signals and Systems Conference.Londonderry:IEEE,2016:1-6.

[10] LIU Y,CHEN Y,YE W,et al.FPGA-NHAP:a general FPGA-based neuromorphic hardware acceleration platform with high speed and low power[J].IEEE Transactions on Circuits and Systems I:Regular Papers,2022,69(6):2553-2566.

[11] WANG Q,LI Y,SHAO B,et al.Energy efficient parallel neuromorphic architectures with approximate arithmetic on FPGA [J].Neurocomputing,2017,221:146-158.

[12] HE Z,SHI C,WANG T,et al.A low-cost FPGA implementation of spiking extreme learning machine with on-chip reward-modulated STDP learning[J].IEEE Transactions on Circuits and Systems Ⅱ:Express Briefs,2022,69(3):1657-1661.

[13] DIEHL P U,COOK M.Unsupervised learning of digit recognition using spike-timing-dependent plasticity[J].Frontiers in Computational Neuroscience,2015,9:99/1-9.

[14] VIGNERON A,MARTINET J.A critical survey of STDP in spiking neural networks for pattern recognition[C]∥ Proceedings of 2020 International Joint Conference on Neural Networks.Glasgow:IEEE,2020:1-9.

[15] GUO W,YANTIR H E,F(xiàn)OUDA M E,et al.Toward the optimal design and FPGA implementation of spiking neural networks[J].IEEE Transactions on Neural Networks and Learning Systems,2021,33(8):3988-4002.

[16] MORRISON A,AERTSEN A,DIESMANN M.Spike-timing-dependent plasticity in balanced random networks[J].Neural Computation,2007,19(6):1437-1467.

Design and Implementation of Hardware Structure for Online Learning of Spiking Neural Networks Based on FPGA Parallel Acceleration

1212

(1. School of Integrated Circuits,Guangdong University of Technology,Guangzhou 510006,Guangdong,China;2. School of Information Engineering,Guangdong University of Technology,Guangzhou 510006,Guangdong,China)

Currently, the hardware design of spiking neural networks based on digital circuits has a low synaptic parallel nature in terms of learning function, leading to a large overall hardware delay, which limits the speed of online learning of spiking neural network models to some extent. To address the above problems, this paper proposed an efficient spiking neural network online learning hardware architecture based on FPGA parallel acceleration, which accelerates the training and inference process of the model through the dual parallel design of neurons and synapses. Firstly, a synaptic structure with parallel spike delivery function and parallel spike time-dependent plasticity learning function was designed; then, the learning layers of input encoding layer and winner-take-all structure were built, and the implementation of lateral inhibition of the winner-take-all network was optimized, forming an impulsive neural network model with a scale of 784~400. The experiments show, the hardware has a training speed of 1.61 ms/image and an energy consumption of about 3.18 mJ/image for the SNN model and an inference speed of 1.19 ms/image and an energy consumption of about 2.37 mJ/image on the MNIST dataset, with an accuracy rate of 87.51%. Based on the hardware framework designed in this paper, the synaptic parallel structure can improve the training speed by more than 38%, and reduce the hardware energy consumption by about 24.1%, which can help to promote the development of edge intelligent computing devices and technologies.

neural network;learning algorithm;acceleration;parallel architecture

Supported by the Key-Area R&D Program of Guangdong Province (2018B030338001,2018B010115002)

10.12141/j.issn.1000-565X.220623

2022?09?27

廣東省重點(diǎn)領(lǐng)域研發(fā)計(jì)劃項(xiàng)目(2018B030338001,2018B010115002);廣州市基礎(chǔ)研究計(jì)劃基礎(chǔ)與應(yīng)用基礎(chǔ)研究項(xiàng)目(202201010595);廣東省教育廳創(chuàng)新人才項(xiàng)目;廣東工業(yè)大學(xué)“青年百人計(jì)劃”項(xiàng)目(220413548)

劉怡?。?977-),男,博士,教授,博士生導(dǎo)師,主要從事集成電路設(shè)計(jì)、類腦計(jì)算機(jī)、深度學(xué)習(xí)研究。E-mail:yjliu@gdut.edu.cn

葉武劍(1987-),男,博士,講師,主要從事類腦計(jì)算機(jī)、深度學(xué)習(xí)應(yīng)用研究。E-mail:yewjian@gdut.edu.cn

TP389.1

1000-565X(2023)05-0104-10

猜你喜歡
處理速度能耗神經(jīng)元
120t轉(zhuǎn)爐降低工序能耗生產(chǎn)實(shí)踐
昆鋼科技(2022年2期)2022-07-08 06:36:14
能耗雙控下,漲價(jià)潮再度來襲!
《從光子到神經(jīng)元》書評
自然雜志(2021年6期)2021-12-23 08:24:46
探討如何設(shè)計(jì)零能耗住宅
大數(shù)據(jù)視角下信息管理與信息系統(tǒng)專業(yè)建設(shè)分析
日本先進(jìn)的“零能耗住宅”
躍動(dòng)的神經(jīng)元——波蘭Brain Embassy聯(lián)合辦公
看電視太多 損害認(rèn)知功能
老同志之友(2016年5期)2016-05-14 07:10:19
基于二次型單神經(jīng)元PID的MPPT控制
毫米波導(dǎo)引頭預(yù)定回路改進(jìn)單神經(jīng)元控制
柞水县| 察隅县| 金湖县| 分宜县| 阿城市| 安西县| 罗田县| 康乐县| 蓬莱市| 大姚县| 西城区| 长春市| 桃江县| 刚察县| 临夏市| 松潘县| 惠水县| 葵青区| 张家口市| 启东市| 肥乡县| 股票| 黄平县| 和田县| 陆丰市| 龙江县| 志丹县| 兰西县| 文山县| 莒南县| 萝北县| 丘北县| 庆安县| 鲁甸县| 时尚| 揭东县| 屏东市| 突泉县| 霞浦县| 元朗区| 冕宁县|