Population-Based Routing in the SpiNNaker Neuromorphic Architecture

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/soulmate_uu/article/details/95011481

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拓扑路径来大大减少计算时间。

扫描二维码关注公众号,回复: 7195781 查看本文章

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到底是什么?

此篇文章的实验结论常被当做参考。

猜你喜欢

转载自blog.csdn.net/soulmate_uu/article/details/95011481