Population-Based Routing in the SpiNNaker Neuromorphic Architecture

Population-Based Routing in the SpiNNaker Neuromorphic Architecture

————————————————————————————————————————————————————————

  • 發表時間:2012年
  • 作者:
    Sergio Davies:英國曼徹斯特大學計算機科學學院,教授
    Javier Navaridas, Francesco Galluppi ,Steve Furber
  • 摘要:SpiNNaker是一種基於硬件的大規模並行實時通用神經網絡模擬器,用於模擬大規模脈衝神經網絡。 脈衝使用多播數據包路由器分佈在整個系統中。 每個數據包代表神經元生成的事件(脈衝)。 在脈衝源(芯片,核心和神經元)的基礎上,路由器將網絡分組通過系統分配到目標神經元。
    本文描述了一種projection路由問題的新方法,該方法在生成的路由表的大小和生成路由表的計算複雜性方面都顯示出優勢。 爲了實現這一點,在source population的基礎上對脈衝進行路由,將接收的脈衝傳播到適當的神經元的工作就交給目標core。
    (Projection:兩個population之間的單個連接束)

————————————————————————————————————————————————————————

————————————————————————————————————————————————————————

1. 介紹

   在生物學中,每單位計算似乎非常簡單,而複雜性體現在連通性中。然而令人驚訝的是,在二十多年的硬件(和軟件)開發過程中,大多數研究工作更多地集中在有效的計算方法而不是高效的連接架構上。
   因此本文提出了一種基於可路由AER(Address Event Representation protocol )網絡的架構,該架構提出並採用了population的思想。

2. SpiNNaker介紹

SpiNNaker 是一種基於硬件的實時通用神經網絡仿真器,遵循事件驅動的計算方法。 該項目涉及芯片的設計和專用軟件的開發,以模擬神經網絡,主要從以下幾個方式來模擬神經網絡:
(1)原生並行性:每個神經元都是大規模並行系統中的原始計算元素。 同樣,SpiNNaker使用並行計算;
(2)脈衝通信:在生物學中,神經元通過脈衝進行通信。 SpiNNaker架構使用基於源的AER包來傳輸等效的神經信號;
(3)事件驅動的行爲:神經元非常節能,並且比現代硬件消耗更少的功率。 爲了降低功耗,在等待事件時,我們將硬件置於“休眠”狀態;
(4)分佈式記憶:在生物學中,神經元僅使用本地信息來處理傳入的刺激。 在SpiNNaker架構中,我們使用每個內核本地存儲器和每個芯片本地的SDRAM;
(5)可重構:生物神經網絡具有突觸可塑性。 這意味着神經連接在形狀和強度上都會發生變化,SpiNNaker架構允許進行重新配置。

  • 硬件
    SpiNNaker系統的核心是SpiNNaker節點(圖1):一個包含18個ARM968處理器的多處理器芯片(見圖2),每個處理器運行頻率爲200 MHz。 每個內核都有一個包含本地指令和數據的96 KB TCM(緊耦合存儲器)。 此外,共享的128 MB SDRAM存儲器可用於芯片的所有內核。關於硬件信息可詳見SpiNNaker的其他論文。

圖1
這裏是引用
圖2
這裏是引用

  • 軟件
      爲該系統開發的軟件旨在最大限度地提高電源效率。 空閒時,處理器保持低功耗休眠模式,並啓用中斷。 當接收到中斷時,處理器執行所需的操作以響應中斷請求,然後返回休眠狀態。
       值得注意的是,每個核心能夠在實時約束內模擬的神經元數量隨着神經元模型本身的計算複雜性和所需的連接模式而變化, 但是,每個核心能夠模擬的神經元的最大數量是由SpiNNaker系統的設計規範強加的。 所有組件,特別是與內存訪問和通信相關的組件,都被設計爲支持每個核心最多1,000個神經元生成的流量。

  • SpiNNaker中的多播通信
       當生物神經元發出動作電位時,它會影響大量突觸後神經元,通常爲數千種。 SpiNNaker系統中重現了這種機制,使用了允許片上和片內通信的多播數據包路由器。 其主要任務是根據源神經元的標識符(identifier,“ID”)將網絡數據包傳播到目標核。
       當神經元傳輸時,生成數據包並通過網絡傳輸。包中包含的唯一信息點火神經元的標識符,將數據包傳送到適當目的地所需的信息嵌入在每個路由器中存在的路由表中, 當路由器收到數據包時,它會在路由表中查找匹配項,以確定後續步驟的方向。
       數據包結構如下圖3:

圖3
在這裏插入圖片描述

我們不是生成神經元到神經元的多播樹,而是通過生成population-to-population拓撲路徑來大大減少計算時間。

3. Population-based Routing

  由圖3的routing key的結構,暫且不分析前面的23bits,先分析後面的population ID和neuron ID,共11bits,一共可產生2048個尋址空間,每個core裏的population是按照size來劃分的,每個population的大小接近2的冪次方,可以達到細化routing key的效果。最重要的是,爲了在SpiNNaker網絡中路由數據包,it is possible to use a single entry in the router per population, defining the route on the basis of the population ID.。

例如,圖4:
在這裏插入圖片描述

  • 多播路由生成
    考慮源-目的的最短路徑,在給定三角拓撲情況下,有三種路由算法可供選擇:
    (1) Dimension Order Routing (DOR):這將路由數據包首先推進X維度中所有必需的躍點,然後是Y維度,最後沿對角線。
    (2)Right Turn Only (RTO):數據包的路由方式只允許右轉。
    (3) Longest Path First(LPF):每個數據包首先在具有最大跳數的方向上前進,然後在另一箇中前進(如果有的話)。
    實驗證明,LPF算法在節約網絡資源與平衡負載兩個方面效果都是最好的。

圖5
在這裏插入圖片描述

  • 在SpiNNaker中使用LPF
    第一步:估計源、目的芯片之間的座標差異——以便求出在四個主方向上的跳數,如圖6。
    第二步:計算對角方向的跳數——注意,僅在一三座標系中有對角跳。(計算對角之後X與Y方向可能要重新計算)

圖6:路由器的設計
在這裏插入圖片描述

圖7:由LPF算法計算出的多播樹
在這裏插入圖片描述
其中,方形框代表節點,節點之間的連線代表鏈路;
黑色線條是使用了多播算法後選出來的路徑;紅色虛線分隔的是每個輸出端口的可達域。

4. 路由測試

文章中所提出的population-to -population的路由算法,在以下三個場景中進行測試。
(1)One population per core, local projections only;
所需時間與connections的數量成線性關係。(此情況下,只有單跳)
(2)One population per core, system-wide connectivity;
計算所需的時間不只與connections的數量有關,還與跳數有關。
(3)A simple biologically-inspired thalamocortical model. (簡單的生物啓發丘腦皮層模型)

5. 結論

projections的數量不會隨着每個populations中神經元的數量而增加,而是隨着模型中的populations數量而增加。

SpiNNaker系統旨在爲生物學家提供一種工具,用於進行生物神經網絡研究中出現的實驗和檢驗假設。這裏介紹的工具是在SpiNNaker系統中實現此類模型的一個步驟,目的是提供一個工具來模擬這樣的生物過程,將神經網絡的描述從一個層次提升到population規模。

本文描述了SpiNNaker系統中的多播數據包路由器以及如何離線計算路由表。
在這種情況下,選擇“最長路徑第一”算法是因爲它僅需要本地信息來將分組路由到目標芯片(該算法僅需要源芯片座標和目標芯片座標)。路由路徑可以由分組必須通過的每個路由器逐跳地計算,直到到達目的地路由器。然而,該路由算法的結果表明,對於隨機網絡和生物啓發的網絡,與可用條目的數量相比,路由表中使用的條目的數量相當低。因此,即使所使用的模型僅用於測試目的,仍然可用於每個路由器的路由條目使用戶能夠設計更具生物學細節的網絡。新方法將系統中峯值分佈的問題轉移到一個抽象層次:projections數量不再依賴於每個單一population的大小,而是取決於系統中模擬的population數量。這種方法的計算改進允許在合理的時間內將投影路由到非常大的神經網絡,例如SpiNNaker系統已經設計的神經網絡。

————————————————————————————————————————————————————————

參考文獻

問題:路由條目entry是什麼意思?projection到底是什麼?

此篇文章的實驗結論常被當做參考。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章