• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      多核并行脈沖神經(jīng)網(wǎng)絡(luò)模擬器的設(shè)計

      2020-11-18 09:15:18劉家華陳靖宇
      計算機工程與應(yīng)用 2020年22期
      關(guān)鍵詞:路由表膜電位模擬器

      劉家華,陳靖宇

      廣東工業(yè)大學(xué) 計算機學(xué)院,廣州510006

      1 引言

      脈沖神經(jīng)網(wǎng)絡(luò)(Spiking Neural Network,SNN)[1]是第三代人工神經(jīng)網(wǎng)絡(luò),它結(jié)合了生物神經(jīng)系統(tǒng)與人工神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)、功能與原理,對腦神經(jīng)系統(tǒng)進行建模,模擬仿真人的智能行為,如學(xué)習(xí)、識別、推理演算等[2],與傳統(tǒng)的人工神經(jīng)網(wǎng)絡(luò)相比,脈沖神經(jīng)網(wǎng)絡(luò)更接近人腦神經(jīng)網(wǎng)絡(luò)的工作機理。脈沖神經(jīng)網(wǎng)絡(luò)以脈沖神經(jīng)元[3]為基本單元,脈沖神經(jīng)元(Spiking Neuron)膜電位非線性累積,當(dāng)?shù)竭_閾值電位后脈沖放電并進入不應(yīng)期冷卻,脈沖通過軸突傳遞給下一個神經(jīng)元,大量的脈沖神經(jīng)元構(gòu)成的神經(jīng)網(wǎng)絡(luò)不僅擁有更強大的計算能力,而且可以處理復(fù)雜的信息信號和模擬連續(xù)函數(shù)[4]。不同的神經(jīng)元具有不同的幾何形態(tài)和電學(xué)特性,通過對這些形態(tài)不一的神經(jīng)元進行數(shù)學(xué)建模與數(shù)值分析,才能開展多種神經(jīng)計算與模擬仿真。

      隨著神經(jīng)科學(xué)研究成果的積累,早期人們對生物神經(jīng)系統(tǒng)的構(gòu)造和運行機理已有了比較全面的認識,對不同的生物神經(jīng)元構(gòu)建出具有生物可解釋性的脈沖神經(jīng)元模型。Hodgkin 等人通過對烏賊軸突神經(jīng)的研究,揭示了各種可興奮性細胞的基本規(guī)律,提出了Hodgkin-Huxley神經(jīng)元模型[5]。Lapicque用電子線路模擬神經(jīng)元的神經(jīng)生理現(xiàn)象,簡化了Hodgkin-Huxley神經(jīng)元模型負責(zé)的高維非線性方程,提出了漏電Integrate-and-Fire 神經(jīng)元模型[6]。Izhikevich 通過對Hodgkin-Huxley 神經(jīng)元模型的分岔分析,結(jié)合了Integrate-and-Fire 神經(jīng)元模擬的計算效率,提出了Izhikevich 二維脈沖神經(jīng)元模型[7],以1 000個Izhikevich為模型的神經(jīng)元在1 s的生物時間仿真1 000 生物周期。近幾年來,人們對脈沖神經(jīng)網(wǎng)絡(luò)模型進行深入研究,相繼提出了許多空間復(fù)雜的神經(jīng)元模型,如表1 所示,BULE BRAIN 團隊提出的Hippocampus神經(jīng)元模型,它有13種不同形態(tài)的神經(jīng)元,由約80萬個神經(jīng)元和3.6億個突觸連接構(gòu)成。

      表1 多種神經(jīng)元模擬示例

      龐大的神經(jīng)元分布與頻繁的神經(jīng)元間的脈沖交互,在串行方式下難以進行仿真實驗。針對這個問題,許多科研團隊提出了一些解決方案。曼切斯特大學(xué)類腦科學(xué)研究團隊研發(fā)了SpiNNaker 脈沖神經(jīng)網(wǎng)絡(luò)模擬器[13]。SpiNNaker 模擬器構(gòu)建于sPyNNaker[14]軟件層與SpiNNaker 的類腦計算機[15],支持更新神經(jīng)元狀態(tài)的時間驅(qū)動和脈沖處理的事件驅(qū)動,可以高效率多線程并行地模擬大規(guī)模不同模型的脈沖神經(jīng)網(wǎng)絡(luò)。NEURON為脈沖神經(jīng)網(wǎng)絡(luò)提供了一種分布式并行計算平臺[16],神經(jīng)元計算任務(wù)可以分布在不同的處理器節(jié)點上,以時間同步方式進行神經(jīng)元仿真實驗。雖然眾多的模擬平臺為脈沖神經(jīng)網(wǎng)絡(luò)提供了模擬環(huán)境,但國內(nèi)使用權(quán)限的原因,國內(nèi)研究者難以在神經(jīng)科學(xué)平臺上進行模擬實驗。如何僅僅利用個人計算機實現(xiàn)脈沖神經(jīng)網(wǎng)絡(luò)高效率地模擬仿真,成為國內(nèi)神經(jīng)科學(xué)研究者所關(guān)注的問題之一。

      隨著計算機硬件的支持,計算資源的提升,個人計算機內(nèi)核數(shù)不斷增多(如ARM A83 處理器8 核,Intel i7-8740處理器6核),為此,本文設(shè)計了一種多核并行的脈沖神經(jīng)元網(wǎng)絡(luò)模擬器框架,利用多核的計算能力,高效地對大規(guī)模脈沖神經(jīng)網(wǎng)絡(luò)進行并行計算。在并行計算任務(wù)的分發(fā)方面,將神經(jīng)元進行編碼,并對每個核進行映射。在網(wǎng)絡(luò)通信方面,采用源地址尋址的通信方式,自定義分布式路由表實現(xiàn)處理器內(nèi)多核間的脈沖傳輸。采用同步時間驅(qū)動策略,在每個生物周期進行動態(tài)同步,解決并行同步問題。以Izhikevich 脈沖神經(jīng)元為模型,在大規(guī)模的脈沖網(wǎng)絡(luò)結(jié)構(gòu)上進行仿真實驗。實驗結(jié)果表明,本文的模擬器在大規(guī)模的網(wǎng)絡(luò)結(jié)構(gòu)中,并行仿真計算的效率優(yōu)于傳統(tǒng)的串行仿真計算。

      2 多核并行的脈沖神經(jīng)網(wǎng)絡(luò)模擬器

      Izhikevich 脈沖神經(jīng)元模型是單房室神經(jīng)元,由于該模型結(jié)構(gòu)簡單,本文以Izhikevich 脈沖神經(jīng)元模型作為模擬器仿真實驗對象。在多核并行模擬器設(shè)計中,涉及到并行任務(wù)的分發(fā)、多核間的網(wǎng)絡(luò)傳輸、時間同步的問題。針對這些問題,進行了神經(jīng)元的映射與編碼設(shè)計,自定義路由表與動態(tài)同步設(shè)計。

      2.1 Izhikevich脈沖神經(jīng)元模型

      數(shù)學(xué)上來講,脈沖神經(jīng)元是一種混合系統(tǒng):神經(jīng)元的狀態(tài)根據(jù)一些生物物理方程不斷變化,這些方程通常是微分方程(確定性或隨機性、普通或偏微分方程),通過突觸接收到脈沖信號觸發(fā)一些變量的變化。因此脈沖神經(jīng)元的動力學(xué)可以描述如下:

      其中,X 是描述神經(jīng)元狀態(tài)的向量,f 表示神經(jīng)元狀態(tài)變量演化的微分方程,gi指脈沖通過突觸i 后對神經(jīng)元的影響,當(dāng)X ∈A 滿足某個條件時就會發(fā)出一個脈沖[17]。例如Izhikevich 模型Vm≥θ(這里Vm是神經(jīng)元膜電位對應(yīng)矢量X)神經(jīng)元產(chǎn)生一個脈沖,同時作為X的膜電位將被重置。Izhikevich的二維脈沖神經(jīng)元模型如下所示:

      如果神經(jīng)元的膜電位V ≥30 mV,輔助的復(fù)位機制為:

      式中,V 表示膜電位;U 表示恢復(fù)變量,用來代理生理模型中激活的K+電流和流失的Na+電流,實現(xiàn)對膜電位V 的負反饋。Izhikevich神經(jīng)元模型中的參數(shù)a、b、c、d是無量綱參數(shù),隨著參數(shù)a、b、c、d 取值的變化,Izhikevich神經(jīng)元模型可以表現(xiàn)出豐富的脈沖發(fā)放模式。參數(shù)a表示恢復(fù)變量U 的時間尺度,a 的值越小,表明恢復(fù)得越慢;參數(shù)b 表示恢復(fù)變量U 依賴于膜電位V 的閾值下隨機波動的敏感程度;參數(shù)c 表示神經(jīng)元發(fā)放脈沖后膜電位V 的復(fù)位值;參數(shù)d 表示神經(jīng)元發(fā)放脈沖后恢復(fù)變量U 的復(fù)位值。

      2.2 神經(jīng)元的映射與編碼

      映射與編碼設(shè)計思路:(1)每一個神經(jīng)元總有唯一內(nèi)核與它對應(yīng);(2)充分利用每個內(nèi)核的計算資源,每個內(nèi)核間神經(jīng)元個數(shù)差不超過M ;(3)確保神經(jīng)元的獨立性,映射前后神經(jīng)元有獨立的編碼。

      大規(guī)模的脈沖神經(jīng)網(wǎng)絡(luò)在多核中并行計算時,需要將計算任務(wù)分發(fā)至每個內(nèi)核中,即將網(wǎng)絡(luò)中的神經(jīng)元映射至對應(yīng)的內(nèi)核。內(nèi)核的集合為C={Cm;m=1,2,…,M},M 是內(nèi)核的個數(shù),神經(jīng)元的集合為V={Vn;n=1,2,…,N},N 是神經(jīng)元個數(shù)。神經(jīng)元與內(nèi)核的映射關(guān)系可以表達為:

      神經(jīng)元初始分配順序序號,神經(jīng)元采用均分的方法映射至對應(yīng)的內(nèi)核,每個內(nèi)核平均分配到的神經(jīng)元個數(shù)為AVG,AVG 可以表示為:

      若有多余的神經(jīng)元,多余的神經(jīng)元分配至最后一個內(nèi)核,最后一個內(nèi)核神經(jīng)元個數(shù)為EXTRA,EXTRA 可以表示為:

      神經(jīng)元映射對應(yīng)的內(nèi)核后,由源序號重新編碼。神經(jīng)元編碼定義為32 位,編碼規(guī)則如下:前12 位為CPU的ID(保留12位CPU位方便以后的擴展應(yīng)用),中間4位為內(nèi)核ID,后16位為神經(jīng)元核內(nèi)局部ID,如圖1所示。

      圖1 神經(jīng)元的映射與編碼

      2.3 路由表的創(chuàng)建

      路由表設(shè)計思路:(1)根據(jù)網(wǎng)絡(luò)拓撲結(jié)構(gòu)可生成靜態(tài)路由表;(2)源神經(jīng)元通過查表可尋找目的神經(jīng)元;(3)多表結(jié)合,減少查詢的時間復(fù)雜度。

      以源地址尋址作為內(nèi)核間神經(jīng)元的通信方式,由此在每一個內(nèi)核中設(shè)計了兩份路由表:(1)第一份路由表為發(fā)送表(Table 1),其作用是當(dāng)本核內(nèi)神經(jīng)元生成脈沖,通過Table 1由源神經(jīng)元ID查詢到對應(yīng)目的神經(jīng)元ID。若目的神經(jīng)元為本核內(nèi)的神經(jīng)元,直接根據(jù)路由表的權(quán)值影響本核目的神經(jīng)元的權(quán)值。若目的神經(jīng)元為核外的神經(jīng)元,將脈沖(源ID)通過I/O傳輸方式寫入對應(yīng)的神經(jīng)元所在的內(nèi)核緩存中。(2)第二份路由表為接收表(Table 2),當(dāng)本核收到來自其他核發(fā)來的脈沖(源ID),通過Table 2 查詢該脈沖影響本核內(nèi)的哪些神經(jīng)元,并根據(jù)Table 2獲取到影響權(quán)值大小。如圖2所示,根據(jù)自定義的網(wǎng)絡(luò)拓撲結(jié)構(gòu)與突觸連接權(quán)值生成權(quán)值文件,在神經(jīng)元映射與編碼后,根據(jù)權(quán)值文件生成每個內(nèi)核對應(yīng)的兩份路由表。生成路由表的算法如下所示。

      算法1 生成路由表

      查表的時間復(fù)雜度為O(1),通過實驗測速,源神經(jīng)元查詢多個目的神經(jīng)元在1 μs內(nèi)完成。

      圖2 路由表的生成

      2.4 同步時間驅(qū)動仿真策略與動態(tài)同步

      神經(jīng)網(wǎng)絡(luò)仿真有兩大類算法:同步時間驅(qū)動算法[18]和異步事件驅(qū)動算法[19]。其中同步時間驅(qū)動算法所有的神經(jīng)元在每一個周期都進行同步更新,異步事件驅(qū)動算法只有當(dāng)神經(jīng)元在接收或發(fā)出一個脈沖時才會更新。時間驅(qū)動算法與事件驅(qū)動算法在理論上相比,神經(jīng)元處理時間上時間驅(qū)動算法是近似的,沒有事件驅(qū)動算法精確。但考慮到模擬器是為大規(guī)模仿真而設(shè)計的,在大規(guī)模仿真中,性能是一個關(guān)鍵問題,由于網(wǎng)絡(luò)延遲存在,異步驅(qū)動算法無法在精確時間內(nèi)完成點對點的脈沖傳輸,并且無法大規(guī)模集成地對神經(jīng)元群批處理。再者事件驅(qū)動算法的精度依賴于特定的神經(jīng)元模型[20],存在模擬器的擴展性不高的問題。通過綜合考慮,本文模擬器采用的同步時間驅(qū)動算法如下所示。

      算法2 同步時間驅(qū)動

      在同步時間驅(qū)動算法中,所有神經(jīng)元的狀態(tài)變量在每個周期進行一次更新X(t)→X(t+dt),更新所有變量后,對每個神經(jīng)元檢查閾值條件。每個滿足該條件的神經(jīng)元產(chǎn)生一個脈沖,該脈沖傳輸?shù)狡淠繕?biāo)神經(jīng)元,更新相應(yīng)的變量(X ←gi(X))。

      算法的仿真時間由兩部分組成:(1)更新神經(jīng)元狀態(tài);(2)脈沖的傳播。假設(shè)神經(jīng)元的數(shù)目為N ,那么時間復(fù)雜度為O(N/dt)。假如在每個生物周期中,平均有FN 個脈沖由神經(jīng)元生成(F 是脈沖平均生成率),需要傳播至P 個目標(biāo)神經(jīng)元,總時間成本為T,T 可以表示為:

      這里,cu是單個神經(jīng)元更新狀態(tài)花費的時間,cp是單個脈沖傳輸所花費的時間。

      動態(tài)同步設(shè)計思路:(1)內(nèi)核完成每個周期計算任務(wù)與脈沖傳輸后進行一次狀態(tài)同步;(2)以最先完成計算任務(wù)的內(nèi)核時間點作為同步開始,以全部內(nèi)核完成同步的時間點作為同步結(jié)束;(3)解決同步時網(wǎng)絡(luò)延遲、脈沖數(shù)據(jù)丟失的問題。

      在時間同步方面,同步分為初始同步與周期同步。初始同步:每一個內(nèi)核綁定獨自的線程,在每個線程中設(shè)置線程柵欄,只有當(dāng)每個內(nèi)核都完成本核的初始化后,打開線程柵欄使得所有線程在同一時間點開始運行。周期同步:在每個周期對每一個內(nèi)核進行周期同步,如圖3 所示。當(dāng)一個內(nèi)核完成本周期的計算任務(wù)后,通過廣播的方式發(fā)送同步數(shù)據(jù)包給其他核。然后自身進入接收階段并每隔一段時間間隔t 重復(fù)發(fā)送同步數(shù)據(jù)包(防止同步包的丟失)。t 由神經(jīng)元數(shù)量N 與內(nèi)核數(shù)量M 決定,可以表示為:

      若本核收到其他核傳來的同步數(shù)據(jù)包時,記錄對應(yīng)核的周期完成情況。只有當(dāng)每個內(nèi)核自身完成本周期的計算任務(wù)和收到其他內(nèi)核的同步數(shù)據(jù)包后,則開啟下一個周期。若本周期計算完成但長時間沒收到其他核的同步數(shù)據(jù)包,則重新廣播本核本周期的同步數(shù)據(jù)包。

      圖3 脈沖神經(jīng)網(wǎng)絡(luò)周期同步

      2.5 多核并行模擬器仿真模擬流程

      內(nèi)核結(jié)構(gòu)如圖4 所示,每個線程綁定獨立的內(nèi)核,內(nèi)核中存放映射后的神經(jīng)元,同時內(nèi)核也存放對應(yīng)的兩份路由表Table1 與Table 2,其中Table 1 為發(fā)送表,Table 2為接收表。在共享內(nèi)存上對每個核分配兩塊獨立的內(nèi)存空間,分別為緩存1(Buffer 1)與緩存2(Buffer 2)。其中Buffer 1 存放本核神經(jīng)元生成的脈沖,Buffer 2 接收存放外核傳來的脈沖。

      模擬流程如圖5所示,根據(jù)網(wǎng)絡(luò)拓撲結(jié)構(gòu)生成對應(yīng)的權(quán)值文件,由權(quán)值文件創(chuàng)建每個核對應(yīng)的路由表,根據(jù)配置參數(shù)初始化所有神經(jīng)元。將每個核綁定至獨立的線程,當(dāng)每個核部署完成并初始同步后開始周期模擬。每個核的每個周期的主要工作分為三步:(1)更新核內(nèi)每個神經(jīng)元的狀態(tài),根據(jù)脈沖神經(jīng)元的模型計算出神經(jīng)元的膜電位,若神經(jīng)元膜電位高于閾值則生成脈沖(源ID),將脈沖放置核內(nèi)的緩存1(Buffer 1)中;(2)處理神經(jīng)元生成的脈沖,當(dāng)遍歷更新完核內(nèi)所有神經(jīng)元狀態(tài)后,查看緩存1 是否有本核神經(jīng)元生成的脈沖,如果有脈沖,則逐一取出并通過查發(fā)送表(Table 1)直接影響本核內(nèi)對應(yīng)神經(jīng)元的膜電位或?qū)⒚}沖發(fā)送至對應(yīng)核的緩存2(Buffer 2)中;(3)處理外核傳來的脈沖,查看緩存2 中是否有外核傳來的脈沖,如果有脈沖,則逐一取出并通過查接收表(Table 2)直接影響本核內(nèi)對應(yīng)神經(jīng)元的膜電位。當(dāng)每個核完成本周期的任務(wù)后,所有核進行一次周期同步。仿真模擬結(jié)束后,記錄每個脈沖神經(jīng)元在每個周期的生成脈沖情況。

      圖4 內(nèi)核結(jié)構(gòu)

      圖5 模擬仿真流程

      3 實驗結(jié)果與分析

      本文的實驗環(huán)境基于Intel Core i7-8750 六核處理器,內(nèi)存24 GB,Liunx操作系統(tǒng),GCC-version7.3版本下完成編寫程序與編譯。

      3.1 多核并行實現(xiàn)Izhikevich算法模型

      根據(jù)Izhikevich文獻[7]的模型生成相同的脈沖神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),總共有1 000個脈沖神經(jīng)元,神經(jīng)元之間以全連接的方式連接,神經(jīng)元間的突觸權(quán)值隨機生成,興奮性神經(jīng)元突觸權(quán)值在0~0.5 范圍,抑制性神經(jīng)元突觸權(quán)值在-1~0范圍,神經(jīng)元的其余配置參數(shù)如表2所示。

      表2 神經(jīng)元的配置參數(shù)

      圖6 是Izhikevich 提供的源碼在1 000 個生物周期以串行的方式模擬仿真的結(jié)果,模擬仿真時間為69 ms,脈沖激活數(shù)是7 591。圖7 是在六核單處理器環(huán)境下在1 000 個生物周期以并行的方式仿真的結(jié)果,模擬仿真時間是805 ms,脈沖激活數(shù)是8 256。對比結(jié)果顯示兩者脈沖激活數(shù)相近,多核并行模擬器生成的脈沖激活結(jié)果圖與Izhikevich 提供的實驗結(jié)果圖呈現(xiàn)出相同的alpha波段與gamma波段,驗證了模擬器的理論正確性。

      圖6 Izhikevich原文仿真的實驗結(jié)果

      3.2 大規(guī)模脈沖神經(jīng)網(wǎng)絡(luò)的仿真模擬

      圖7 模擬器仿真的實驗結(jié)果

      針對Izhikevich模型的串行計算環(huán)境與本文并行計算環(huán)境做不同數(shù)量集的對比實驗,生成三種不同數(shù)量級的網(wǎng)絡(luò)結(jié)構(gòu),分別為10 000、50 000、100 000 個Izhikevich模型的脈沖神經(jīng)元網(wǎng)絡(luò)。在10 000個脈沖神經(jīng)元模型中定義8 000 個興奮性神經(jīng)元和2 000 個抑制性神經(jīng)元隨機分布,網(wǎng)絡(luò)結(jié)構(gòu)定義為每個神經(jīng)元與10%的神經(jīng)元隨機連接。在50 000個脈沖神經(jīng)元模型中,定義40 000 個興奮性神經(jīng)元和10 000 個抑制性神經(jīng)元隨機分布,網(wǎng)絡(luò)結(jié)構(gòu)定義為每個神經(jīng)元與10%的神經(jīng)元隨機連接。在100 000 個脈沖神經(jīng)元模型中,定義80 000個興奮性神經(jīng)元和20 000個抑制性神經(jīng)元隨機分布,網(wǎng)絡(luò)結(jié)構(gòu)定義為每個神經(jīng)元與10%的神經(jīng)元隨機連接。配置參數(shù)與上個實驗參數(shù)相同,10 000、50 000、100 000不同規(guī)模數(shù)量集的脈沖神經(jīng)網(wǎng)絡(luò)在1 000個生物周期在模擬器上所花費時間如圖8~圖10所示。

      圖8 10 000神經(jīng)元不同核的模擬時間

      圖9 50 000神經(jīng)元不同核的模擬時間

      3.3 實驗分析

      圖10 100 000神經(jīng)元不同核的模擬時間

      在多核并行模擬器下成功復(fù)現(xiàn)了1 000個Izhikevich神經(jīng)元模型的脈沖網(wǎng)絡(luò),在此基礎(chǔ)上進行10 000、50 000、100 000個神經(jīng)元的脈沖網(wǎng)絡(luò)的模擬對比實驗。

      仿真設(shè)計及實現(xiàn)并行模擬的目的是希望并行模擬比相應(yīng)的串行模擬更快,為了評估并行計算對仿真模擬效率的提高,通常用加速比[21](Speedup)作為衡量標(biāo)準(zhǔn),加速比S 可以表示為:

      其中,Te為串行程序模擬時間,Tp為并行程序模擬時間。仿真結(jié)果如表3所示。

      表3 不同規(guī)模的并行計算加速比

      從表3可以看出,多核并行計算在規(guī)模較小的數(shù)據(jù)集上(10 000數(shù)量以下的神經(jīng)元)效率不如串行計算,但在大規(guī)模數(shù)據(jù)集上并行計算可以提高仿真速度,最大加速比為1.96,當(dāng)內(nèi)核達到一定數(shù)量時,加速比逐漸收斂。如圖11 所示,本實驗中當(dāng)內(nèi)核數(shù)量達到4 核后,內(nèi)核數(shù)量越多并行計算的效率卻得不到更好的提高。

      圖11 不同規(guī)模數(shù)據(jù)集的模擬情況

      本文在10 000與50 000數(shù)量集的實驗中,記錄每個階段花費的時間,如表4 所示,模擬時間開銷主要在神經(jīng)元狀態(tài)的更新與脈沖的傳輸。在10 000數(shù)據(jù)集中,神經(jīng)元整體狀態(tài)更新所花費時間與內(nèi)核間脈沖傳輸?shù)臅r間比為230。在50 000 數(shù)據(jù)集中,神經(jīng)元整體狀態(tài)更新所花費時間與內(nèi)核間脈沖傳輸?shù)臅r間比為516。

      表4 各階段的時間開銷

      在多核間的網(wǎng)絡(luò)傳輸中,采用共享內(nèi)存的方式實現(xiàn)多核間的數(shù)據(jù)傳輸,共享內(nèi)存是數(shù)據(jù)共享的最快方式,但多線程之間的數(shù)據(jù)傳輸需要對緩存區(qū)提供互斥條件。當(dāng)內(nèi)核外神經(jīng)元交互頻繁時,多個線程容易同一時刻對同一個緩存區(qū)進行訪問而出現(xiàn)線程阻塞的情況,由此導(dǎo)致網(wǎng)絡(luò)出現(xiàn)延遲的情況。

      綜上分析,當(dāng)核內(nèi)計算量不繁重,內(nèi)核的平均計算速度遠快于網(wǎng)絡(luò)傳輸速度時,并行計算效果不如串行計算。當(dāng)內(nèi)核平均計算速度接近網(wǎng)絡(luò)傳輸速度時(大規(guī)模計算下),并行計算速率優(yōu)于傳統(tǒng)的串行計算。而在大規(guī)模計算下,網(wǎng)絡(luò)傳輸交互頻繁時,內(nèi)核越多,周期計算效率不一定得到有效的提高。

      4 結(jié)論與展望

      面對大規(guī)模的脈沖神經(jīng)網(wǎng)絡(luò)模擬,一般研究者在個人計算機上以串行的方式難以高效率地進行模擬仿真,本文設(shè)計一種多核并行脈沖神經(jīng)網(wǎng)絡(luò)模擬器,為脈沖神經(jīng)網(wǎng)絡(luò)提供一個多核并行計算的模擬環(huán)境。在大規(guī)模神經(jīng)網(wǎng)絡(luò)模擬中,模擬器可以充分利用每個內(nèi)核的計算資源,高效率進行脈沖神經(jīng)網(wǎng)絡(luò)的模擬。實驗結(jié)果表明,本文設(shè)計的模擬器與傳統(tǒng)的串行仿真模擬相比,在大規(guī)模數(shù)據(jù)集的并行計算環(huán)境下,速度約為串行計算的兩倍。本實驗也可以為類似的脈沖神經(jīng)網(wǎng)絡(luò)的模擬并行化設(shè)計提供參考。

      在本文實驗中發(fā)現(xiàn),當(dāng)內(nèi)核數(shù)達到一定數(shù)量時,加速比將逐漸減少,后續(xù)的工作中,可以設(shè)置多級緩存,減少多核間的網(wǎng)絡(luò)傳輸延時。同時還發(fā)現(xiàn),當(dāng)內(nèi)核間的神經(jīng)元交互頻繁時,網(wǎng)絡(luò)傳輸效率不高,在后續(xù)工作中,可優(yōu)化神經(jīng)元的映射算法,將交互頻繁的神經(jīng)元映射至同一內(nèi)核中,減少網(wǎng)絡(luò)傳輸?shù)呢撦d。在未來的工作中,增添模擬器的接口模擬,以便不同的脈沖神經(jīng)元模型都可以在模擬器上并行模擬計算。

      猜你喜歡
      路由表膜電位模擬器
      有關(guān)動作電位的“4坐標(biāo)2比較”
      參芪復(fù)方對GK大鼠骨骼肌線粒體膜電位及相關(guān)促凋亡蛋白的影響研究
      了不起的安檢模擬器
      盲盒模擬器
      劃船模擬器
      基于OSPF特殊區(qū)域和LSA的教學(xué)設(shè)計與實踐
      組播狀態(tài)異常導(dǎo)致故障
      動態(tài)飛行模擬器及其發(fā)展概述
      基于新路由表的雙向搜索chord路由算法
      魚藤酮誘導(dǎo)PC12細胞凋亡及線粒體膜電位變化
      杭州市| 乌鲁木齐县| 阳曲县| 敦化市| 朝阳市| 镇平县| 绥化市| 巴楚县| 佛山市| 临猗县| 富顺县| 阿拉善右旗| 大城县| 米易县| 商城县| 互助| 苍南县| 定西市| 杨浦区| 乡城县| 阿勒泰市| 晴隆县| 香河县| 金沙县| 永济市| 泗阳县| 长岛县| 丰都县| 天水市| 景东| 凌源市| 大渡口区| 万源市| 宿松县| 舒城县| 淳安县| 北安市| 贵溪市| 邹城市| 永修县| 通化县|