Page 387 - 《软件学报》2025年第10期
P. 387
4784 软件学报 2025 年第 36 卷第 10 期
表 7 MNIST 神经网络参数说明
网络规模与参数 说明
神经元规模 输入层: 784, 输出层: 10
突触规模 7 840
神经元类型 输入层: Poisson, 输出层: LIF
神经元参数 v th : 1 mV, τ: 0.5 s, v reset : 0 mV
突触类型 静态突触
突触参数 权重w由SpikingJelly训练得到
我们进一步开展了消融测试, 对比了不同优化选项对执行时间的影响. 实验采用了如下优化方法: 对神经元更
新操作使用 SIMD 向量化、对脉冲传播操作使用不同的稀疏格式与向量化方法运算. 表 8 展示了消融测试结果.
其中发放状态稀疏性, 达到了 1.97 倍加速比 (1.262→0.640). 由神经元更新使用 SIMD 向量化以及脉冲传播操作
中进行向量化带来的性能提升较小, 主要原因为该网络的网络规模较小, 向量化带来的并行性提升不明显.
表 8 MNIST 神经网络消融测试
神经元更新操作方法 脉冲传播操作方法 执行时间 (ms)
标量计算 均为稠密 1.262
标量计算 发放状态稀疏 0.640
标量计算 发放状态稀疏 + SIMD向量化 0.617
SIMD向量化 发放状态稀疏 + SIMD向量化 0.614
4.4 ReRAM 后端的端到端测试
∗
我们采用了 XB-SIM ∗[15] 框架作为这一测试中的 ReRAM 行为仿真后端. XB-SIM 是一个可灵活配置的、基于
ReRAM 交叉开关结构的神经网络加速器开源仿真框架, 以时钟驱动方式模拟加速器结构与流水线行为.
XB-SIM 在 ∗ ReRAM 行为模型以外, 实际上还包括了面向 ReRAM 特性的神经网络训练等功能, 但在这一测试
中仅使用其 ReRAM 神经网络加速器 (ReRAM-based NN accelerator, RNA) 仿真功能, 即以时钟驱动方式仿真配备
了控制逻辑和数据缓冲区的由多个处理单元构成的神经网络推断流水线, 每个处理单元的主体是若干个 ReRAM
交叉开关结构, 进而运行 SNN 推断过程.
仿真所涉及的主要配置参数如表 9 所示; 每个交叉点上存储的权重被限制到 [−1, 1] 区间中的 32 个离散数值
上, 并在计算中模拟了随机误差. 交叉开关的输出被限制在 [−128, 128] 区间中, 并被舍入为最接近的整数. XB-
∗
SIM 的结构、运行过程以及参数的具体解释请见附录 B.
表 9 ReRAM 仿真参数
ReRAM参数 说明
权重范围 [−1, 1]区间
权重精度 32种离散可能取值
ADC输出位宽 8 bits
ADC输出精度 1
ADC输出范围 [−128, 128]
DAC输出电压 0.15 V
RNA流水线延迟 100 ns
基于此后端, 我们首先测试了编译生成的 MNIST 分类任务准确率, 如表 10 所示.
其中, 未经过微调的转换只是将原矩阵中权值直接替代为最接近的离散权值, 由于 ReRAM 硬件带来的数据
表示与计算精度限制, 相比原始准确率有显著下降. 经过微调的转换则是在替代权值基础上, 使用上述的 RNA 仿
真作为前向过程进行了训练, 使得权值能够适应 ReRAM 低精度计算, 进而使得分类准确率接近原始精度.
其次, 我们还测试了不同硬件配置情况下, 分类任务的计算耗时与功耗. 对于不同的交叉开关结构规模, 需要

