本研究由Deepika Sharma(普渡大学,美国印第安纳州西拉法叶)、Aayush Ankit(微软研究院,美国加利福尼亚州山景城)和Kaushik Roy(普渡大学)合作完成,发表于ACM/IEEE International Symposium on Low Power Electronics and Design (ISLPED ’22),会议于2022年8月1日至3日在美国波士顿举行。论文标题为《Identifying Efficient Dataflows for Spiking Neural Networks》,可通过DOI链接10.1145⁄3531437.3539704获取全文。
本研究属于神经形态计算(Neuromorphic Computing)与硬件加速器设计的交叉领域,聚焦于脉冲神经网络(Spiking Neural Networks, SNNs)的高效能效硬件实现。SNNs因其生物启发的脉冲通信机制和事件驱动特性,被认为比传统人工神经网络(Artificial Neural Networks, ANNs)更适用于低功耗边缘计算场景。然而,SNNs的硬件实现面临独特挑战:
1. 数据流复杂性:SNNs需额外维护神经元膜电位(membrane potential, *vmem*),并在每个时间步(timestep)更新,导致数据移动模式与传统ANNs显著不同。
2. 资源利用率瓶颈:现有ANN硬件加速器的数据流优化方法(如权重固定、输出固定)无法直接迁移至SNNs,需针对SNNs的时空稀疏性和时间维度重新设计。
研究目标是通过系统化数据流探索,提出适用于深度前馈SNNs的最优数据流策略,以降低能耗-延迟积(Energy-Delay Product, EDP),并为不同硬件架构与工作负载提供通用优化准则。
研究选取类Eyeriss架构作为基准硬件平台(SNN-Arch1),并扩展出两种变体(SNN-Arch2/3,差异见表1),以覆盖不同资源约束的加速器设计。关键硬件特性包括:
- 多级存储层次:片外DRAM、全局共享缓冲区(global buffer)、处理单元(PE)局部缓存。
- 专用PE设计:包含权重/输入/vmem/输出缓冲区、阈值寄存器、累加器和比较器单元。
基准数据流通过将ANN最优数据流(通过Timeloop工具生成)的时间步维度(*t*)外推至最外层构建,未改变原有数据固定性(如权重固定-WS、输出固定-OS)。
研究提出三条核心优化规则,通过调整循环顺序与维度划分提升数据复用和硬件利用率:
将时间步循环(*t*)移至最内层,使*vmem*在计算块内持续复用,减少DRAM访问。例如,对点卷积(PWC)层,该规则降低DRAM能耗1.3倍(图3示例)。
将部分计算维度(如输出通道*k*)划分至PE缓冲区循环,提升缓冲区利用率。例如,将*k*的因子2从全局缓冲区下移至PE输出缓冲区,使全局缓冲区能耗降低1.17倍(图3(iii))。
将时间步因子逐步向计算单元靠近,权衡存储层级间的数据移动。需谨慎应用以避免能耗转移(如DRAM能耗降低但全局缓冲区能耗增加)。实验显示,适度迁移(Rule 3(i))对卷积层(CONV)有效,而激进迁移(Rule 3(iii))可能适得其反。
不同硬件架构与工作负载下,最优数据流类型各异(图5):
- SNN-Arch1(资源受限):行固定(RS)数据流在PWC1层最优,因最大化输入/权重/*vmem*复用。
- SNN-Arch3(高并行):权重固定(WS)在PWC2层胜出,因大容量PE缓冲区支持权重长期驻留。
本研究为SNN硬件高效实现奠定了重要基础,未来可扩展至递归SNN(RSNN)或更复杂的脉冲编码方案(如时间编码)。