Page 372 - 《软件学报》2025年第4期
P. 372

1778                                                       软件学报  2025  年第  36  卷第  4  期


                 数模/模数转换电路的需求, 在单位能耗和单位面积吞吐量上比基于静态随机存储器的同等设计高出约                                 6  倍.

                 3.4   硬件映射方法
                    研究表明, 虽然软件仿真具有高灵活度、高精度的特点                  [208] , 但不能充分利用神经网络的高并行性, 而且处理
                 速度慢, 功耗高. 硬件实现可以改善软件仿真的不足, 充分体现神经网络的高并发特性                          [209] . 因此, 有必要研究硬件
                 映射方法, 进而高效地将       SNN  模型部署在各类硬件平台上.
                    与传统的冯·诺依曼体系结构不同, 在神经形态硬件中, 计算单元                    (神经元) 和存储单元      (突触) 像横杆一样分
                 布在硬件内部, 每个横杆限制了每个突触后神经元允许有多少个突触前连接和多少缓冲空间可用于互连发送和接
                 收脉冲. 这些硬件资源和分布方式既影响模型的准确性, 也影响吞吐量、延迟和能耗等硬件性能. 将                               SNN  映射到
                 横杆的原理如图      19  所示, 自突触前神经元的脉冲向横杆注入电流, 电流是沿行施加的脉冲电压                       (即输入激活    x i  )
                 与交叉点突触元件电导         (即突触权重    w ij  ) 的乘积. 沿列的电流求和是并行进行的, 实现了神经元兴奋             x i  向前传播
                      ∑
                         w ij x i  求和值.
                 所需的
                    为了降低能耗, 横杆的尺寸受到限制, 每个神经元只能容纳有限数量的突触. 在大型芯片中, 会使用                             NoC  这样
                 的方式将多个横杆集成在一起. 然而, 大规模             SNN  需要的大量内核间通信会导致          NoC  拥塞, 并显著降低性能. 因
                 局突触的最佳位置, 最大限度地降低能耗和脉冲延迟.
                 此, 有必要设计合适的硬件映射方法, 使           SNN  模型的部署更高效.
                    随着  SNN  规模的扩大, 将所有神经元映射到单个内核中并不可行. 一种可能的解决方案是将                          SNN  分割并映
                 射到多核神经形态硬件上. 然而, 将神经元映射到具有最低脉冲延迟和能耗的不同内核已被证明是一个 NP-
                 complete 难题  [210] . 目前, 将  SNN  分割并映射到多核神经形态硬件的主要过程如图         20  所示, 在分区前, 需要使用仿
                 真工具   (如第  2  节提到的  NEST  和  CARLsim  等) 对  SNN  进行模拟, 然后统计分析网络的各项仿真性能, 再将
                 SNN  模型划分为多个簇, 保证每个簇的神经元数量不超过单个神经形态内核的容量, 接着选择适当的内核执行
                 SNN  的分区应用, 最后将     SNN  模型部署到硬件上.


                                                                     基于 SNN 的应用
                                                                        步骤 1
                                                                                       步骤 2
                                                                采样     SNN 模拟        解析日志文件
                            突触前神经元                                   (Brain2, CARLsim)  并提取沟通模式
                  突触前神经元                           交叉电路                               步骤 3
                                                                   步骤 4
                           突触后神经元                                部署基于 SNN        步骤 3.2   步骤 3.1
                                             突触后神经元                的应用           聚类映射     SNN 划分
                                     外围电路
                           图 19    SNN  映射横杆阵列                       图 20    SNN  映射多核神经形态硬件
                    SpiNeMap [211] 是一种将  SNN  映射到基于横杆阵列的神经形态硬件的方法, 分两个步骤运行                  SpiNeCluster 和
                 SpiNePlacer. SpiNeCluster 是一种基于启发式的聚类技术, 可将     SNN  划分为突触群组, 群组内的局部突触映射到硬
                 件的横杆上, 群组间的全局突触映射到共享互连上. 然后, SpiNePlacer 采用元启发式方法在硬件上找到本地和全


                    MAMAP  [212] 是一种缓解 NoC 通信拥塞的基于记忆算法的映射方法, 所提出的记忆算法结合了粒子群优化算
                 法  [213] 的全局搜索能力和 TABU  [214] 的局部搜索能力, 可以快速找到最佳映射方案, 通过最大化带宽利用率来最小
                 化神经形态硬件的延迟和功耗. 与 SpiNeMap 相比, MAMAP 可将平均延迟降低                 63%, 平均能耗降低     69%.
                    SNEAP [215] 的映射方法和 SpiNeMap [201] 类似, 在此前的基础上采用了一种有效的图分割方法来提高分割质量,
                 同时大幅缩短分割时间, 并使用平均跳数来评估平均神经元通信延迟和功耗, 而不是使用模拟器来评估平均神经
                 元通信延迟和功耗, 与       SpiNeMap  相比, SNEAP  的端到端执行时间平均减少        418  倍, 能耗和脉冲延迟平均分别减
                 少  23%  和  51%.
                    NeuMap  [216] 是一种简单快速地将   SNN  映射到多核神经形态硬件上的方法. 该方法首先通过计算获得 SNN                   的
   367   368   369   370   371   372   373   374   375   376   377