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

        ?

        基于精準(zhǔn)通信建模的脈沖神經(jīng)網(wǎng)絡(luò)工作負(fù)載自動(dòng)映射器

        2023-03-24 13:25:16華夏朱錚皓徐聰張曦煌柴志雷陳聞杰
        計(jì)算機(jī)應(yīng)用 2023年3期
        關(guān)鍵詞:進(jìn)程消耗神經(jīng)元

        華夏,朱錚皓,徐聰,張曦煌*,柴志雷,2,陳聞杰

        (1.江南大學(xué) 人工智能與計(jì)算機(jī)學(xué)院,江蘇 無錫 214122;2.江蘇省模式識別與計(jì)算智能工程實(shí)驗(yàn)室(江南大學(xué)),江蘇 無錫 214122;3.軟硬件協(xié)同設(shè)計(jì)技術(shù)與應(yīng)用教育部工程研究中心(華東師范大學(xué)),上海 200062)

        0 引言

        以脈沖神經(jīng)網(wǎng)絡(luò)(Spiking Neural Network,SNN)[1]為代表的類腦計(jì)算在神經(jīng)科學(xué)領(lǐng)域有著重要意義。目前針對SNN的很多研究采用軟件模擬方式[2-3],比較成熟的類腦仿真器如NEST(NEural Simulation Tool)[4]、Brain2[5]、Brian2GeNN(links Brian to Gpu enhanced Neuronal Network)[6]和CARLsim[7]等精確度高、靈活性強(qiáng),因此應(yīng)用廣泛。在實(shí)現(xiàn)平臺方面,由于SNN 本身具有明顯的分布式計(jì)算特點(diǎn),且達(dá)到一定規(guī)模的SNN 才能展現(xiàn)出較強(qiáng)的智能水平,因此搭建大規(guī)模分布式平臺是構(gòu)成類腦計(jì)算平臺的主流方式。

        專用的類腦計(jì)算平臺[8-10]理論上能夠取得更高的性能與功耗指標(biāo),但是當(dāng)專用計(jì)算平臺和所運(yùn)行的SNN 工作負(fù)載不匹配時(shí),計(jì)算能效會大打折扣,甚至還不如通用計(jì)算機(jī)系統(tǒng)[11]。因此,針對特定的SNN 工作負(fù)載,如何找到它在對應(yīng)分布式計(jì)算平臺上的最佳映射是類腦計(jì)算領(lǐng)域的重要問題。

        針對以上問題,劉俊秀等[12]提出一種動(dòng)態(tài)優(yōu)先級仲裁策略以解決SNN 硬件實(shí)現(xiàn)系統(tǒng)上的脈沖傳輸負(fù)載不均衡問題,有效提高了系統(tǒng)的穩(wěn)定性。Balaji等[13]設(shè)計(jì)了一種將SNN 映射到神經(jīng)形態(tài)芯片上的方法,通過合理映射有效減少了脈沖傳遞延遲和計(jì)算能耗。劉家華等[14]設(shè)計(jì)了一種將神經(jīng)元映射到多核并行計(jì)算平臺上的方法,提升了并行計(jì)算環(huán)境下SNN 的仿真效率。Qu等[15]采用了帶時(shí)間戳的稀疏矩陣存儲方法,有效優(yōu)化了類腦計(jì)算平臺的負(fù)載不平衡問題,提高了平臺上的SNN 仿真速度。Titirsha等[16]對神經(jīng)形態(tài)芯片進(jìn)行了總能耗建模,并提出一種基于啟發(fā)式的映射方法,能為神經(jīng)元和突觸分配合理的計(jì)算資源,降低了神經(jīng)形態(tài)芯片的能耗。Song等[17]提出了一種基于同步數(shù)據(jù)流圖(Synchronous DataFlow Graphs,SDFGs)的方法,將SNN 映射到多核硬件實(shí)現(xiàn)系統(tǒng),并實(shí)現(xiàn)了系統(tǒng)吞吐量和資源消耗之間的平衡。這些工作提升了類腦計(jì)算平臺和芯片的穩(wěn)定性與運(yùn)行性能,但是這些映射方法與優(yōu)化設(shè)計(jì)尚未綜合考慮多個(gè)方面的SNN 工作負(fù)載特性。

        在眾多類腦仿真器中,NEST 仿真器在SNN 研究應(yīng)用廣泛,它支持多種復(fù)雜程度各異的神經(jīng)元和突觸模型,在分布式計(jì)算平臺上具有十分優(yōu)秀的可擴(kuò)展性[18]。在研究基于NEST 的SNN 工作負(fù)載方面,Kunkel等[19]在NEST 仿真器中設(shè)計(jì)了一種“NEST dry-run”模式,通過投入一個(gè)進(jìn)程進(jìn)行網(wǎng)絡(luò)仿真即可有效預(yù)測多進(jìn)程并行環(huán)境下的內(nèi)存和計(jì)算時(shí)間負(fù)載消耗。Nguyen等[20]分析了NEST 仿真器運(yùn)行SNN 的時(shí)間代價(jià),提出了中央處理器(Central Processing Unit,CPU)和圖形處理器(Graphic Processing Unit,GPU)協(xié)同工作時(shí)的SNN 仿真時(shí)間預(yù)測模型。上述工作雖然解決了類腦計(jì)算平臺負(fù)載消耗預(yù)測的問題,但是沒有從計(jì)算與通信負(fù)載平衡的角度考慮計(jì)算平臺合理映射的問題。

        2021 年,筆者所在小組對SNN 進(jìn)行了工作負(fù)載分析,針對NEST 仿真器建立了內(nèi)存、計(jì)算和通信負(fù)載模型,實(shí)現(xiàn)了一種基于NEST 的SNN 工作負(fù)載自動(dòng)映射器(Workload Automatic Mapper for SNN,SWAM)[21]。SWAM 能夠預(yù)測SNN的工作負(fù)載和在計(jì)算平臺上的映射結(jié)果,并給出映射指導(dǎo)。然而SWAM 尚未深入研究通信的實(shí)現(xiàn)機(jī)制、缺乏有效的負(fù)載模型參數(shù)獲取方法。在實(shí)際運(yùn)行時(shí),SWAM 存在針對通信工作負(fù)載的預(yù)測精度不高、對大規(guī)模網(wǎng)絡(luò)適用性較差的問題。

        因此,本文在SWAM 基礎(chǔ)上進(jìn)一步分析NEST 通信機(jī)制及通信操作算法,建立更精準(zhǔn)的通信負(fù)載模型;針對負(fù)載模型中部分具有實(shí)時(shí)性的參數(shù)以及精準(zhǔn)通信負(fù)載模型中的新增參數(shù),設(shè)計(jì)了參數(shù)量化方法;設(shè)計(jì)了最大網(wǎng)絡(luò)規(guī)模預(yù)測模塊,提供了對不同計(jì)算平臺的最大網(wǎng)絡(luò)承載規(guī)模預(yù)測功能;在此基礎(chǔ)上實(shí)現(xiàn)了包含精準(zhǔn)通信模型和新增功能的工作負(fù)載自動(dòng)映射器SWAM2。

        1 研究背景

        1.1 脈沖神經(jīng)網(wǎng)絡(luò)及其工作負(fù)載映射問題

        SNN 是類腦計(jì)算的基礎(chǔ),被譽(yù)為第三代人工神經(jīng)網(wǎng)絡(luò),具有低能耗和高效率的特點(diǎn)。SNN 的主要構(gòu)成要素包括神經(jīng)元、突觸、連接拓?fù)?、學(xué)習(xí)機(jī)制與可塑性等。SNN 運(yùn)行過程可以分為神經(jīng)元計(jì)算和突觸傳播兩部分,它們的計(jì)算分別由SNN 案例選擇的神經(jīng)元模型和突觸模型決定。

        神經(jīng)元模型定義了神經(jīng)元內(nèi)部狀態(tài)更新和產(chǎn)生脈沖的過程,突觸模型定義了突觸前神經(jīng)元產(chǎn)生的脈沖經(jīng)突觸處理后發(fā)送給突觸后神經(jīng)元的過程。在分布式平臺中,神經(jīng)元分布在不同節(jié)點(diǎn)上,因此突觸的傳播需要進(jìn)行節(jié)點(diǎn)間通信。

        目前業(yè)界針對大規(guī)模SNN 主要通過搭建大規(guī)模分布式集群的方式降低單個(gè)計(jì)算節(jié)點(diǎn)上的內(nèi)存消耗與計(jì)算時(shí)間消耗。但計(jì)算平臺的性能受節(jié)點(diǎn)規(guī)模影響,隨著節(jié)點(diǎn)數(shù)增加,單節(jié)點(diǎn)的計(jì)算時(shí)間消耗減少,但是節(jié)點(diǎn)間的通信時(shí)間增加。因此特定的工作負(fù)載和分布式平臺之間的映射都存在計(jì)算與通信平衡的問題。當(dāng)投入節(jié)點(diǎn)數(shù)小于平衡點(diǎn)時(shí),計(jì)算時(shí)間大于通信時(shí)間,未充分利用計(jì)算平臺性能;反之,過量投入計(jì)算節(jié)點(diǎn)會造成平臺的計(jì)算性能冗余。特定SNN 工作負(fù)載在分布式平臺上的最佳映射指通過確定合適的投入節(jié)點(diǎn)規(guī)模(最佳映射節(jié)點(diǎn)數(shù)),平衡計(jì)算與通信時(shí)間,最大限度減少SNN 案例的仿真耗時(shí),保證平臺以最優(yōu)的性能運(yùn)行。

        1.2 NEST仿真器

        本文通過分析NEST 仿真器實(shí)現(xiàn)機(jī)制對SNN 工作負(fù)載進(jìn)行研究。在NEST 上進(jìn)行SNN 模擬主要分為創(chuàng)建、連接、仿真三個(gè)階段。

        NEST 支持分布式計(jì)算,使用消息傳遞接口(Message Passing Interface,MPI)實(shí)現(xiàn)計(jì)算節(jié)點(diǎn)間的數(shù)據(jù)通信。NEST的創(chuàng)建和連接階段分別對應(yīng)SNN 案例中神經(jīng)元和突觸的構(gòu)建,進(jìn)行分布式計(jì)算時(shí),NEST 根據(jù)任務(wù)分配機(jī)制在每個(gè)計(jì)算節(jié)點(diǎn)上分布神經(jīng)元和突觸。

        NEST 采用基于進(jìn)程的輪詢算法分配神經(jīng)元,將神經(jīng)元按各自的全局標(biāo)識編號(Global IDentifier,GID)分配到不同的計(jì)算節(jié)點(diǎn)中。如圖1(a)所示,由兩個(gè)節(jié)點(diǎn)組成的分布式計(jì)算平臺包含進(jìn)程rank0 和rank1。NEST 根據(jù)神經(jīng)元GID 以循環(huán)方式將總共4 個(gè)神經(jīng)元均勻分布在兩個(gè)進(jìn)程上,括號內(nèi)的數(shù)字表示神經(jīng)元的GID。代理變量用于記錄分布在其他進(jìn)程上的神經(jīng)元GID。

        圖1 NEST運(yùn)行機(jī)制Fig.1 NEST operation mechanism

        NEST 中的突觸分配機(jī)制與該突觸連接的神經(jīng)元相關(guān)聯(lián),SNN 案例中的突觸根據(jù)各自連接關(guān)系,會被分配到其突觸后神經(jīng)元所在的進(jìn)程上。由于神經(jīng)元的分配采用了輪詢算法,突觸也會近似均勻地分布到各個(gè)進(jìn)程之中。

        網(wǎng)絡(luò)仿真階段包括突觸傳遞脈沖(Deliver)、神經(jīng)元更新(Update)和脈沖收集(Gather)三部分。在分布式平臺上,使用NEST 進(jìn)行網(wǎng)絡(luò)仿真的計(jì)算負(fù)載消耗主要包括Deliver 和Update 階段中各進(jìn)程上的神經(jīng)元、突觸模型的更新時(shí)間,通信負(fù)載消耗主要是Gather 階段收集脈沖信息所需的進(jìn)程間MPI 通信時(shí)間消耗。

        如圖1(b)所示,脈沖收集階段負(fù)責(zé)收集所有進(jìn)程上的脈沖信息。在該階段中,每個(gè)進(jìn)程都記錄了本進(jìn)程上產(chǎn)生脈沖的神經(jīng)元,并且每個(gè)進(jìn)程會把各自記錄的神經(jīng)元的GID(斜線、魚鱗線表示)放入各自的通信緩沖區(qū)Sendbuffer,且要求所有進(jìn)程的通信緩沖區(qū)大小相等。若有進(jìn)程上的脈沖數(shù)量大于該進(jìn)程的Sendbuffer 尺寸,則擴(kuò)大該進(jìn)程的Sendbuffer并且通過一次MPI_Allgather 通信將各個(gè)進(jìn)程上的Sendbuffer同步到最新的尺寸,這可能導(dǎo)致緩沖區(qū)未填滿,未填充的緩沖區(qū)內(nèi)容為空(空白方塊表示)。各進(jìn)程Sendbuffer 大小確定后,通過MPI_Allgather 通信將所有進(jìn)程的通信緩沖區(qū)依次匯總到全局通信緩沖區(qū)Globalbuffer,最后發(fā)送給每個(gè)進(jìn)程。

        1.3 SWAM自動(dòng)化映射器

        SWAM 是一個(gè)基于NEST 的工作負(fù)載自動(dòng)映射器,能夠預(yù)測SNN 工作負(fù)載與映射結(jié)果并完成映射。SWAM 包括工作負(fù)載建模和自動(dòng)映射器設(shè)計(jì)兩部分內(nèi)容。

        1.3.1 基于NEST的工作負(fù)載模型

        針對NEST 的工作負(fù)載包括內(nèi)存、計(jì)算、通信三方面。在SWAM 中,已經(jīng)針對這三方面的工作負(fù)載進(jìn)行了建模。

        在內(nèi)存方面,每個(gè)進(jìn)程的總內(nèi)存消耗M由運(yùn)行NEST 所需的基本內(nèi)存消耗Mo,神經(jīng)元內(nèi)存消耗Mn和突觸內(nèi)存消耗Ms三部分組成。

        在計(jì)算方面,每個(gè)進(jìn)程的計(jì)算時(shí)間消耗timecalculate包括神經(jīng)元計(jì)算時(shí)間消耗Tn和突觸計(jì)算時(shí)間消耗Ts。

        其中:tn_ref(i) 為處于不應(yīng)期的神經(jīng)元的單次更新時(shí)間;tn_unref(i)為非不應(yīng)期且無脈沖產(chǎn)生的神經(jīng)元的單次更新時(shí)間;tspike(i)為產(chǎn)生脈沖的神經(jīng)元的單次更新時(shí)間;ts(z)為突觸單次更新時(shí)間;Nspike(i)是脈沖產(chǎn)生次數(shù);cn_ref(i)、cn_unref(i)為仿真過程中神經(jīng)元更新處于不應(yīng)期、非不應(yīng)期且非脈沖激發(fā)狀態(tài)的次數(shù),cn_ref(i)、cn_unref(i)能夠根據(jù)Nspike(i)計(jì)算得出;nkind為神經(jīng) 元類型總數(shù),i∈[ 1,nkind]為神經(jīng) 元類型編號;Avgout(jpre)(z)為突觸前神經(jīng)元群落的出度;skind為突觸類型總數(shù);z為突觸類型編號;numj為突觸前神經(jīng)元群落的個(gè)數(shù);jpre為群落的編號;p為使用NEST 進(jìn)行SNN 仿真時(shí)投入的進(jìn)程數(shù)量。

        在通信方面,每個(gè)進(jìn)程通過MPI 通信收集脈沖信息的時(shí)間消耗如下:

        其中:Td為通信操作的執(zhí)行次數(shù);tMPI(sendbuffer,p)是在p進(jìn)程規(guī)模下的通信時(shí)間消耗;sendbuffer為單個(gè)進(jìn)程上的通信數(shù)據(jù)量大?。籺bandwidth表示平臺帶寬對通信時(shí)間的影響。

        1.3.2 自動(dòng)映射器流程

        SWAM 流程包括量化和自動(dòng)化映射模塊,如圖2 所示。

        圖2 SWAM流程Fig.2 SWAM flow

        量化模塊:模型中的穩(wěn)定參數(shù)通過量化程序獲取數(shù)值。穩(wěn)定參數(shù)包括計(jì)算負(fù)載模型參數(shù)tn_ref(i)、tn_unref(i)、tspike(i)、ts(z)以及tMPI。

        自動(dòng)化映射模塊包含兩個(gè)部分:1)網(wǎng)絡(luò)參數(shù)自動(dòng)采集(Auto_Collect),即在SNN 的構(gòu)建階段自動(dòng)采集模型中如Avgout(jpre)(z)、Td等網(wǎng)絡(luò)參數(shù);2)工作負(fù)載預(yù)測與映射(Auto_Forecast&Map),即將量化模塊和Auto_Collect 獲取的參數(shù)轉(zhuǎn)化為工作負(fù)載消耗的預(yù)測值,并根據(jù)預(yù)測結(jié)果,按映射標(biāo)準(zhǔn)給出最佳映射節(jié)點(diǎn)數(shù)。

        2 精準(zhǔn)通信負(fù)載模型及自動(dòng)映射方法

        本章在SWAM 的基礎(chǔ)上,優(yōu)化了通信負(fù)載模型,提出了負(fù)載模型參數(shù)更為精準(zhǔn)的量化方法,以提升SWAM 工作負(fù)載預(yù)測性能。同時(shí),新增并設(shè)計(jì)了最大網(wǎng)絡(luò)規(guī)模預(yù)測模塊,提供針對不同計(jì)算平臺最大網(wǎng)絡(luò)承載規(guī)模的預(yù)測功能。在此基礎(chǔ)上設(shè)計(jì)并實(shí)現(xiàn)了一種更為精準(zhǔn)的工作負(fù)載自動(dòng)映射器SWAM2。

        2.1 精準(zhǔn)通信負(fù)載模型設(shè)計(jì)

        在通信工作負(fù)載方面,SWAM 缺乏對NEST 通信機(jī)制和通信操作算法的分析,導(dǎo)致負(fù)載模型準(zhǔn)確性不高。本節(jié)基于SWAM 對建模過程中的通信負(fù)載模型進(jìn)行了優(yōu)化設(shè)計(jì),以提高通信時(shí)間的預(yù)測準(zhǔn)確率。

        2.1.1 NEST通信模塊算法建模

        根據(jù)1.3 節(jié)的分析,使用NEST 進(jìn)行SNN 仿真時(shí),主要通過MPI_ALLgather 通信操作傳遞脈沖信息,因此針對MPI_ALLgather 的實(shí)現(xiàn)進(jìn)行算法分析并建模。

        MPI_ALLgather 是一種全局收集通信操作,每個(gè)進(jìn)程都收集來自所有進(jìn)程的發(fā)送數(shù)據(jù)Sendbuffer,并把收集的數(shù)據(jù)匯總為全局通信數(shù)據(jù)Globalbuffer。為了建立MPI_ALLgather操作的時(shí)間代價(jià)模型,將通信量大小為n的點(diǎn)對點(diǎn)通信成本tP2P建模為通信建立時(shí)間和網(wǎng)絡(luò)傳輸時(shí)間,如式(6)所示:

        其中:ta為通信建立時(shí)延;tb為網(wǎng)絡(luò)時(shí)延。

        MPI_Allgather 操作中每個(gè)進(jìn)程都需要收集其他p-1 個(gè)進(jìn)程上的發(fā)送數(shù)據(jù),因此它需要的網(wǎng)絡(luò)傳輸數(shù)據(jù)量為sendbuffer× (p-1),其中sendbuffer為單進(jìn)程的通信數(shù)據(jù)量大小。此外,由于NEST 調(diào)用了MPICH(Message Passing Interface CHameleon)[22],根據(jù)實(shí)際情況選擇遞歸倍增、Bruck 和環(huán)算法中的一種實(shí)現(xiàn)全局收集通信操作,三種算法在實(shí)現(xiàn)步驟上有所不同。參考文獻(xiàn)[23]的工作,對MPI_ALLgather 操作的時(shí)間代價(jià)tcomm建模:

        其中:cstep是執(zhí)行MPI_Allgather 操作所需的操作步驟數(shù)。在不同進(jìn)程數(shù)p和Globalbuffer 長度下cstep取值如下:

        1)當(dāng)p為2 的整數(shù)次冪,且Globalbuffer 長度小于512 KB時(shí),采用遞歸倍增算法,cstep=lbp。

        2)當(dāng)p非2 的整數(shù)次冪,且Globalbuffer 長度小于80 KB時(shí),采用Bruck 算法,cstep=l bp。

        3)其他情況下采用環(huán)算法,cstep=p-1。

        MPI_Allgather 操作中的通信建立時(shí)延ta包括在源節(jié)點(diǎn)上進(jìn)行數(shù)據(jù)整合和目標(biāo)節(jié)點(diǎn)上進(jìn)行數(shù)據(jù)分解、校驗(yàn)等所需的時(shí)間,因此ta與計(jì)算平臺的性能有關(guān),與通信量大小無關(guān)。網(wǎng)絡(luò)時(shí)延tb表示每字節(jié)通信數(shù)據(jù)在通信網(wǎng)絡(luò)中的傳輸時(shí)間,tb的值與平臺通信帶寬B有關(guān)。

        2.1.2 通信負(fù)載模型優(yōu)化

        基于上述分析,可對NEST 中每個(gè)進(jìn)程進(jìn)行MPI 通信的時(shí)間消耗建立更精準(zhǔn)的工作負(fù)載模型:

        其中:tcomm(sendbuffer,p)為通信帶寬為B的計(jì)算平臺在p個(gè)進(jìn)程規(guī)模下,調(diào)用一次MPI_Allgather 通信操作所耗的時(shí)間;sendbuffer為每個(gè)進(jìn)程的通信數(shù)據(jù)量大小。

        相較于SWAM 的通信負(fù)載模型,精準(zhǔn)通信負(fù)載模型更加重視通信時(shí)間代價(jià)隨平臺投入進(jìn)程數(shù)變化的規(guī)律,同時(shí)更好地體現(xiàn)了平臺網(wǎng)絡(luò)帶寬對每次通信操作的影響。

        2.2 負(fù)載模型參數(shù)量化方法優(yōu)化

        本節(jié)對部分具有實(shí)時(shí)性的建模參數(shù)難以獲取的問題進(jìn)行分析,然后設(shè)計(jì)了一種參數(shù)量化方法。此外,針對精準(zhǔn)通信負(fù)載模型中新增的參數(shù)設(shè)計(jì)了量化方法。

        2.2.1 建模參數(shù)獲取分析

        如表1 所示,負(fù)載模型中的參數(shù)按照類型可分為時(shí)間參數(shù)和網(wǎng)絡(luò)參數(shù)。精準(zhǔn)通信負(fù)載模型中新增參數(shù)ta、tb為時(shí)間參數(shù),sendbuffer為網(wǎng)絡(luò)參數(shù)。根據(jù)對NEST 仿真架構(gòu)的分析,網(wǎng)絡(luò)參數(shù)中的進(jìn)程間通信量sendbuffer和各神經(jīng)元群落的脈沖產(chǎn)生次數(shù)Nspike在SNN 仿真過程中持續(xù)增加,且由于脈沖發(fā)射率具有實(shí)時(shí)性,難以對它的變化規(guī)律進(jìn)行建模,一般情況下必須通過完整網(wǎng)絡(luò)仿真獲取。因此可以將sendbuffer和Nspike劃分為實(shí)時(shí)網(wǎng)絡(luò)參數(shù)。

        表1 負(fù)載模型參數(shù)分類Tab.1 Classification of workload model parameters

        實(shí)時(shí)網(wǎng)絡(luò)參數(shù)均不受計(jì)算平臺性能影響,但是與投入仿真進(jìn)程數(shù)和具體SNN 的規(guī)模、連接拓?fù)溆嘘P(guān)。因此,實(shí)時(shí)網(wǎng)絡(luò)參數(shù)sendbuffer和Nspike的獲取必須針對不同情形進(jìn)行多次完整網(wǎng)絡(luò)仿真,它的代價(jià)無疑較大。針對此問題,SWAM 通過少量預(yù)仿真采集網(wǎng)絡(luò)中神經(jīng)元平均脈沖發(fā)射率,根據(jù)脈沖發(fā)射率和本地進(jìn)程的神經(jīng)元數(shù)量預(yù)測參數(shù)Nspike,同時(shí)根據(jù)Nspike推測平均通信發(fā)射任務(wù)量以框定sendbuffer。

        2.2.2 Single_Mode實(shí)時(shí)網(wǎng)絡(luò)參數(shù)量化方法設(shè)計(jì)

        針對實(shí)時(shí)網(wǎng)絡(luò)參數(shù)的獲取問題,本節(jié)參考“NEST dryrun”[19]的設(shè)計(jì)思想提出了一種實(shí)時(shí)網(wǎng)絡(luò)參數(shù)的低成本量化方法Single_Mode。Single_Mode 是一種經(jīng)過修改的NEST 仿真器運(yùn)行模式。在Single_Mode 下進(jìn)行網(wǎng)絡(luò)仿真只需投入一個(gè)進(jìn)程rank0,它的特殊設(shè)計(jì)能夠使rank0 的網(wǎng)絡(luò)仿真行為類似于NEST 常規(guī)流程中投入p個(gè)進(jìn)程進(jìn)行網(wǎng)絡(luò)仿真時(shí)rank0的仿真行為。因此,Single_Mode 下采集進(jìn)程rank0 上的實(shí)時(shí)網(wǎng)絡(luò)參數(shù)能夠作為對參數(shù)真實(shí)數(shù)值的量化。Single_Mode 的具體實(shí)現(xiàn)包含對NEST 中網(wǎng)絡(luò)構(gòu)建流程和仿真流程的修改。

        1)Single_Mode 網(wǎng)絡(luò)構(gòu)建流程。

        運(yùn)行Single_Mode 需要設(shè)定所需量化的條件下的網(wǎng)絡(luò)參數(shù)(目標(biāo)SNN 和投入網(wǎng)絡(luò)仿真進(jìn)程數(shù)p)。網(wǎng)絡(luò)構(gòu)建時(shí)只構(gòu)建屬于進(jìn)程rank0 的神經(jīng)元和突觸數(shù)據(jù)結(jié)構(gòu)。除rank0 外的p-1 個(gè)進(jìn)程稱為偽進(jìn)程,偽進(jìn)程未實(shí)例化。

        Single_Mode 下的網(wǎng)絡(luò)構(gòu)建流程中,進(jìn)程rank0 獨(dú)立運(yùn)行,不需要任何來自偽進(jìn)程的信息。進(jìn)程rank0 上僅實(shí)例化滿足條件GID%p=0 的神經(jīng)元。由于存儲突觸信息的數(shù)據(jù)結(jié)構(gòu)與其目標(biāo)神經(jīng)元(突觸后神經(jīng)元)存儲在同一進(jìn)程上,因此進(jìn)程rank0 僅需要檢測突觸的目標(biāo)神經(jīng)元是否分布在本地,以決定是否構(gòu)建記錄該突觸的數(shù)據(jù)結(jié)構(gòu)。

        2)Single_Mode 網(wǎng)絡(luò)仿真流程。

        NEST 常規(guī)仿真流程中,每個(gè)進(jìn)程獨(dú)立進(jìn)行神經(jīng)元更新,突觸傳遞脈沖的過程。但是脈沖收集階段需要收集其他進(jìn)程上的脈沖信息,為了模擬真實(shí)仿真流程,Single_Mode 實(shí)現(xiàn)中修改了NEST 仿真流程中的脈沖收集階段。

        如圖3 所示,Single_Mode 下的脈沖收集階段中rank0 會將神經(jīng)元產(chǎn)生的脈沖信息放入通信緩沖區(qū)Sendbuffer(rank0)。然而偽進(jìn)程都未實(shí)例化,不會產(chǎn)生脈沖信息,為了模擬p個(gè)進(jìn)程下的真實(shí)仿真行為,使rank0 能夠收集偽進(jìn)程的脈沖信息,Single_Mode 為每個(gè)偽進(jìn)程構(gòu)造了偽脈沖信息。構(gòu)造方法參考了“NEST dry-run”的設(shè)計(jì),在NEST 中神經(jīng)元群落均勻分布在所有進(jìn)程上,每個(gè)進(jìn)程都包含了神經(jīng)元群落的一個(gè)子集。偽脈沖信息的構(gòu)造假設(shè)在同一時(shí)間內(nèi),一個(gè)神經(jīng)元群落的所有子集產(chǎn)生的脈沖數(shù)量幾乎相等。因此Single_Mode 在仿真的每個(gè)時(shí)間片內(nèi)構(gòu)造了與rank0 上的脈沖數(shù)量相同的偽脈沖信息,以填充偽進(jìn)程的通信緩沖區(qū)。

        圖3 Single_Mode脈沖收集階段設(shè)計(jì)Fig.3 Design of spike gathering stage in Single_Mode

        Single_Mode 下的脈沖收集階段設(shè)計(jì)如圖3 所示,以2 個(gè)進(jìn)程為例,在每個(gè)仿真時(shí)間片內(nèi)rank0 把產(chǎn)生的脈沖信息放入 Sendbuffer(rank0)。偽進(jìn)程 rank1 的脈沖信息Sendbuffer(rank1)的構(gòu)建方式是:首先將Sendbuffer(rank0)的內(nèi)容直接復(fù)制給Sendbuffer(rank1);其次,將Sendbuffer(rank0)的非零項(xiàng)(斜線)替換為隨機(jī)選擇的神經(jīng)元GID(魚鱗線表示),但必須滿足GID%p=1,即這些隨機(jī)選擇的神經(jīng)元GID,即使在NEST 常規(guī)流程中也會被分配到進(jìn)程rank1 上。完成偽進(jìn)程構(gòu)建后無需進(jìn)行MPI 通信,而是把rank0 和所有偽進(jìn)程的脈沖信息依次連接組建全局脈沖信息,rank0 根據(jù)全局脈沖信息更新突觸和神經(jīng)元然后繼續(xù)進(jìn)行下一輪仿真。

        這種做法保證了所有進(jìn)程的發(fā)送緩沖區(qū)尺寸相等且隨rank0 的脈沖發(fā)射率而變化。盡可能模擬投入多進(jìn)程進(jìn)行仿真時(shí)的真實(shí)網(wǎng)絡(luò)狀態(tài)。按照Single_Mode 的設(shè)計(jì)進(jìn)行網(wǎng)絡(luò)構(gòu)建和仿真后,通過在NEST 內(nèi)核中的統(tǒng)計(jì)函數(shù)采集rank0 上的最終的通信緩沖區(qū)尺寸sendbuffer和各群落的脈沖激發(fā)次數(shù)Nspike以完成對實(shí)時(shí)網(wǎng)絡(luò)參數(shù)的量化。

        采用Single_Mode 量化實(shí)時(shí)網(wǎng)絡(luò)參數(shù)只需投入一個(gè)進(jìn)程,且無需進(jìn)行MPI 通信,顯然是一種低成本的方法。根據(jù)2.2.1節(jié)的分析,實(shí)時(shí)網(wǎng)絡(luò)參數(shù)數(shù)值與計(jì)算平臺算力無關(guān),因此Single_Mode 的量化結(jié)果具有平臺通用性。

        2.2.3 通信模型時(shí)間參數(shù)量化方法設(shè)計(jì)

        2.1 節(jié)優(yōu)化的精準(zhǔn)通信負(fù)載模型中新增的時(shí)間參數(shù)包括ta和tb,它們的數(shù)值與平臺性能和通信帶寬有關(guān)。

        量化方法是:首先通過控制變量法獲取不同進(jìn)程規(guī)模p、通信量sendbuffer下的MPI_Allgather 運(yùn)行時(shí)間tcomm以形成訓(xùn)練數(shù)據(jù)集。然后通過LM(Levenberg-Marquardt)最小二乘優(yōu)化算法對式(7)中的MPI_Allgather 操作時(shí)間代價(jià)模型進(jìn)行訓(xùn)練,最終得出ta和tb的值,如算法1 所示。

        2.3 最大網(wǎng)絡(luò)規(guī)模預(yù)測模塊設(shè)計(jì)

        本節(jié)在1.3.1 節(jié)提出的內(nèi)存負(fù)載模型基礎(chǔ)上,設(shè)計(jì)了針對分布式計(jì)算平臺的最大網(wǎng)絡(luò)規(guī)模預(yù)測模塊。

        當(dāng)SNN 在每個(gè)進(jìn)程上的內(nèi)存消耗等于計(jì)算平臺單個(gè)節(jié)點(diǎn)的最大可用內(nèi)存Mh(排除系統(tǒng)運(yùn)行等內(nèi)存消耗)時(shí),此時(shí)的網(wǎng)絡(luò)規(guī)模即為平臺所能承載的最大網(wǎng)絡(luò)規(guī)模。在分布式平臺上使用NEST 構(gòu)建SNN 時(shí),每個(gè)進(jìn)程沒有為非本地神經(jīng)元、未與本地神經(jīng)元建立連接的神經(jīng)元提供基礎(chǔ)設(shè)施,因此可對內(nèi)存負(fù)載模型中的神經(jīng)元內(nèi)存負(fù)載Mn和突觸內(nèi)存負(fù)載Ms進(jìn)行優(yōu)化:

        其中:N、Np為網(wǎng)絡(luò)規(guī)模和單節(jié)點(diǎn)神經(jīng)元數(shù)分別是進(jìn)程為每個(gè)神經(jīng)元提供的神經(jīng)元、突觸基礎(chǔ)設(shè)施內(nèi)存消耗以及本地神經(jīng)元基礎(chǔ)設(shè)施內(nèi)存消耗;mn和ms為單個(gè)神經(jīng)元模型和突觸模型的內(nèi)存消耗。

        綜上所述,對于神經(jīng)元平均入度為Avgin的SNN,單個(gè)節(jié)點(diǎn)最大網(wǎng)絡(luò)規(guī)模與平臺投入進(jìn)程數(shù)滿足以下關(guān)系:

        最大網(wǎng)絡(luò)規(guī)模預(yù)測模塊按照式(11)的模型,在確定計(jì)算平臺最大可用內(nèi)存Mh以及投入進(jìn)程數(shù)p后,即可預(yù)測出平臺單節(jié)點(diǎn)最大網(wǎng)絡(luò)規(guī)模Nfull。

        2.4 SWAM2實(shí)現(xiàn)

        SWAM2 整體流程如圖4 所示,2.1 和2.2 節(jié)的工作分別是對網(wǎng)絡(luò)自動(dòng)化映射和量化模塊的優(yōu)化。

        圖4 SWAM2流程Fig.4 SWAM2 flow

        2.4.1 量化模塊

        SWAM2 的量化模塊在保留了SWAM 原有的穩(wěn)定參數(shù)量化功能的基礎(chǔ)上,使用優(yōu)化量化方法獲取了實(shí)時(shí)網(wǎng)絡(luò)參數(shù)和通信模型中的時(shí)間參數(shù)。在目標(biāo)類腦計(jì)算平臺上,使用Single_Mode 運(yùn)行目標(biāo)SNN 案例即可完成實(shí)時(shí)網(wǎng)絡(luò)參數(shù)的量化。通過在Single_Mode 中設(shè)置不同的網(wǎng)絡(luò)仿真進(jìn)程數(shù),可以量化不同進(jìn)程規(guī)模下的實(shí)時(shí)網(wǎng)絡(luò)參數(shù)。

        對于通信模型中的時(shí)間參數(shù)ta和tb,首先在目標(biāo)類腦計(jì)算平臺上多次運(yùn)行MPI_Allgather 通信操作,每次運(yùn)行時(shí)改變進(jìn)程規(guī)模和通信量,采集通信操作運(yùn)行時(shí)間形成訓(xùn)練數(shù)據(jù)集,然后調(diào)用通信時(shí)間參數(shù)量化算法獲取參數(shù)ta和tb。此外,式(11)中的建模參數(shù)和ms在同一個(gè)計(jì)算平臺上都是固定值,屬于穩(wěn)定參數(shù),通過手動(dòng)分析量化獲取。

        量化模塊獲得的所有實(shí)時(shí)網(wǎng)絡(luò)參數(shù)、時(shí)間參數(shù)和穩(wěn)定參數(shù)放入?yún)?shù)記錄表中進(jìn)行存儲,后續(xù)流程可以直接讀取表中數(shù)據(jù)進(jìn)行工作負(fù)載預(yù)測和分析。

        2.4.2 網(wǎng)絡(luò)自動(dòng)化映射與最大網(wǎng)絡(luò)規(guī)模預(yù)測

        網(wǎng)絡(luò)自動(dòng)化映射模塊保留了網(wǎng)絡(luò)參數(shù)自動(dòng)采集功能(Auto_Collect)。在工作負(fù)載預(yù)測與映射(Auto_Forecast&Map)中采用了精準(zhǔn)通信負(fù)載模型,將量化模塊、Auto_Collect獲取的所有參數(shù)轉(zhuǎn)化為不同進(jìn)程規(guī)模下的計(jì)算時(shí)間timecalculate、通信時(shí)間timeMPI等負(fù)載預(yù)測結(jié)果。

        SWAM2 將SNN 案例在計(jì)算平臺上的仿真時(shí)間消耗作為衡量平臺運(yùn)行性能的標(biāo)準(zhǔn),SNN 的仿真時(shí)間消耗即是timecalculate和timeMPI之和。SWAM2 按照這一標(biāo)準(zhǔn),給出平臺取得最優(yōu)性能(SNN 的仿真時(shí)間消耗最少)時(shí)投入的進(jìn)程數(shù)量Pbest。由于NEST 在分布式計(jì)算平臺的每個(gè)節(jié)點(diǎn)上運(yùn)行一個(gè)進(jìn)程,因此Pbest的數(shù)值是SNN 在計(jì)算平臺上的最佳映射節(jié)點(diǎn)數(shù)。

        最大網(wǎng)絡(luò)規(guī)模預(yù)測模塊首先從參數(shù)記錄表中讀取式(11)所需參數(shù),然后通過函數(shù)接口接收描述計(jì)算平臺信息的參數(shù)Mh和p,最后即可完成對最大網(wǎng)絡(luò)規(guī)模的預(yù)測。

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

        3.1 實(shí)驗(yàn)平臺

        本文采用的實(shí)驗(yàn)平臺為由PYNQ Z1/Z2(PYthon productivity for zyNQ Z1/Z2)[24]組成的大規(guī)模分布式類腦計(jì)算平臺。如圖5 所示,類腦計(jì)算平臺的每個(gè)節(jié)點(diǎn)都包含一個(gè)ARM(Acorn Risc Machine)架構(gòu)的Cortex-A9 處理器及現(xiàn)場可編程邏輯門陣列(Field Programmable Gate Array,F(xiàn)PGA)。計(jì)算節(jié)點(diǎn)通過1 000 Mb/s 網(wǎng)絡(luò)帶寬的以太網(wǎng)連接到網(wǎng)絡(luò)交換機(jī),將計(jì)算節(jié)點(diǎn)分成2 組連接在2 個(gè)網(wǎng)絡(luò)交換機(jī)上,交換機(jī)互相橋接構(gòu)成一個(gè)完整平臺,以實(shí)現(xiàn)SNN 并行計(jì)算。

        圖5 PYNQ類腦計(jì)算平臺Fig.5 PYNQ brain-like computing platform

        在之前的工作中已針對STDP(Spike Timing Dependent Plasticity)突觸和IAF(Integrate-And-Fire)神經(jīng)元設(shè)計(jì)了加速模塊[25-26],選擇調(diào)用或不調(diào)用加速模塊可獲得兩種不同性能的類腦計(jì)算平臺(ARM+FPGA 和ARM)。

        3.2 工作負(fù)載

        為驗(yàn)證SWAM2 針對不同類型SNN 模型的有效性,本文對兩種不同類型的典型案例進(jìn)行測試。

        1)Example1:高性能計(jì)算機(jī)基準(zhǔn)測試[27]。該測試能夠衡量整個(gè)系統(tǒng)的性能,側(cè)重于神經(jīng)形態(tài)特性驗(yàn)證。包含兩個(gè)神經(jīng)元群落in 和ex,神經(jīng)元均為iaf_psc_alpha 類型,兩個(gè)群落中神經(jīng)元數(shù)量之間的比例為1∶4,網(wǎng)絡(luò)規(guī)??梢猿杀墩{(diào)節(jié)。該網(wǎng)絡(luò)包含靜態(tài)、STDP 兩種類型的突觸。

        網(wǎng)絡(luò)以11 250 個(gè)神經(jīng)元為基準(zhǔn),選取的縮放倍率為1.0。ex 包含9 000 個(gè)神經(jīng)元,in 包含2 250 個(gè)神經(jīng)元,網(wǎng)絡(luò)模擬運(yùn)行250 ms,運(yùn)行過程中每個(gè)神經(jīng)元更新2 500 次。ex 中的神經(jīng)元通過STDP 突觸與in 中神經(jīng)元連接,in 中的神經(jīng)元通過靜態(tài)突觸與ex 中神經(jīng)元連接,網(wǎng)絡(luò)包含約8 100 萬條STDP 突觸和4 556 萬條靜態(tài)突觸。

        2)Example2:皮質(zhì)層視覺模型[28]。該模型是無監(jiān)督的圖像分類算法,可以模仿生物學(xué)機(jī)制進(jìn)行圖像分類任務(wù)。該SNN 有5 層,前4 層網(wǎng)絡(luò)為訓(xùn)練部分,第5 層為推理部分。神經(jīng)元模型均是iaf_psc_exp,無設(shè)備類型神經(jīng)元,突觸模型包括靜態(tài)突觸和STDP 突觸。

        在網(wǎng)絡(luò)訓(xùn)練和驗(yàn)證過程中均使用了Caltech 101 數(shù)據(jù)集,模型的網(wǎng)絡(luò)規(guī)模與數(shù)據(jù)集圖片尺寸成正比,本文采用尺寸為300× 300 的數(shù)據(jù)集進(jìn)行測試,大約產(chǎn)生70 萬個(gè)神經(jīng)元、3 萬條STDP 突觸和570 萬條靜態(tài)突觸。網(wǎng)絡(luò)模擬運(yùn)行50 ms,運(yùn)行過程中每個(gè)神經(jīng)元更新500 次。

        3.3 優(yōu)化設(shè)計(jì)結(jié)果對比與分析

        為了驗(yàn)證SWAM2 中優(yōu)化的通信模型及參數(shù)量化方法的有效性,將SWAM2 和SWAM 針對兩種案例預(yù)測的實(shí)時(shí)網(wǎng)絡(luò)參數(shù)、工作負(fù)載數(shù)據(jù)分別與實(shí)測數(shù)據(jù)進(jìn)行對比;同時(shí)根據(jù)SWAM2 和SWAM 預(yù)測的計(jì)算、通信工作負(fù)載,推導(dǎo)出最佳映射節(jié)點(diǎn)數(shù)并與實(shí)測的最佳映射節(jié)點(diǎn)數(shù)進(jìn)行對比。

        3.3.1 負(fù)載數(shù)據(jù)預(yù)測結(jié)果對比與分析

        在預(yù)測實(shí)時(shí)網(wǎng)絡(luò)參數(shù)方面,對比表2 和表3 中數(shù)據(jù)可知,SWAM2 針對案例Example1 和Example2 預(yù)測的通信數(shù)據(jù)量sendbuffer在不同進(jìn)程規(guī)模下都十分接近實(shí)測數(shù)據(jù),通過計(jì)算預(yù)測值之和與實(shí)測值之和的比值,得到SAWM2 針對這兩個(gè)案例的sendbuffer的平均準(zhǔn)確率為95.80%,而SWAM 的預(yù)測平均準(zhǔn)確率為81.46%。

        表2 Example1中的sendbuffer 單位:B Tab.2 Comparison of sendbuffer in Example1 unit:B

        在工作負(fù)載預(yù)測方面,表4 對比了SWAM2 和SWAM 對實(shí)時(shí)網(wǎng)絡(luò)參數(shù)的預(yù)測準(zhǔn)確率以及在兩種計(jì)算平臺(ARM+FPGA 和ARM)上的平均工作負(fù)載數(shù)據(jù)預(yù)測準(zhǔn)確率。此外,以ARM 平臺為例,圖6 展示了不同進(jìn)程數(shù)下SWAM2 和SWAM 對計(jì)算、通信負(fù)載的預(yù)測結(jié)果,以及實(shí)測的負(fù)載數(shù)據(jù)。實(shí)驗(yàn)結(jié)果表明,隨著進(jìn)程數(shù)增加,通信時(shí)間逐漸增長,計(jì)算時(shí)間被稀釋,說明SNN 工作負(fù)載映射的問題真實(shí)存在,尋找最佳映射節(jié)點(diǎn)數(shù)能夠平衡計(jì)算與通信負(fù)載,減少SNN 的仿真耗時(shí)。SWAM2、SWAM 的預(yù)測結(jié)果均能夠反映負(fù)載數(shù)據(jù)變化趨勢,而SWAM2 的負(fù)載預(yù)測結(jié)果明顯更加接近真實(shí)數(shù)據(jù)。

        表4 預(yù)測準(zhǔn)確率對比 單位:%Tab.4 Comparison of predicted accuracy unit:%

        在通信負(fù)載預(yù)測方面,從表4 可知,SWAM2 通過建立精準(zhǔn)通信負(fù)載模型與準(zhǔn)確預(yù)測參數(shù)sendbuffer,有效提升了對通信負(fù)載預(yù)測的準(zhǔn)確率。SWAM2 針對2 個(gè)案例預(yù)測的timeMPI與實(shí)測數(shù)據(jù)間的平均誤差只有2.60 個(gè)百分點(diǎn),相較于SWAM,減少了12.62 個(gè)百分點(diǎn)。

        在計(jì)算負(fù)載預(yù)測方面,由于優(yōu)化了建模參數(shù)Nspike的量化方法,相較于實(shí)測數(shù)據(jù),SWAM2 對兩種案例預(yù)測的timecalculate的預(yù)測誤差只有1.59 和2.36 個(gè)百分點(diǎn),相較于SWAM,預(yù)測誤差減少了5.15 個(gè)百分點(diǎn)。

        3.3.2 映射結(jié)果對比與分析

        為了驗(yàn)證SWAM2 在預(yù)測最佳映射結(jié)果方面的有效性,針對兩種案例分別在ARM 和ARM+FPGA 兩個(gè)平臺上進(jìn)行仿真時(shí)間和映射結(jié)果預(yù)測對比。如圖7 所示,對通信和計(jì)算負(fù)載預(yù)測準(zhǔn)確率的提高使仿真時(shí)間的預(yù)測更加準(zhǔn)確,進(jìn)而提高了最佳映射結(jié)果的準(zhǔn)確率。

        圖7 SWAM2和SWAM仿真時(shí)間預(yù)測與實(shí)測數(shù)據(jù)比較Fig.7 Comparison of SWAM2 and SWAM predicted simulation time with measured data

        SWAM2 與SWAM 輸出的最佳映射結(jié)果Pbest如表5 所示。在ARM 和ARM+FPGA 兩個(gè)平臺上,SWAM2 針對Example1預(yù)測Pbest的預(yù)測誤差分別為2 和0 個(gè)節(jié)點(diǎn);針對Example2 預(yù)測Pbest的誤差分別為1 和0 個(gè)節(jié)點(diǎn)。計(jì)算預(yù)測誤差之和與實(shí)測數(shù)據(jù)之和的比值,得到的預(yù)測誤差率為2.45%。與實(shí)測數(shù)據(jù)相比,SWAM2 預(yù)測Pbest的平均準(zhǔn)確率達(dá)到了97.55%,相較于SWAM 準(zhǔn)確率提升13.13 個(gè)百分點(diǎn)。再次驗(yàn)證了SWAM2 對通信負(fù)載模型和建模參數(shù)獲取進(jìn)行的優(yōu)化設(shè)計(jì)的有效性。

        表5 最佳映射結(jié)果對比Tab.5 Comparison of best mapping results

        3.4 最大網(wǎng)絡(luò)規(guī)模預(yù)測結(jié)果分析

        為了驗(yàn)證SWAM2 最大網(wǎng)絡(luò)規(guī)模預(yù)測模塊的有效性,將預(yù)測結(jié)果與通過實(shí)測得出的單節(jié)點(diǎn)最大網(wǎng)絡(luò)規(guī)模進(jìn)行對比。相較于ARM 平臺,ARM+FPGA 平臺的每個(gè)節(jié)點(diǎn)需要消耗額外64 MB 內(nèi)存以支持加速,因此它的單節(jié)點(diǎn)最大網(wǎng)絡(luò)規(guī)模小于ARM 平臺。對比結(jié)果如表6 所示。

        表6 平臺NM與實(shí)測數(shù)據(jù)對比Tab.6 Comparison between platform’s NM and measured data

        對實(shí)測數(shù)據(jù)(ARM_M 和ARM+FPGA_M)分析可知,隨著投入節(jié)點(diǎn)數(shù)增加,單節(jié)點(diǎn)最大網(wǎng)絡(luò)規(guī)模數(shù)(NM)減少,原因在于每個(gè)節(jié)點(diǎn)提供給非本進(jìn)程神經(jīng)元的基礎(chǔ)設(shè)施內(nèi)存消耗增大,因此預(yù)測分布式計(jì)算平臺的最大網(wǎng)絡(luò)規(guī)模時(shí),考慮基礎(chǔ)設(shè)施的內(nèi)存消耗十分重要。SWAM2 預(yù)測的NM十分接近實(shí)測結(jié)果。以ARM 平臺為例,投入100 節(jié)點(diǎn)的NM的預(yù)測結(jié)果和實(shí)測結(jié)果(ARM_P 和ARM_M)分別為2 372 和2 250 個(gè)神經(jīng)元。采用與3.3.2 節(jié)相同的計(jì)算方式,根據(jù)預(yù)測數(shù)據(jù)和實(shí)測數(shù)據(jù)得到預(yù)測誤差,計(jì)算預(yù)測誤差之和與實(shí)測數(shù)據(jù)之和的比值得到誤差率,最后得到預(yù)測準(zhǔn)確率。針對兩種平臺的NM的預(yù)測準(zhǔn)確率為97.33%。證明了考慮基礎(chǔ)設(shè)施內(nèi)存消耗的模型的準(zhǔn)確性。

        3.5 SWAM2資源消耗評估

        SWAM2 的內(nèi)存資源消耗主要包括參數(shù)記錄表(V_static)和自動(dòng)化映射模塊記錄SNN 信息所需的數(shù)據(jù)結(jié)構(gòu)(V_collect)。上述內(nèi)存資源消耗與網(wǎng)絡(luò)模型規(guī)模有關(guān),如表7所示,針 對Example1 和Example2,SWAM2 分別消耗了181.1 KB 和9 678.3 KB,因此SWAM2 的內(nèi)存消耗處于較低水平。

        表7 SWAM2內(nèi)存消耗 單位:KB Tab.7 SWAM2 memory consumption unit:KB

        在時(shí)間資源消耗方面,SWAM2 的時(shí)間代價(jià)較為穩(wěn)定,針對Example1 和Example2 的時(shí)間消耗分別為0.9 s 和2.5 s,與通過真實(shí)網(wǎng)絡(luò)仿真的方式進(jìn)行映射試探相比,SWAM2 擁有絕對的時(shí)間優(yōu)勢。

        綜上所述,采用了精準(zhǔn)通信負(fù)載模型與優(yōu)化的參數(shù)量化方法后,SWAM2 在預(yù)測平臺通信、計(jì)算負(fù)載數(shù)據(jù)方面相較于SWAM 更為精準(zhǔn),對最佳節(jié)點(diǎn)映射的預(yù)測更為準(zhǔn)確。同時(shí)SWAM2 新增了最大網(wǎng)絡(luò)規(guī)模預(yù)測功能以幫助使用者針對不同計(jì)算平臺有效預(yù)測出最大承載網(wǎng)絡(luò)規(guī)模。此外,針對SWAM2 的資源消耗評估可知,SWAM2 所需的內(nèi)存和時(shí)間代價(jià)較小,具備輕量級的優(yōu)勢。

        4 結(jié)語

        針對如何在類腦計(jì)算平臺上實(shí)現(xiàn)工作負(fù)載和計(jì)算資源的合理映射問題,本文在SWAM 工作負(fù)載自動(dòng)映射器的基礎(chǔ)上加以改進(jìn),通過建立精準(zhǔn)通信負(fù)載模型以及優(yōu)化建模參數(shù)量化方法的方式,提升了對工作負(fù)載中的計(jì)算、通信時(shí)間以及最佳映射節(jié)點(diǎn)數(shù)的預(yù)測準(zhǔn)確率;同時(shí)設(shè)計(jì)了最大網(wǎng)絡(luò)規(guī)模預(yù)測模塊,準(zhǔn)確預(yù)測了不同計(jì)算平臺所能承載的最大網(wǎng)絡(luò)規(guī)模。在此基礎(chǔ)上實(shí)現(xiàn)了一種準(zhǔn)確度更高、功能更全面的SNN工作負(fù)載自動(dòng)映射器SWAM2。

        下一步工作將從以下兩方面展開:1)深入分析工作負(fù)載參數(shù)的影響因素,優(yōu)化負(fù)載模型參數(shù)獲取方法,以實(shí)現(xiàn)更加便捷、準(zhǔn)確的參數(shù)獲取。2)考慮輸入數(shù)據(jù)特性、模型計(jì)算精度等更多因素對SNN 工作負(fù)載的影響,從更廣闊的層面探究SNN 工作負(fù)載的合理映射問題。

        猜你喜歡
        進(jìn)程消耗神經(jīng)元
        如此消耗卡路里
        意林(2023年7期)2023-06-13 14:18:52
        玉鋼燒結(jié)降低固體燃料消耗實(shí)踐
        昆鋼科技(2022年4期)2022-12-30 11:23:46
        《從光子到神經(jīng)元》書評
        自然雜志(2021年6期)2021-12-23 08:24:46
        降低鋼鐵料消耗的生產(chǎn)實(shí)踐
        昆鋼科技(2021年6期)2021-03-09 06:10:18
        債券市場對外開放的進(jìn)程與展望
        中國外匯(2019年20期)2019-11-25 09:54:58
        我們消耗很多能源
        躍動(dòng)的神經(jīng)元——波蘭Brain Embassy聯(lián)合辦公
        基于二次型單神經(jīng)元PID的MPPT控制
        毫米波導(dǎo)引頭預(yù)定回路改進(jìn)單神經(jīng)元控制
        社會進(jìn)程中的新聞學(xué)探尋
        在线观看无码一区二区台湾| 亚洲国产精品久久久av| 在线观看av片永久免费| 中国丰满熟妇xxxx性| 欧美喷潮久久久xxxxx| 国产av无码专区亚洲aⅴ| 漂亮人妻被强中文字幕乱码| 国产欧美日韩不卡一区二区三区| 国产精品三级av一区二区| 亚洲永久免费中文字幕| 尤物yw午夜国产精品视频| 国产农村乱辈无码| 中文字幕影片免费在线观看| 国产精品爽爽VA吃奶在线观看| 国产91精品自拍视频| 国产黑丝美腿在线观看| 忘忧草社区www日本高清| 亚洲av有码在线天堂| 日韩肥熟妇无码一区二区三区| 亚洲精品美女中文字幕久久| 第一次处破女18分钟高清| 日韩成人无码| 99久久综合九九亚洲| 丁香婷婷激情俺也去俺来也| 日韩一区av二区三区| 国产成人无码精品久久二区三区| 亚洲不卡中文字幕无码| 一区二区三区四区亚洲综合 | 国产午夜精品av一区二区麻豆 | 无码成人片一区二区三区| 中文字幕中乱码一区无线精品| 亚洲国产中文字幕精品| 波多野结衣久久精品99e| 国产精品.xx视频.xxtv| 亚洲精品白浆高清久久| 国产在线av一区二区| 亚洲av无码国产综合专区| 久久久久久久性潮| 99热最新在线观看| 亚洲人成伊人成综合网中文| 一区二区视频中文字幕|