基于神經網絡動態特征的片上網絡資源映射方法
【技術領域】
[0001] 本發明涉及計算機視覺技術領域,特別涉及一種基于神經網絡動態特征的片上網 絡資源映射方法。
【背景技術】
[0002] 大腦與傳統的馮?諾伊曼計算機相比,具有超低功耗、高容錯性的特點,在處理非 結構化信息和智能方面,大腦具有顯著優勢。隨著腦科學的發展,借鑒大腦的計算模式構建 基于神經形態工程的新型計算系統已經成為一個新興的發展方向。
[0003] 大腦的基本組成單元是神經元,神經元之間通過突觸相互連接,通過收發動作電 位進行通信。每個神經元通常連接著100到10000個突觸,大量神經元通過突觸相互連接形 成復雜的神經網絡。
[0004] 模擬神經形態網絡是一種非常重要、有效的研究和實現方法,雖然軟件模擬具有 非常高的靈活性,但模擬效率非常低,功耗非常高。為了加速神經形態網絡的模擬,利用大 規模集成電路實現神經形態網絡的模擬和仿真是神經形態工程常用的實現方法,其計算特 點是具有高度的并行性和密集的通信,因此用對稱多核處理器結合片上網絡來構建神經形 態網絡計算平臺是一種較為通行的做法。
[0005] 片上網絡(NoC,Network on Chip)借鑒了分布式計算系統的通信方式,采用路由 和分組交換技術替代傳統的總線,具有更加高效的核間通信能力。具體地,神經形態芯片通 常由多個計算核心組成,每個核心可以模擬一定數量的神經元,核心之間通過片上網絡連 接起來,通過片上網絡的虛擬連接來模擬神經元之間的突觸連接。神經形態網絡和片上網 絡差異非常大,前者拓撲復雜,運行頻率低,后者拓撲簡單,運行頻率高。將神經形態網絡配 置到神經形態芯片上后,原來神經形態網絡中的大量連接會共用片上網絡的路徑。因此,將 神經形態網絡映射到片上網絡的策略將很大程度上影響系統的性能。
[0006] SpiNNaker項目的映射技術中,在神經形態構建軟件時,通常以神經元群為基本的 構建單元,群內部的神經元類型、功能均相同,同一個群內的神經元之間無相互連接,但群 與群之間會有大量的突觸連接,并且通常是兩個群的神經元之間全相聯的形式。
[0007] 基于上述特點,該技術盡可能將同一個神經元群的神經元放置到同一個核或相鄰 的核上。具體做法如下:
[0008] 1)根據每個核可以放置的神經元數量,將每個神經元群分成若干個子群,子種群 的大小與每個核可以放置的神經元數量相同;
[0009] 2)當子群中神經元數量較少,未達到每個核可以放置的神經元數量時,則對該子 群進行組合,使其能夠盡量放滿一個核;
[0010] 3)將各個子群放置到各個核上,并考慮神經元群之間的局部性。
[0011]神經元的發放以多播的形式在片上網絡上傳播。由于每個神經元發放神經脈沖 時,其目標節點通常是若干神經元群中的全部神經元,將這些目標節點盡可能放置在同一 個節點或者多個相鄰的節點上,以使多播數據包的目標節點數量最小,且分布盡量集中,進 而可以減少傳輸多播數據包所占用的網絡資源。
[0012] 然而,由于同一個神經元群的神經元在發放神經脈沖時,通常具有相同目標節點, 所以將這些神經元放置到同一個核或相鄰的核上。又由于這些神經元產生的多播數據包具 有相同的源節點和目標節點,因此這些多播數據包所走的路徑將完全相同,這就導致了這 些多播數據包之間會產生激烈的競爭和擁堵,尤其是較為活躍的神經元群。其中,在活躍的 神經元群所在的計算節點上,由于從計算節點進入網絡的通道資源有限,會導致大量的多 播數據包擁堵在節點內部,節點的出口帶寬將成為系統的瓶頸。
[0013] 另外,神經元的分配也可以利用傳統的片上網絡應用的映射算法來解決。該算法 通常是根據IP核(Intellectual Property core,知識產權核)的熱度、通信量等信息,將通 信密集的IP核分配到臨近的節點上,但由于搜索空間過大,找到全局最優解非常困難。因 此,該算法主要致力于減少搜索空間,提高搜索效率,找到一個相對較好的局部最優解。
[0014] 其中,較為經典的有KL(即Kernighan-Lin)算法。KL算法是一個0(n2logn)時間復 雜度的圖分割算法,設G(V,E)是一個圖,其中,V是頂點的集合,E是邊的集合,KL算法將V分 為大小相同兩個部分A和B,使得A和B中所有頂點之間邊的權重之和T最小。設a為A中的頂 點,lAa與A中其它頂點之間邊的權重之和,EAa與B中其它頂點之間邊的權重之和,損失 權重定義為Da = Ea-Ia。
[0015] 該算法主要分為以下三個步驟:
[0016] 1)隨機產生大小相同的兩個集合A和B;
[0017] 2)計算A和B中每個頂點的內權重和外權重;
[0018] 3)將A和B中的頂點a和b進行交換,每輪迭代選取交換之后損失權重降低最多的兩 個點進行交換,直至損失權重不再降低。
[0019] 通過KL算法,逐步將一個網絡的通信盡可能的集中到局部,可以有效降低網絡中 的通信量。
[0020] 神經形態網絡相比傳統的并行計算任務有很多不同,傳統的并行計算任務對少量 節點的擁堵不敏感,而神經形態網絡的多播數據包若在一定時間內未送達,會導致丟包,影 響網絡的功能。因此,為了確保網絡的功能可靠,神經形態網絡的運行速度取決于延遲最長 的多播數據包傳輸時間。可以看出,若計算任務過于集中,則會導致局部的擁堵嚴重,影響 神經形態網絡的運行性能。
【發明內容】
[0021] 本發明旨在至少解決現有技術中存在的技術問題之一。
[0022] 有鑒于此,本發明需要提供一種基于神經網絡動態特征的片上網絡資源映射方 法,該方法能夠有效均衡負載,減少網絡擁塞,降低最大傳輸延遲,并提高系統性能。
[0023] 為了實現上述目的,本發明的實施例提出了一種基于神經網絡動態特征的片上網 絡資源映射方法,包括以下步驟:獲取神經網絡中的所有神經元,其中,所述神經網絡由神 經元群組成,所述神經元群由神經元組成;將所述神經元群中的神經元放入片上網絡N個核 中,其中,同一個所述神經元群中的神經元放到同一個所述核和/或距離相近的兩個或多個 核中,其中,所述N為大于1的正整數;運行SNN網絡,分別計算每個核的通信量S,并根據所述 S對所述N個核進行排序:Si 2 S2> . . . 2 SN;判斷Si/Sj是否小于預設值,其中,i = l,2,. . .,N/ 2or(N-l)/2,j=N-i+l;如果否,則交換通信量分別為SdPSj的兩個核中一半的神經元,得到 神經元到片上網絡N個核的新的映射。
[0024] 本發明實施例的基于神經網絡動態特征的片上網絡資源映射方法,將多個神經元 群中的神經元放置到多個核中,并且將同一神經元群中的神經元盡可能放到同一個核或距 離相近的核中,每個核對應片上網絡中的一個節點,進而通過交換不同核中的神經元,將片 上網絡一個節點內的任務進行拆分,即交換活躍節點和不活躍節點中的神經元。本發明實 施例的方法能夠有效均衡負載,減少片上網絡中的擁塞,降低最大傳輸延遲,進而提高數據 傳輸性能。
[0025] 另外,本發明上述實施例的基于神經網絡動態特征的片上網絡資源映射方法還具 有如下附加特征:
[0026] 根據本發明的一個的實施例,所述每個核的通信量S為所述每個核運行SNN (Spiking Neuron Networks,脈沖神經網絡)網絡中發送的數據包數量,其中,所述數據包 的字段包括神經元群ID和神經元ID,每個所述數據包只有一個數據分片。
[0027]根據本發明的一個實施例,所述片上網絡包括處理單元、網絡接口、路由器、節點 和互聯網絡,其中,所述處理單元、所述網絡接口、所述路由器和所述節點之間存在一一對 應關系,所述節點包括源節點和目標節點,所述互聯網絡的拓撲為所述節點之間的連接方 式。
[0028] 根據本發明的一個實施例,所述N個核中神經元的所述數據包發送采用兩層路由 結構。
[0029] 根據本發明的一個實施例,所述源節點向所述目標節點發送數據包,具體包括以 下步驟:所述核中的所述數據包傳到其對應的路由器上;根據所述數據包的所述神經元群 ID進行路由;所述數據包到達所述目標節點后,根據所述神經元ID將所述數據包發送至對 應神經元;所述對應神經元根據連接信息確定是否接收所述數據包,其中,所述連接信息保 存在所述目標節點中。
[0030] 根據本發明的一個實施例,所述數據包進入所述對應的路由器之后,所述對應的 路由器通過查詢路由表獲取所述數據包的傳輸方向,所述路由表的表項包含鍵和值,其中, 所述鍵為所述神經元群ID,所述值為出口方向。
[0031] 根據本發明的一個實施例,如果所述路由表中沒有找到某個神經元群ID對應的表 項,則采用默認的路由方式。
[0032] 根據本發明的一個實施例,所述預設值為2。
[0033] 根據本發明的一個實施例,所述默認的路由方