亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于FPGA的Izhikevich神經(jīng)元定制計(jì)算方法

        2023-12-16 10:29:04葉鈞超柴志雷
        計(jì)算機(jī)工程 2023年12期
        關(guān)鍵詞:數(shù)據(jù)類型膜電位神經(jīng)元

        葉鈞超,徐 聰,黃 堯,柴志雷,2

        (1.江南大學(xué) 人工智能與計(jì)算機(jī)學(xué)院,江蘇 無(wú)錫 214122;2.江蘇省模式識(shí)別與計(jì)算智能工程實(shí)驗(yàn)室(江南大學(xué)),江蘇 無(wú)錫 214122)

        0 概述

        雖然人工神經(jīng)網(wǎng)絡(luò)已被證明在各種應(yīng)用中非常成功,但需要大量的計(jì)算能力提供支持。相比之下,脈沖神經(jīng)網(wǎng)絡(luò)(Spiking Neural Network,SNN)可以憑借事件驅(qū)動(dòng)[1]的特性進(jìn)行節(jié)能計(jì)算,并在實(shí)時(shí)應(yīng)用中顯示出巨大的潛力[2-5],因此廣泛應(yīng)用于大量任務(wù)中,如圖像[6]和孤立詞識(shí)別[7]、目標(biāo)檢測(cè)[8]、導(dǎo)航[9]和運(yùn)動(dòng)控制[10]。

        2003 年,IZHIKEVICH[11]引入了 一個(gè)基 于映射的模型(稱為Izhikevich 神經(jīng)元模型)。Izhikevich 模型結(jié)合了霍奇金-赫胥黎模型(Hodgkin-Huxley,HH)[12]生物行為多樣性以及帶泄露積分觸發(fā)模型(Leaky-Integrate-and-Fire,LIF)簡(jiǎn)單計(jì)算的優(yōu)點(diǎn),因此被普遍認(rèn)定為準(zhǔn)確且計(jì)算成本較低的模型。文獻(xiàn)[13]指出,在都利用前向歐拉數(shù)值方法求解常微分方程的條件下,在保持頻率誤差在1%以下且膜電位的誤差在0.015 mV 內(nèi)的精確度時(shí),仿真1 ms 時(shí)Izhikevich 神經(jīng)元所處理的操作數(shù)為1 400,是LIF 神經(jīng)元的30 多倍。因此,當(dāng)使用Izhikevich 模型在通用CPU平臺(tái)上進(jìn)行類腦仿真時(shí),會(huì)存在高能耗、低性能的問(wèn)題。利用GPU[14]多線程的并行屬性對(duì)Izhikevich 神經(jīng)元進(jìn)行加速優(yōu)化,以及利用超級(jí)計(jì)算機(jī)[15]通過(guò)確保隨機(jī)訪問(wèn)發(fā)生在高速緩存中進(jìn)行加速仿真,雖然都能解決通用CPU 平臺(tái)的低性能問(wèn)題,但會(huì)造成更高的能耗。如何在大規(guī)模仿真時(shí)保持高性能、靈活性以及低功率的設(shè)計(jì)成為一項(xiàng)挑戰(zhàn),F(xiàn)PGA 平臺(tái)[16]能以極低的能耗獲得較高的運(yùn)算性能,因此,F(xiàn)PGA在類腦領(lǐng)域受到廣泛的關(guān)注。

        近年來(lái),針對(duì)Izihkevich 神經(jīng)元在FPGA 上的研究逐漸深入。有研究者從簡(jiǎn)化計(jì)算的角度對(duì)Izhikevich 進(jìn)行優(yōu)化,利用旋轉(zhuǎn)坐標(biāo)數(shù)字計(jì)算方法(Coordinate Rotation Digital Computer,CORDIC)[17-18]近似替換Izhikevich 神經(jīng)元方程中的計(jì)算復(fù)雜的平方項(xiàng),以提升單個(gè)神經(jīng)元的更新計(jì)算效率。WANG 等[19]在前者的基礎(chǔ)上消除了冗余迭代和相關(guān)的計(jì)算,進(jìn)而提出了一種快速收斂的CORDIC 算法,這有助于縮小誤差與提高平方計(jì)算的效率。也有人通過(guò)設(shè)計(jì)一種新的硬件體系結(jié)構(gòu)[20-21]來(lái)縮短單個(gè)神經(jīng)元更新方程的流水線階段的時(shí)鐘周期,在不失去計(jì)算速度的情況下降低功耗。還有從更新方程的求解方法角度對(duì)Izhikevich 進(jìn)行優(yōu)化探索,如Moslem[22]通過(guò)對(duì)比速度、功耗等硬件性能指標(biāo)發(fā)現(xiàn)歐拉方法中的時(shí)間步長(zhǎng)能線性影響軟件仿真和硬件實(shí)現(xiàn)的性能,而最佳的步長(zhǎng)可以通過(guò)網(wǎng)絡(luò)中電流輸入的數(shù)量和每個(gè)輸入電流的最大權(quán)重來(lái)確定。上述這些關(guān)于Izhikevich 神經(jīng)元在FPGA 上的優(yōu)化研究都只注重針對(duì)單個(gè)神經(jīng)元性能、能耗的研究,沒(méi)有考慮不同精度數(shù)據(jù)類型帶來(lái)硬件資源、時(shí)間上的消耗,也沒(méi)有考慮整體網(wǎng)絡(luò)的優(yōu)化手段,而且沒(méi)有接入真實(shí)的類腦仿真平臺(tái)。如果考慮這些額外因素,則會(huì)面臨以下幾個(gè)挑戰(zhàn):一是Izhikevich 神經(jīng)元參數(shù)、種類很多,目前較少有針對(duì)這些參數(shù)數(shù)值、類別的具體分析;二是針對(duì)類腦軟硬件沒(méi)有一個(gè)通用數(shù)據(jù)接口。

        針對(duì)上述挑戰(zhàn),本文進(jìn)行以下工作:首先分析Izhikevich 神經(jīng)元模型各參數(shù)的取值范圍,并通過(guò)平衡誤差與資源消耗進(jìn)行混合精度定制設(shè)計(jì);然后提出一種定制化的數(shù)據(jù)流式計(jì)算架構(gòu),在接口處利用數(shù)據(jù)重排支持后續(xù)多個(gè)神經(jīng)元處理單元的同時(shí)更新,并使用平衡數(shù)據(jù)路徑的方式優(yōu)化單個(gè)神經(jīng)元更新的流水線階段;最后將該架構(gòu)用于NEST 仿真器加速,支持多種基于Izhikevich 的脈沖神經(jīng)網(wǎng)絡(luò)。

        1 Izhikevich 神經(jīng)元

        1.1 Izhikevich 神經(jīng)元計(jì)算模型

        Izhikevich 神經(jīng)元是一種計(jì)算高效的模型,由兩個(gè)耦合的常微分方程組成,雖然計(jì)算相對(duì)簡(jiǎn)單,但可以至少實(shí)現(xiàn)20 種生物尖峰神經(jīng)元的計(jì)算特性。下面介紹兩個(gè)耦合的常微分方程:

        其中:v是膜電位;u是恢復(fù)變量;Ie是外部施加電流;vth是閾值電位;a是恢復(fù)變量u的時(shí)間尺度;b是u對(duì)v的敏感度;c是神經(jīng)元在發(fā)射脈沖尖峰后v的復(fù)位值;d是神經(jīng)元在發(fā)射脈沖尖峰后u的復(fù)位值。

        與Izhikevich 模型相比,LIF 神經(jīng)元模型只涉及到一個(gè)微分方程,將神經(jīng)元膜建模為電容為C的電容器與電阻為R的電阻器并聯(lián),然后更新方程如式(4)和式(5)所示:

        其中:τm=RC是電路的時(shí)間常數(shù);I是刺激電流。一旦膜電位超過(guò)閾值電位(vth),膜電位就會(huì)被重置成靜止值(vrst)。

        分析比較兩者的更新方程可知,LIF 模型更新方程因其過(guò)于簡(jiǎn)單,所以無(wú)法展現(xiàn)出具有生物特征的多種尖峰行為,而Izhikevich 模型不僅計(jì)算方程較為簡(jiǎn)單,還可以通過(guò)調(diào)節(jié)a、b、c、d等參數(shù)的值產(chǎn)生不同的尖峰行為,以表現(xiàn)出神經(jīng)元多樣的生物特征行為。Izhikevich 神經(jīng)元模型結(jié)合了HH 模型的生物學(xué)合理性以及LIF 模型的計(jì)算效率,這種神經(jīng)元模型能夠重現(xiàn)許多不同的神經(jīng)元?jiǎng)恿W(xué)和可能發(fā)生在生物尖峰神經(jīng)元中的脈沖發(fā)射行為。

        相比較四階Runge-Kutta 法和指數(shù)歐拉法這兩種求解常微分的方法,方程經(jīng)過(guò)前向歐拉法求解后的計(jì)算復(fù)雜度較低,計(jì)算成本相對(duì)較少。因此,利用前向歐拉法對(duì)時(shí)間步長(zhǎng)(?t=0.1 ms)的常微分方程式(1)和式(2)進(jìn)行數(shù)值求解,可得式(6)和式(7):

        1.2 基于Izhikevich 的SNN 網(wǎng)絡(luò)計(jì)算特性分析

        SNN 網(wǎng)絡(luò)主要由兩部分組成:神經(jīng)元和突觸。脈沖神經(jīng)網(wǎng)絡(luò)仿真模擬時(shí)間開銷主要集中在神經(jīng)元更新和突觸傳遞上,具體的兩部分的時(shí)間占比會(huì)因突觸、神經(jīng)元、網(wǎng)絡(luò)拓?fù)涞鹊牟煌兴町?。相比較基于LIF 的SNN 網(wǎng)絡(luò),基于Izhikevich 的網(wǎng)絡(luò)因其膜電位更新方程更復(fù)雜,其神經(jīng)元更新計(jì)算的時(shí)間占比更大。

        一個(gè)仿生型的脈沖神經(jīng)網(wǎng)絡(luò)的規(guī)模通常達(dá)到幾百萬(wàn)甚至億級(jí)的數(shù)量,使用分布式多節(jié)點(diǎn)的手段,在單節(jié)點(diǎn)上也將達(dá)到幾千到幾萬(wàn)的規(guī)模。即使選擇最簡(jiǎn)單的歐拉法求解常微分方程,單個(gè)神經(jīng)元完成一次更新仍需要15 次運(yùn)算操作,最后乘以神經(jīng)元的數(shù)量以及更新的次數(shù),將會(huì)達(dá)到一個(gè)幾千萬(wàn)到幾十億的運(yùn)算操作[23]。完成運(yùn)算操作的數(shù)據(jù)是用雙精度浮點(diǎn)數(shù)據(jù)類型表示的,這對(duì)計(jì)算機(jī)的硬件資源有很高的要求,而且浮點(diǎn)計(jì)算的一次操作需要多個(gè)時(shí)鐘周期才能完成,所以全部操作完成相應(yīng)的時(shí)間成本會(huì)很高。多節(jié)點(diǎn)的分布式技術(shù)能緩解資源不夠、時(shí)間開銷大的問(wèn)題,但使用浮點(diǎn)計(jì)算的單節(jié)點(diǎn)因資源受限無(wú)法進(jìn)行較多神經(jīng)元的更新,需要依靠更多的節(jié)點(diǎn)滿足仿真所需。減少位寬表示的定點(diǎn)化數(shù)據(jù)能極大程度上緩解資源受限的問(wèn)題,在有限的硬件資源內(nèi)支持更多神經(jīng)元的更新,并且還能縮短一定的神經(jīng)元更新時(shí)間。定點(diǎn)化操作不可避免地會(huì)帶來(lái)一定程度的數(shù)值誤差,但神經(jīng)元膜電位在每次發(fā)射脈沖的時(shí)候會(huì)恢復(fù)到一個(gè)固定的值,這個(gè)過(guò)程將會(huì)把之前仿真累計(jì)的誤差清零,因而盡管在脈沖數(shù)值上會(huì)有細(xì)微差別,但膜電位波形圖、脈沖發(fā)射頻率等并不會(huì)受到影響。

        NEST 仿真器是由時(shí)間和事件混合驅(qū)動(dòng)的,即神經(jīng)元的更新不僅與輸入電流有關(guān),還與相應(yīng)的脈沖事件有關(guān)。時(shí)間驅(qū)動(dòng)是神經(jīng)元的膜電位因持續(xù)不斷受到輸入電流的刺激而到達(dá)閾值并發(fā)射脈沖,事件驅(qū)動(dòng)是脈沖事件被分發(fā)給相連的神經(jīng)元以更新后者的膜電位。通常這個(gè)事件會(huì)有一定的延遲,這是因?yàn)榉抡嫫髟谝粋€(gè)固定的時(shí)間片內(nèi)會(huì)收集延遲內(nèi)出現(xiàn)的所有脈沖事件再分發(fā)到目標(biāo)神經(jīng)元內(nèi)的下一延遲(事件驅(qū)動(dòng))。這表明在單個(gè)時(shí)間片內(nèi),所有神經(jīng)元之間都是數(shù)據(jù)無(wú)關(guān)的,理論上是可以完全并行的,這部分可以完全在硬件平臺(tái)上進(jìn)行加速優(yōu)化,脈沖事件也在此并行地紀(jì)錄、收集。存儲(chǔ)神經(jīng)元連接情況的數(shù)據(jù)結(jié)構(gòu)需要較大的內(nèi)存,而通常硬件加速平臺(tái)片上的存儲(chǔ)資源并不多,因此脈沖事件分發(fā)適合放在片外即依舊由軟件仿真平臺(tái)執(zhí)行。另外,優(yōu)化加速的并行度會(huì)受限于平臺(tái)的硬件資源,可以根據(jù)單個(gè)神經(jīng)元更新處理單元在不同平臺(tái)上的資源消耗情況實(shí)例化不同的數(shù)量。這就要求程序在并行更新計(jì)算前,有一個(gè)模塊負(fù)責(zé)把片外串行邏輯的數(shù)據(jù)讀取到片上,并且重排這些數(shù)據(jù)以便后續(xù)的并行更新計(jì)算模塊能進(jìn)行并行讀取。

        2 基于FPGA 的定制計(jì)算方法設(shè)計(jì)

        2.1 混合精度的定制設(shè)計(jì)

        2.1.1 可拓展的整數(shù)位寬

        針對(duì)基于Izhikevich的SNN 應(yīng)用,Izhikevich神經(jīng)元的a、b、c、d、vth參數(shù)只在生成神經(jīng)元的時(shí)候被賦予初值且在整個(gè)仿真過(guò)程中保持不變,可以針對(duì)這些參數(shù)的值進(jìn)行位寬的定制優(yōu)化設(shè)計(jì)。文獻(xiàn)[12]中提到的一組Izhikevich模型經(jīng)典的、廣泛使用的參數(shù)值為:

        根據(jù)這組值,可以把參數(shù)a、b、c、d、vth的整數(shù)部分位寬分別設(shè)計(jì)成2、2、8、3、7 bit,其中還包含1 bit的符號(hào)位,那么a的取值范圍為[-1,1],b的取值范圍為[-1,1],c的取值范圍為[-128,128],d的取值范圍為[-4,4],vth的取值范圍為[-64,64]。在類腦領(lǐng)域較為常用的ModelDB 官網(wǎng)上,收集所有出現(xiàn)過(guò)的Izhikevich 模型,統(tǒng)計(jì)各參數(shù)的值,如圖1 所示。比較統(tǒng)計(jì)的參數(shù)值與設(shè)計(jì)參數(shù)的取值范圍,設(shè)計(jì)的混合數(shù)據(jù)類型不僅適用于經(jīng)典值,還適用于絕大部分的Izhikevich 模型,而對(duì)于少數(shù)不在表示范圍內(nèi)的值,可以根據(jù)具體參數(shù)的值修改相應(yīng)參數(shù)的整數(shù)部分位寬以適應(yīng)模型的需要。

        生物細(xì)胞膜電位v的值域?yàn)椋?100 mv,60 mv],因此可以設(shè)計(jì)該參數(shù)的整數(shù)部分位寬為9bit。方程中v2項(xiàng)的值域?yàn)?~10000,214=16384 能滿足表示范圍,還需要加上一位符號(hào)位即整數(shù)部分位數(shù)為15 位。根據(jù)式(7)中a和Δt都小于1,因而恢復(fù)變量u的值域小于v,因此設(shè)計(jì)u和v相同的數(shù)據(jù)類型,即整數(shù)位寬也為9 bit。

        最后是關(guān)于權(quán)重的值域。并不是所有SNN 模型權(quán)重都能做定點(diǎn)化,可定點(diǎn)化的主要分兩類:一類是機(jī)器學(xué)習(xí)方向上訓(xùn)練好的SNN 模型,其權(quán)重參數(shù)固定,可以定點(diǎn)化;另一類是脈沖發(fā)射率較為平衡的SNN 網(wǎng)絡(luò),這類網(wǎng)絡(luò)最后能平衡下來(lái),其權(quán)重的值域較為恒定,可以定點(diǎn)化。收集上述兩種特征的SNN 模型并運(yùn)行,其權(quán)重的分布情況如圖2 所示。實(shí)驗(yàn)結(jié)果表明,這兩類Izhikevich 神經(jīng)元的權(quán)重集中分布在-100~30 之間,設(shè)置整數(shù)位寬為8 bit 就能滿足多數(shù)SNN 模型。如果是脈沖發(fā)射率較為恒定的SNN 模型,則先在軟件上運(yùn)行并統(tǒng)計(jì)其權(quán)重集中的值域,再設(shè)計(jì)特定的位寬,實(shí)現(xiàn)更低的資源消耗以及更短的仿真時(shí)間。

        圖2 Izhikevich 神經(jīng)元權(quán)重值分布Fig.2 Izhikevich neuron weight value distribution

        2.1.2 小數(shù)部分的精度設(shè)計(jì)

        在仿真中,任意神經(jīng)元參數(shù)小數(shù)部分的設(shè)計(jì)將直接影響仿真時(shí)膜電位的數(shù)值變化進(jìn)而改變神經(jīng)元脈沖的發(fā)射狀態(tài)。以參數(shù)膜電位小數(shù)部分位寬的選取為例,式(9)為膜電位的相對(duì)誤差(verr)公式,其中,vfix為各位寬下表示的膜電位數(shù)值,vdouble是用雙精度浮點(diǎn)表示的膜電位數(shù)值,統(tǒng)計(jì)不同位寬下的神經(jīng)元在仿真模擬30 步后的膜電位相對(duì)誤差,如圖3 所示。

        圖3 各位寬下膜電位的相對(duì)誤差Fig.3 Membrane potential's relative error with each bit width

        隨著小數(shù)部分位寬增加,膜電位的相對(duì)誤差不斷減小,在位寬達(dá)到21 bit 以后,該相對(duì)誤差減小得很緩慢,更多的位寬會(huì)消耗更多的硬件資源。本文實(shí)驗(yàn)選取的模型對(duì)于仿真后的膜電位數(shù)值有著較高的精度要求,因而選取小數(shù)點(diǎn)位寬為21 bit,精度達(dá)到10-5。對(duì)于膜電位數(shù)值精度需求不高的SNN 模型,可以通過(guò)縮小小數(shù)部分的位寬來(lái)減少硬件資源的消耗。根據(jù)上述方法對(duì)Izhikevich 神經(jīng)元所有參數(shù)定制相應(yīng)小數(shù)部分的位寬,統(tǒng)計(jì)結(jié)果如表1 所示,其中,“—”表示沒(méi)有相應(yīng)的經(jīng)典值。

        表1 各參數(shù)的混合精度設(shè)計(jì)Table 1 Mixed precision design of each parameter

        在SNN 仿真中,把所有的參數(shù)分為兩類:定量和變量。定量是Izhikevich 的a、b、c、d、vth參數(shù),變量是Izhikevich 的權(quán)重weight、膜電位v、恢復(fù)變量u。對(duì)于不同Izhikevich 神經(jīng)元,只需根據(jù)定量的值與變量值域修改相應(yīng)的整數(shù)、小數(shù)部分位寬就能滿足不同類腦模型的仿真。

        2.2 可定制數(shù)據(jù)流式架構(gòu)設(shè)計(jì)

        根據(jù)1.2 節(jié)的分析結(jié)論把一個(gè)延遲內(nèi)神經(jīng)元的更新放在FPGA的可編程邏輯(PL)部分并行執(zhí)行,有一個(gè)數(shù)據(jù)預(yù)處理單元負(fù)責(zé)對(duì)片外的數(shù)據(jù)進(jìn)行讀取、重排以便后續(xù)的并行更新,還有一個(gè)單元整理并行更新后的數(shù)據(jù)并傳回給片外。神經(jīng)元間通信則由軟件仿真器執(zhí)行,如此反復(fù)循環(huán)以完成脈沖神經(jīng)網(wǎng)絡(luò)的仿真。

        2.2.1 整體架構(gòu)設(shè)計(jì)

        如圖4 所示,該圖整體是一種ARM+FPGA 的異構(gòu)混合結(jié)構(gòu),主要包括3 個(gè)主要組件:片外外部緩存(DDR,頂部),應(yīng)用處理單元(APU,中間),可編程邏輯部分(PL,下部的虛線框部分),其中仿真器的軟件部分運(yùn)行在DDR 上的Linux 系統(tǒng)環(huán)境上,硬件加速部分運(yùn)行在PL 部分。本文實(shí)驗(yàn)提出了一種可定制的數(shù)據(jù)流式架構(gòu),可定制具體體現(xiàn)在兩個(gè)方面:1)可以對(duì)不同Izhikevich 神經(jīng)元的不同參數(shù)進(jìn)行混合精度的定制;2)可以根據(jù)不同的FPGA 資源確定合適的處理單元的數(shù)目。首先在ARM 端的片外外部緩存(External Memory,EM)內(nèi)準(zhǔn)備好PL 端所需的數(shù)據(jù),PL 端使用AXI 協(xié)議通過(guò)HP 口對(duì)EM 進(jìn)行訪問(wèn)讀取。數(shù)據(jù)首先會(huì)進(jìn)入重分配的處理單元,該單元主要負(fù)責(zé)為后續(xù)的并行處理單元進(jìn)行數(shù)據(jù)的重組,其中處理單元的數(shù)量隨FPGA 硬件邏輯資源的不同而不同;其次,當(dāng)數(shù)據(jù)進(jìn)入單個(gè)處理單元內(nèi),將Izhikevich 神經(jīng)元的更新方程的流水化階段縮減為7 個(gè)階段;最后,有一個(gè)處理單元專門負(fù)責(zé)數(shù)據(jù)的整合以及脈沖記錄信息,并返回給ARM 端以便后續(xù)的仿真過(guò)程。

        圖4 可定制數(shù)據(jù)流架構(gòu)Fig.4 Customizable data flow architecture

        2.2.2 數(shù)據(jù)重排

        在ARM 端會(huì)對(duì)存儲(chǔ)在神經(jīng)元本地環(huán)形緩沖區(qū)內(nèi)的數(shù)據(jù)進(jìn)行一次重組,充分使用64 bit、128 bit 的HP 端口的數(shù)據(jù)傳輸帶寬,如圖5 所示。在PL 端的數(shù)據(jù)預(yù)處理單元,會(huì)對(duì)ARM 端重組后發(fā)送過(guò)來(lái)的數(shù)據(jù)進(jìn)行一次重分配,以滿足在PL 部分各神經(jīng)元更新處理單元的計(jì)算所需。重分配分3 步:第1 步按32 bit讀取數(shù)據(jù)到相應(yīng)的參數(shù)內(nèi),第2 步需要把相同的參數(shù)集合在一起,第3 步把這些參數(shù)均勻地分發(fā)給各處理單元。數(shù)據(jù)重分配會(huì)帶來(lái)額外硬件資源開銷以及時(shí)間開銷,開銷的大小與并行度有關(guān)系。

        圖5 FPGA 上的數(shù)據(jù)重分配Fig.5 Data redistribution on FPGA

        2.2.3 最小化神經(jīng)元更新方程的數(shù)據(jù)路徑

        分析式(3)、式(6)和式(7)得知,在vt和0.04 相乘的同時(shí),可以進(jìn)行vt與5 的乘法以及140 與ut的減法,以此類推,就把整個(gè)更新公式內(nèi)具備并行運(yùn)算條件的部分都進(jìn)行并行計(jì)算,目的是為了平衡數(shù)據(jù)路徑,使流水線階段整體的最小化。經(jīng)過(guò)優(yōu)化后的硬件實(shí)現(xiàn)如圖6 所示,其中,thre 是閾值。定點(diǎn)化后使用提供的計(jì)算邏輯資源都能在一個(gè)時(shí)鐘周期內(nèi)完成加、減和乘法等操作,完成單個(gè)神經(jīng)元單次更新所需的流水線時(shí)間從原先的15 個(gè)時(shí)鐘周期縮小到7 個(gè),如果是float、double 等浮點(diǎn)類型表示的數(shù)據(jù),則不能在一個(gè)周期內(nèi)完成加、減和乘法操作,而且并不會(huì)帶來(lái)額外電路開銷,這是因?yàn)樵诙际褂昧魉€的情況下,原先串行流水線第一階段的加、減和乘法器并不會(huì)給第二階段復(fù)用,而是處理下一個(gè)進(jìn)來(lái)的數(shù)據(jù)。

        圖6 單Izhikevich 神經(jīng)元的硬件設(shè)計(jì)Fig.6 Hardware design of a Izhikevich neuron

        2.2.4 可定制的并行度

        各神經(jīng)元之間更新所需的參數(shù)獨(dú)立,不存在數(shù)據(jù)的依賴關(guān)系,因而可以對(duì)神經(jīng)元更新部分進(jìn)行并行化處理。但由于數(shù)據(jù)的吞吐量和FPGA 邏輯資源的限制,更新計(jì)算的并行度有一定的局限性,在資源不足的情況下,通過(guò)設(shè)計(jì)低并行結(jié)合流水化架構(gòu)的方式可以大大提高資源的利用率以及整體的計(jì)算性能。假設(shè)并行度為P,則針對(duì)Izhikevich 神經(jīng)元的并行流水設(shè)計(jì)如圖7 所示,對(duì)于不同的FPGA 平臺(tái),所擁有的邏輯資源是不同的,因而在各平臺(tái)上并行度的最佳值是可定制調(diào)節(jié)的。在神經(jīng)元更新程序的最外部設(shè)置一個(gè)并行度的參數(shù)P,通過(guò)觀察系統(tǒng)仿真消耗的各種資源情況調(diào)整合適的數(shù)值。

        圖7 多神經(jīng)元更新優(yōu)化前后對(duì)比Fig.7 Comparison before and after multi-neuron update optimization

        假設(shè)一個(gè)神經(jīng)元完成一次更新的3 個(gè)階段時(shí)間分別為Tr、Tc、Td,其中,Tr為數(shù)據(jù)讀取階段,Tc為數(shù)據(jù)計(jì)算階段,Td為數(shù)據(jù)寫回階段,即總時(shí)間LLatency=Tr+Tc+Td。那么串行完成N個(gè)神經(jīng)元更新所需的時(shí)間NLatency=(Tr+Tc+Td)×N,當(dāng)使用流水線結(jié)合并行的架構(gòu)處理時(shí),其總體所需時(shí)間如式(10)所示:

        其中:P為并行度。

        3 基于Izhikevich 加速的NEST 仿真器

        3.1 基于NEST 的軟硬件系統(tǒng)設(shè)計(jì)

        為了解決ARM 和PL 部分之間頻繁的數(shù)據(jù)通信問(wèn)題,將PYNQ-Z2 的片上內(nèi)存DDR 專門劃分出一部分用于兩者間數(shù)據(jù)通信,避免每次通信時(shí)都要申請(qǐng)內(nèi)存。這里以PYNQ 舉例,PYNQ 有512 MB 的DDR,內(nèi)存地址為0x0~0x20000000,PYNQ 在開啟狀態(tài)可用內(nèi)存約為350 MB,留給NEST 的內(nèi)存大小為200 MB,本文將共享內(nèi)存大小設(shè)定為64 MB,滿足式(11)的計(jì)算需求:

        其中:ppara_num表示神經(jīng)元的參數(shù)數(shù)量;IIZHI_num為神經(jīng)元數(shù)量;ttype_data表示各參數(shù)對(duì)應(yīng)的數(shù)據(jù)類型;SSTEP為仿真一個(gè)時(shí)間片的大小。

        SSTEP在NEST 中由式(12)獲得:

        其中:ddelay表示最小時(shí)延。

        如圖8 所示,Host 端通過(guò)串口運(yùn)行Processing System(PS)上基于NEST 仿真器的樣例程序,架構(gòu)將NEST 仿真器中突觸、神經(jīng)元的搭建、脈沖分發(fā)等任務(wù)切換較為頻繁的部分運(yùn)行在ARM 上,把重復(fù)計(jì)算的神經(jīng)元更新部分放到PL 上進(jìn)行加速。當(dāng)仿真程序運(yùn)行到神經(jīng)元更新時(shí),ARM 會(huì)將DDR 上的參數(shù)緩存、脈沖事件等地址信息通過(guò)通用的AXI Master 接口傳輸給PL,然后PL 部分的數(shù)據(jù)預(yù)處理模塊根據(jù)地址信息通過(guò)AXI HP 口對(duì)DDR 進(jìn)行數(shù)據(jù)讀取。HP 端口在PYNQ-Z2 上最大以64 bit讀取一個(gè)數(shù)據(jù),而在ZCU102 上則可以達(dá)到128 bit 讀取一個(gè)數(shù)據(jù),相當(dāng)于一次能傳送多個(gè)數(shù)據(jù)。在PL 上有一個(gè)數(shù)據(jù)預(yù)處理單元,首先對(duì)讀取到的數(shù)據(jù)塊進(jìn)行解包操作,即還原成32 bit 的數(shù)據(jù)格式,然后把數(shù)據(jù)平均分給后續(xù)實(shí)例化神經(jīng)元更新單元。更新完的數(shù)據(jù)以及脈沖事件等信息會(huì)通過(guò)數(shù)據(jù)打包發(fā)送處理單元傳回PS,并存儲(chǔ)到DDR 內(nèi)以供后續(xù)的仿真計(jì)算。

        圖8 基于NEST 的系統(tǒng)結(jié)構(gòu)Fig.8 NEST-based system structure

        3.2 通用數(shù)據(jù)傳輸接口設(shè)計(jì)

        FPGA 上的PL 部分與ARM 上的共享內(nèi)存進(jìn)行數(shù)據(jù)傳輸會(huì)花費(fèi)一定的時(shí)間,如果PL 頻繁訪問(wèn)共享內(nèi)存則會(huì)導(dǎo)致數(shù)據(jù)讀取時(shí)間增加,因此,應(yīng)盡可能地減少共享內(nèi)存的訪問(wèn)次數(shù)。所有神經(jīng)元的初值可以在本地存放,把整個(gè)時(shí)間步長(zhǎng)內(nèi)的計(jì)算放到FPGA里面,只需在最后完成階段返回發(fā)生改變的膜電位v、恢復(fù)變量u和發(fā)射脈沖的相關(guān)信息,而不是每一小步都寫回v和u,減少了PL 端訪問(wèn)共享內(nèi)存的次數(shù)。不過(guò)考慮到脈沖權(quán)重weight 參數(shù)的數(shù)據(jù)量較大而且不需要寫回,因而選擇不存在本地,而是在讀取本地參數(shù)的同時(shí)從共享內(nèi)存處讀入數(shù)據(jù)并參與計(jì)算。另外,除了第一個(gè)時(shí)間步長(zhǎng)內(nèi)仿真需要準(zhǔn)備FPGA 加速部分所需的全部參數(shù)數(shù)據(jù)信息,之后的每一個(gè)仿真時(shí)間步長(zhǎng)只需要傳輸發(fā)射脈沖的數(shù)據(jù)量(uup_size)即可,可由式(13)獲得:

        使用4 個(gè)性能更好的AXI_HP 接口進(jìn)行數(shù)據(jù)傳輸以減少傳輸時(shí)間,數(shù)據(jù)通信接口的設(shè)計(jì)如圖9所示。

        圖9 ARM 與FPGA 數(shù)據(jù)傳輸接口示意圖Fig.9 Schematic diagram of data transmission interface between ARM and FPGA

        一個(gè)SSTEP內(nèi)所有神經(jīng)元的脈沖信息數(shù)據(jù)量較大,所以使用AXI_HP0 接口專門負(fù)責(zé)這部分輸入。AXI_HP1 接口除了在仿真的第一個(gè)SSTEP內(nèi)需要傳入神經(jīng)元更新所需的所有參數(shù),然后返回更新后的膜電位v和恢復(fù)變量u,以后的每一個(gè)SSTEP只需要傳入完成更新的v和u即可。最后的兩個(gè)AXI_HP 接口分別返回發(fā)射脈沖的神經(jīng)元編號(hào)和該神經(jīng)元發(fā)射脈沖的具體時(shí)刻,以便后續(xù)的仿真計(jì)算。

        4 實(shí)驗(yàn)結(jié)果與分析

        實(shí)驗(yàn)采用軟硬件結(jié)合的加速開發(fā)方式進(jìn)行實(shí)驗(yàn),其中:軟件環(huán)境為NEST 仿真器2.14.0 版本、PyNN API、Xilinx Vivado 2018.2、PYNQ 環(huán)境;硬件環(huán)境為PYNQ-Z2 開發(fā)板、ZCU102 開發(fā)板、Intel?CoreTMi7-10700 CPU。類腦仿真復(fù)現(xiàn)了經(jīng)典的丘腦外側(cè)膝狀核網(wǎng)絡(luò)模型以及液體狀態(tài)機(jī)模型,這兩個(gè)實(shí)驗(yàn)?zāi)P褪褂昧硕喾NIzhikevich 神經(jīng)元,旨在驗(yàn)證設(shè)計(jì)方案的適用性以及性能提升的效果。

        4.1 經(jīng)典的類腦仿真模型

        4.1.1 丘腦外側(cè)膝狀核網(wǎng)絡(luò)模型

        丘腦外側(cè)膝狀核網(wǎng)絡(luò)模型(Lateral Geniculate Nucleus,LGN)在傳統(tǒng)上被視為視覺(jué)皮層的門戶[24],是控制注意力反應(yīng)增益的看門人,LGN 會(huì)把視覺(jué)感覺(jué)信息映射到初級(jí)視覺(jué)皮層(V1)。除此之外,在初級(jí)視覺(jué)皮層受損但仍然可以對(duì)某些圖像做出反應(yīng)的盲視行為中,AJINA 等[25]指 出LGN 在繞過(guò)V1 的 通路中起到關(guān)鍵性的作用。該模型包含約70%~80%TCR 細(xì)胞和20%~25%IN 細(xì) 胞,表 明TCR 與IN 之比約為4∶1[4],而在TRN 上沒(méi)有一個(gè)精確可用的相應(yīng)數(shù)據(jù)信息,所以在此模型中任意設(shè)置為單元格數(shù)量的兩倍,即將TCR、IN 和TRN 群體中的細(xì)胞比例設(shè)置為8∶2∶4。本文中LGN 模型的突觸布局如圖10 所示,實(shí)際模型實(shí)現(xiàn)了14 000 個(gè)Izhikevich 神經(jīng)元,該模型的突觸布局基于從哺乳動(dòng)物和嚙齒動(dòng)物的背外側(cè)膝狀核獲得的實(shí)驗(yàn)數(shù)據(jù)。

        圖10 丘腦外側(cè)膝狀核網(wǎng)絡(luò)模型拓?fù)銯ig.10 Topology of the network model of the lateral geniculate nucleus of the thalamus

        4.1.2 液體狀態(tài)機(jī)模型

        液體狀態(tài)機(jī)(Liquid State Machine,LSM)是一種使用脈沖神經(jīng)網(wǎng)絡(luò)的儲(chǔ)層計(jì)算機(jī)。LSM 由大量神經(jīng)元節(jié)點(diǎn)組成,每個(gè)神經(jīng)元節(jié)點(diǎn)從外部源(輸入層)以及其他節(jié)點(diǎn)接收隨時(shí)間變化的輸入,節(jié)點(diǎn)間彼此隨機(jī)連接,而且連接后就不再改變。這說(shuō)明兩兩神經(jīng)元之間連接權(quán)值不需要訓(xùn)練,一般可以采用靈活多變的算法來(lái)訓(xùn)練輸出層以達(dá)到所需的精度及目標(biāo)任務(wù)。實(shí)驗(yàn)采用文獻(xiàn)[26]中提到的LSM 模型,網(wǎng)絡(luò)拓?fù)涫疽鈭D如圖11 所示(彩色效果見《計(jì)算機(jī)工程》官網(wǎng)HTML 版,下同),且中間層取用12 500 個(gè)Izhikevich 神經(jīng)元隨機(jī)連接構(gòu)成,輸入層用泊松發(fā)射機(jī)提供輸入信號(hào),因?yàn)橹虚g層是靜態(tài)的權(quán)重,所以神經(jīng)元之間的連接用靜態(tài)突觸來(lái)實(shí)現(xiàn)。

        圖11 LSM 網(wǎng)絡(luò)拓?fù)銯ig.11 Topology of LSM network

        4.2 仿真數(shù)值驗(yàn)證

        實(shí)驗(yàn)選取參數(shù)為1 400 個(gè)Izhikevich 神經(jīng)元、dt=0.1 的LGN 模型進(jìn)行正確性驗(yàn)證。比較一個(gè)神經(jīng)元仿真1 000 ms 時(shí)間內(nèi)恢復(fù)變量u和膜電位v經(jīng)過(guò)混合精度前后的數(shù)值波形變化,如圖12 和圖13 所示,圖中藍(lán)色點(diǎn)表示雙精度浮點(diǎn)(double)數(shù)據(jù)對(duì)應(yīng)的數(shù)值,紅色的點(diǎn)表示混合精度(fixed)數(shù)據(jù)類型對(duì)應(yīng)的數(shù)值。

        圖12 不同數(shù)據(jù)類型下恢復(fù)變量波形圖Fig.12 Waveform diagrams of recovery variable under different data types

        圖13 不同數(shù)據(jù)類型下膜電位波形圖Fig.13 Waveform diagrams of membrane potential under different data types

        觀察圖12 和圖13 可知,恢復(fù)變量u在加速前后數(shù)值波形變化高度一致,神經(jīng)元膜電位v在脈沖峰值上表現(xiàn)出細(xì)微的誤差,但整體變化波形仍然完全一致。至于峰值出現(xiàn)誤差,這是因?yàn)槎ㄖ苹蟮臄?shù)據(jù)相比較double 浮點(diǎn)表達(dá)盡管只有很輕微誤差(10-5),但隨著仿真時(shí)間的推移,該誤差會(huì)隨著計(jì)算不斷地累積。使用低位寬的優(yōu)化手段,該峰值的誤差必然是會(huì)存在的,但可以通過(guò)增加小數(shù)部分的位寬來(lái)縮小這個(gè)峰值的差距,進(jìn)一步提高數(shù)值模擬的精確度。在膜電位v計(jì)算達(dá)到閾值恢復(fù)到初始值的同時(shí),也能對(duì)這個(gè)峰值的誤差完成清零操作,這表明只要定制合適的位寬就能取得與浮點(diǎn)一致的數(shù)值波形變化。在SNN 模型仿真中,研究人員往往并不關(guān)注峰值的高低,反而專注于發(fā)射脈沖的狀態(tài),膜電位的波形變化規(guī)律是關(guān)鍵因素,因而定制的混合精度數(shù)據(jù)類型能滿足LGN 等模型的仿真所需。

        為了進(jìn)一步說(shuō)明仿真結(jié)果的準(zhǔn)確性,比較經(jīng)過(guò)相同的仿真時(shí)間內(nèi)舊版double 類型和FPGA 定點(diǎn)類型的神經(jīng)元膜電位v以及恢復(fù)變量u關(guān)于時(shí)間的平均相對(duì)誤差(vMRE/uMRE),結(jié)果如表2 所示。

        表2 神經(jīng)元膜電位一段時(shí)間內(nèi)的平均相對(duì)誤差分析Table 2 Analysis of average relative error over time in neuronal membrane potential

        vMRE/uMRE的計(jì)算式如式(14)所示:

        其中:Ts表示的是該神經(jīng)元在Ts的仿真時(shí)間內(nèi)記錄v/u的次數(shù);x取值為膜電位v或者恢復(fù)變量u。分析表2 中的數(shù)據(jù)可知,每1 000 ms 膜電位的平均相對(duì)誤差為5%左右,而恢復(fù)變量為2%左右,在可接受的誤差范圍之內(nèi)。

        4.3 資源消耗

        數(shù)據(jù)類型的不同表達(dá),不僅影響存儲(chǔ)單元的使用率,還會(huì)影響運(yùn)算器等硬件邏輯單元的開銷。7 000 個(gè)神經(jīng)元在并行實(shí)例化2 份神經(jīng)元更新處理單元的情況下,頻率為100 MHz,在PYNQ-Z2 上全部更新一步所需的資源以及單神經(jīng)元更新一步所需的時(shí)鐘周期如表3 所示。

        表3 PYNQ-Z2 上資源統(tǒng)計(jì)Table 3 Resource statistic on PYNQ-Z2

        分析資源的使用情況,設(shè)計(jì)的混合精度數(shù)據(jù)類型相比較double、float 數(shù)據(jù)類型在BRAM、DSP、FF、LUT 的使用上都減少了很多,意味著在該FPGA 平臺(tái)上可以實(shí)例化更多并行的神經(jīng)元更新處理單元以及更多Izhikevich 神經(jīng)元的加速。分析3 種數(shù)據(jù)類型下單神經(jīng)元完成一次更新所需的時(shí)鐘周期可知,float 相比較double 只減少了10%的時(shí)間,而設(shè)計(jì)的混合精度數(shù)據(jù)類型相比較double 減少近83%。產(chǎn)生這種現(xiàn)象的原因是:盡管使用平衡最短數(shù)據(jù)路徑的方法將原先的流水線階段縮短至7 個(gè)階段,但是double 與float 數(shù)據(jù)類型在各階段內(nèi)的加減乘法等不能在一個(gè)周期內(nèi)結(jié)束,這就使得后期流水階段會(huì)進(jìn)入等待狀態(tài)。

        表4 所示為7 000 神經(jīng)元仿真一步,在不同并行度下資源以及時(shí)間開銷情況。相比較并行度1(即原始串行版本),并行度為2 時(shí)存儲(chǔ)BRAM、DSP 資源幾乎成倍增長(zhǎng),F(xiàn)F 和LUT 也有所增加,時(shí)間有所降低。這是因?yàn)楫?dāng)使用并行時(shí),相比較原始串行版本,需要額外在本地也存一份數(shù)據(jù)再進(jìn)行數(shù)據(jù)的重分配,此時(shí)就會(huì)成倍增加存儲(chǔ)的開銷,這也會(huì)帶來(lái)一定的時(shí)間開銷。原先串行版本計(jì)算時(shí)間占主體,此時(shí)計(jì)算模塊的時(shí)間開銷減半,會(huì)對(duì)整體膜電位更新整體時(shí)間造成很大的影響,所以,盡管重分配會(huì)帶來(lái)一定的時(shí)間開銷,但整體的時(shí)間還是降低的。對(duì)比并行度2、4、8,除了DSP 依舊成倍數(shù)增長(zhǎng)外,別的資源增長(zhǎng)并不多且時(shí)間降低變得緩慢。這是因?yàn)橛?jì)算所需的加、減和乘法器等DSP 資源會(huì)隨著并行度而成比例增長(zhǎng),這過(guò)程并不需要大量其他的資源的參與,至于時(shí)間減少不多是因?yàn)榇藭r(shí)的程序數(shù)據(jù)的重分配、通信等非計(jì)算所需的時(shí)間占主體,計(jì)算占比很小,因而計(jì)算時(shí)間減半,對(duì)整體更新時(shí)間的減少效果減弱。

        表4 不同并行度下PYNQ-Z2 上資源統(tǒng)計(jì)Table 4 Resources statistic on PYNQ-Z2 under different degrees of parallelism

        4.4 Izhikevich 模型優(yōu)化綜合對(duì)比分析

        表5 是關(guān)于Izhikevich 所做的其他方法與本文方法對(duì)比,其中MPU 表示單個(gè)神經(jīng)元膜電位更新一次所需的時(shí)鐘周期數(shù)。表中其他方法也使用了定點(diǎn)化的方法,但那是對(duì)神經(jīng)元中所有值都進(jìn)行相同的位寬設(shè)計(jì),而本文使用混合精度的設(shè)計(jì)能進(jìn)一步降低神經(jīng)元的整體資源開銷,同時(shí)縮小膜電位的絕對(duì)誤差,盡管所提方法的MPU 時(shí)間不是最低的,但也比別的多數(shù)方法小很多。相比較傳統(tǒng)的硬件描述語(yǔ)言VHDL,使用的是開發(fā)更便捷的高層綜合語(yǔ)言(High-Level Synthesis,HLS),同時(shí)還進(jìn)行了一定規(guī)模的脈沖神經(jīng)網(wǎng)絡(luò)的仿真模擬。

        表5 Izhikevich 模型不同優(yōu)化綜合對(duì)比Table 5 Comprehensive comparison of different optimizations of the Izhikevich model

        4.5 Izhikevich 整體加速效果

        有關(guān)Izhikevich 神經(jīng)元的研究,主要集中在單個(gè)神經(jīng)元的性能、能耗,從簡(jiǎn)化更新方程中復(fù)雜項(xiàng)、求解方程的時(shí)間步長(zhǎng)等方向上優(yōu)化加速,但都沒(méi)有與經(jīng)典的類腦應(yīng)用對(duì)接。本文從數(shù)據(jù)的存儲(chǔ)類型角度,利用混合精度優(yōu)化整體網(wǎng)絡(luò),利用平衡數(shù)據(jù)路徑、并行、流水等手段加速神經(jīng)元更新計(jì)算過(guò)程,并與開源的NEST 仿真器對(duì)接,以下是兩個(gè)經(jīng)典的類腦仿真模型在不同平臺(tái)上的表現(xiàn)。

        選擇數(shù)量大小為14 000 個(gè)Izhikevich 神經(jīng)元,仿真6 000 ms、Δt=0.1 的LGN 模型進(jìn)行實(shí)驗(yàn),神經(jīng)元更新模塊實(shí)例化了4 份處理單元,并比較經(jīng)過(guò)FPGA 加速部分的Izhikevich 更新部分與舊版本更新部分在不同平臺(tái)上的性能與能效,如表6 所示,其中,MOP表示每秒百萬(wàn)次運(yùn)算(Million Operations Per Second),更新能效比為MOP/功率,加粗?jǐn)?shù)據(jù)表示最優(yōu)值,下同。

        表6 不同平臺(tái)上LGN 模型更新部分性能對(duì)比Table 6 Performance comparison of the update part of the LGN model on different platforms

        分析比較表6 可知,雖然PYNQ-Z2 上的更新所需時(shí)間最長(zhǎng),但其功率很低,更新部分的能效比是i7-10700 CPU 的7.94 倍,比ZCU102 稍低。使用FPGA 架構(gòu)更好的ZCU102 板卡,首先運(yùn)算性能是PYNQ-Z2 的3.90 倍,是i7-10700 CPU 的2.31 倍,更新能效比是i7-10700 CPU 的8.53 倍。接下來(lái)使用12 500 個(gè)Izhikevich 神經(jīng)元,仿真20 000 ms 的LSM模型進(jìn)行實(shí)驗(yàn),統(tǒng)計(jì)結(jié)果如表7 所示。

        表7 不同平臺(tái)上LSM 模型更新部分性能對(duì)比Table 7 Performance comparison of the update part of the LSM model on different platforms

        比較表6 和表7 可以發(fā)現(xiàn),LSM 模型相較于LGN 模型,各平臺(tái)更新能效比都有一定程度的降低,潛在的原因是LSM 模型網(wǎng)絡(luò)結(jié)構(gòu)、初始化值的不同以及仿真時(shí)長(zhǎng)導(dǎo)致網(wǎng)絡(luò)的脈沖發(fā)射率高于LGN 模型,即傳遞脈沖的時(shí)間占比多了,導(dǎo)致整體更新能效比下降。在PYNQ-Z2 平臺(tái)上盡管更新時(shí)間并不比i7-10700 CPU 快,但更新能效比為其11.23 倍,而在ZCU102 上,不僅運(yùn)算性能是PYNQ-Z2 的3.62 倍、i7-10700 CPU 的3.03 倍,還能在更新能效比上取得i7-10700 CPU 的11.20 倍的效果。

        5 結(jié)束語(yǔ)

        相比較計(jì)算更簡(jiǎn)單的LIF 神經(jīng)元,Izhikevich 神經(jīng)元能表現(xiàn)出更多生物尖峰神經(jīng)元的計(jì)算特性,但基于其的研究目前都還只停留在針對(duì)單神經(jīng)元的加速上,沒(méi)考慮整體網(wǎng)絡(luò)的優(yōu)化。本文在單神經(jīng)元優(yōu)化的基礎(chǔ)上,對(duì)大量脈沖網(wǎng)絡(luò)仿真的存儲(chǔ)數(shù)據(jù)進(jìn)行了定點(diǎn)化的優(yōu)化研究,結(jié)合計(jì)算、存儲(chǔ)的特性提出一套定制計(jì)算方法,從而在有限硬件資源的條件下更高效地完成更多神經(jīng)元的仿真,為大型的類腦模型仿真提供解決思路。

        在開源的NEST 仿真器下進(jìn)行設(shè)計(jì)的實(shí)現(xiàn),驗(yàn)證定制計(jì)算方法的性能與能效比。實(shí)驗(yàn)結(jié)果表明,相比于Intel?CoreTMi7-10700 CPU,經(jīng)典的丘腦外側(cè)膝狀核模型、液體狀態(tài)機(jī)模型神經(jīng)元更新部分的運(yùn)算性能、能效比在FPGA 平臺(tái)上都有較大的提升。后續(xù)的工作將從以下方面展開:1)實(shí)踐發(fā)現(xiàn)軟件端數(shù)據(jù)準(zhǔn)備階段所占整體時(shí)間比重較大,將探究?jī)?yōu)化NEST 仿真器脈沖的分發(fā)機(jī)制,減少軟件上數(shù)據(jù)的二次搬運(yùn);2)為了驗(yàn)證所提定制計(jì)算方法的拓展性,將尋找更多的模型、FPGA 平臺(tái)進(jìn)行實(shí)驗(yàn)驗(yàn)證。

        猜你喜歡
        數(shù)據(jù)類型膜電位神經(jīng)元
        有關(guān)動(dòng)作電位的“4坐標(biāo)2比較”
        《從光子到神經(jīng)元》書評(píng)
        自然雜志(2021年6期)2021-12-23 08:24:46
        參芪復(fù)方對(duì)GK大鼠骨骼肌線粒體膜電位及相關(guān)促凋亡蛋白的影響研究
        詳談Java中的基本數(shù)據(jù)類型與引用數(shù)據(jù)類型
        如何理解數(shù)據(jù)結(jié)構(gòu)中的抽象數(shù)據(jù)類型
        躍動(dòng)的神經(jīng)元——波蘭Brain Embassy聯(lián)合辦公
        基于二次型單神經(jīng)元PID的MPPT控制
        毫米波導(dǎo)引頭預(yù)定回路改進(jìn)單神經(jīng)元控制
        魚藤酮誘導(dǎo)PC12細(xì)胞凋亡及線粒體膜電位變化
        紅細(xì)胞膜電位的光學(xué)測(cè)定方法
        99久久久精品免费观看国产| 在线观看国产白浆一区三区| 日韩av无码一区二区三区| 熟女熟妇伦av网站| 女高中生自慰污免费网站| 又爽又猛又大又湿的视频| 亚洲最好看的中文字幕| 小荡货奶真大水真多紧视频 | 日韩av无码一区二区三区不卡| 亚洲av中文无码乱人伦在线r▽| 欧美成人免费看片一区| h视频在线观看视频在线| 视频一区视频二区制服丝袜| 99久久人人爽亚洲精品美女| 老熟女熟妇嗷嗷叫91| 美国黄色av一区二区| 高h喷水荡肉爽文np肉色学校| 精品久久亚洲中文无码| а的天堂网最新版在线| 国产中文字幕亚洲精品| 人妻插b视频一区二区三区| 国产麻豆精品一区二区三区v视界| 日本一区二区三区四区在线看| 国产精品亚洲二区在线看| 伊人激情av一区二区三区| 中文 国产 无码免费| 一区二区激情偷拍老牛视频av| 女人高潮久久久叫人喷水| 天天爽天天爽天天爽| 伊人色综合九久久天天蜜桃| av黄色在线免费观看 | 免费人成再在线观看网站| 国产精品日韩中文字幕| 一区在线视频免费播放| 国产高清在线精品一区二区三区 | 亚洲旡码a∨一区二区三区| 男人深夜影院无码观看| 亚洲天堂一区二区偷拍| 国产揄拍国产精品| 亚洲色大成人一区二区| 亚洲午夜经典一区二区日韩|