论文笔记 Noise Injection Adaption: End-to-End ReRAM Crossbar Non-ideal Effect Adaption for Neural Network Mapping

这篇论文是发表在DAC2019上的《Noise Injection Adaption: End-to-End ReRAM Crossbar Non-ideal Effect Adaption for Neural Network Mapping》,论文作者是中佛罗里达大学的Deliang Fan组,第一作者是Zhezhi He和Jie Lin。

文章分析了RRAM的crossbar运行DNN的不理想性质:SAF,IR-Drop,thermal noise, shot noise和random telegraph noise。提出了训练、映射和测试的框架PytorX,能有效减少这些不理想性质的影响。

方法

不理想性质

  • 确定的噪声:Stuck-at-fault(SAF)缺陷
    • SA0是卡在低阻态,1.75%
    • SA1是卡在高阻态,9.04%
  • 随机噪声1:IR-Drop
    • 线阻
    • 决定于于input电压和RRAM的电导
    • 建模成随机,因为直接计算太expensive了
  • 随机噪声2:Thermal Noise和Shot Noise
    • 热噪声
    • 散粒噪声
    • 建模成0均值的高斯分布
      • $i_{rms}=\sqrt{Gf(4K_B T+2qV)}$
      • rms是root-mean-square current
      • G是电导,f是crossbar的操作频率,T是温度,V是voltage drop
    • programming偏差
      • $\sigma=\Delta G/3$
      • $\Delta G$是ReRAM的电导分辨率resolution (每一级之间的差异)
    • 加上上面两种噪声影响,权值的总体偏差的标准差:
      • $g_{rms}=i_{rms}/V=\sqrt{\frac{Gf(4K_B T+2qV)}{V^2}+(\frac{\Delta G}{3})^2}$
  • 随机噪声3:Random Telegraph Noise(RTN)
    • 随机电报噪声,也叫Burst Noise 爆裂声
    • 临时的、随机的减少电导值
    • $G_{rtn}=G \frac{bG+a}{G-(bG+a)}$
    • 其中a、b是参数,取1.662e-7和0.0015
    • 根据参考文献,G有一半的可能性变成$G+G_{rtn}$(泊松分布)

ReRAM的crossbar计算

  • NN的算法计算
    • $y=(\alpha_w \alpha_x)\sum_i (w,x)$
    • w和x是量化后的权重,$\alpha_w, \alpha_x$是scale因子
  • RRAM的计算
    • DAC的输入$V_{DAC,i}=V_{ref}+\Delta V_{DAC}x_i$
      • $x_i$是n个二值数的比特串(the input $x_i$ is encoded as binary bit-strings n_i[n]),二进制补码表示,文章取n=8
      • $ΔV_{DAC}$ is the minimum voltage stage of the DAC
      • 这里是直接8bit输入了,不是一个个输入的
    • ADC收到的信号
      • $I_{ADC,j}=\sum_{i}(\Delta V_{DAC}x_i \dot (G_{i,j}^+ - G_{i,j}^-))$
      • $G_{i,j}^+ - G_{i,j}^-=\Delta G\dot w$
        • $\Delta G$是RRAM cell的电导step size
    • ADC的量化
      • $y=round(\frac{I_{ADC,j}}{\Delta I_{ADC}})$

End-to-end的适应

  • SAF的误差修正
    • 记录所有的错误cell,然后片外计算来补偿
  • Noise Injection Adaption for IR-drop
    • 128x128的crossbar的IR-drop非常高,不能用,64x64的可以用
    • 训练的时候考虑IR-drop
    • 但是如果直接算,花费的计算开销太大了
    • NIA方法
      • 训练网络,map到硬件,收集crossbar output current shift
      • 使用高斯噪声近似影响
      • 使用带高斯噪声来训练网络
  • 其他随机噪声
    • $G_{act}=G+G_g+G_p$
    • 高斯噪声和泊松噪声
    • 高斯噪声是和weight和input相关的
      • 使用NIA方法效果很差

总结

这篇论文详细的在算法层面上建模了硬件的不完美带来的影响,并且提出了解决方案,虽然有SAF等解决方案挺不容易实现的;但至少非常清晰明白,为未来指出方向。solid的工作。

论文笔记: Fully hardware-implemented memristor convolutional neural network

这篇文章是2020年发表在Nature杂志的论文《 Fully hardware-implemented memristor convolutional neural network》,文章作者来自清华的未来芯片技术高精尖创新中心和北京信息科学与技术国家研究中心,第一作者是Peng Yao,通讯作者是吴华强副教授。

这篇文章实现了第一款忆阻器芯片系统来实现MNIST的分类网络。忆阻器芯片具有高产率、高性能和统一的crossbar阵列。同时文章还提出混合训练策略来适应器件的不完美性质。为了提升性能,文章还提出了复制卷积核的方法来增加并行度。

方法

忆阻器crossbar阵列的实现

  • TiN/TaOx/HfOx/TiN
    • 32 conductance states
    • 50ns的pulse时长可以做SET和RESET的closed-loop programming
  • 1T1R的设置
  • crossbar 128 x 16的结构
    • 128 word lines和128 source line
    • 16 bit lines
  • PE,每个PE有2048-cell的忆阻器阵列

网络映射

  • 5层的 CNN 分类MNIST
  • 输入value被编码成脉冲数目
    • 输入3x3的patch
    • 根据量化的bit数决定:8bit的输入被分为8个脉冲输入,结果被shift加到tmp结果上面去
  • 带符号的weight被分配到一对忆阻器上
    • 一个是正数weight
    • 一个是负数weight
    • 15-level conductance weight
      • 4-bit的权重可以取得很好的效果
      • 分配到两个8级忆阻器上
  • bit line输入编码好的脉冲,source line输出分别代表正数和负数的值
  • 不同的channel被放到不同的row上面,可以同时计算他们

混合训练策略

  • 在忆阻器芯片上原生训练整个网络是很复杂的
  • 片外训练的网络受每一个设备的不完美性质影响
    • defective devices缺陷设备
    • parasitic wire resistance and capacitance 线的电阻和电容
    • 将外部的权重转移到忆阻器的电导上去的时候这些因素会blur(污染)权重,降低模型准确率
  • 混合训练策略
    • 只在线训练最后一层FC

复制卷积核增加并行度

  • 不同层速度mismatch
    • 执行CNN卷积运算是耗时的,因为每一层都需要一个个输入sliding window
    • FC层的计算是很快的
  • 复制卷积的kernel到不同的crossbar
    • 但是复制weight是有挑战性的,因为不可预测和无法避免的硬件差异,conductance drift电导漂移和state locking(就是RRAM-cell坏了,不能重新写了)
    • 使用混合训练策略来部分解决这个问题
  • batch的预测,一次用三张图在三个复制后的PE上同时运行

总结

第一次将RRAM-based的加速器实际造出来,还是有很多问题的,但是这些问题暴露出来可以一个个解决,非常好。原来这个也能发Nature,学到了。

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×