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  低精度计算, 进而使得分类准确率接近原始精度.
                    其次, 我们还测试了不同硬件配置情况下, 分类任务的计算耗时与功耗. 对于不同的交叉开关结构规模, 需要
   382   383   384   385   386   387   388   389   390   391   392