【文献阅读12】:稀疏ReRAM引擎:基于ReRAM的高效稀疏神经网络加速架构

文章介绍了SNrrm,一个利用RRAM的稀疏神经网络计算架构,通过权重和激活值的稀疏性提高资源利用率和能效。SNrram采用稀疏转换算法和索引寄存器单元减少外部电路开销,实现69.8%的资源节省和2.49x的加速。文章还讨论了其他如SRERRAM和FORMS的加速器架构,强调了细粒度稀疏性和实际阵列操作的重要性。
摘要由CSDN通过智能技术生成

梳理部分基于RRAM的稀疏神经网络加速器

1. SNrrm

@INPROCEEDINGS{8465793,
author={Wang, Peiqi and Ji, Yu and Hong, Chi and Lyu, Yongqiang and Wang, Dongsheng and Xie, Yuan},
booktitle={2018 55th ACM/ESDA/IEEE Design Automation Conference (DAC)},
title={SNrram: An Efficient Sparse Neural Network Computation Architecture Based on Resistive Random-Access Memory},
year={2018},
volume={},
number={},
pages={1-6},
doi={10.1109/DAC.2018.8465793}}


摘要

pruning和compression技术可以帮助大规模神经网络部署在GPU/FPGA上。研究基于针对RRAM的稀疏技术尚处于早期。本文提出SNrram,可利用权重和激活值的稀疏性。SNrram存储重要的权重来实现更好地利用率。可节省69.8%的资源利用率,降低35.9%的功耗,在常用深度学习benchmark上实现2.49x的加速。

引言

  1. 现存基于ReRAM的加速器由于紧密耦合的架构难以利用0值;
  2. 外部电路开销大;
  3. 稀疏神经网络需要额外的周期来解码数据的稀疏格式。

采用与传统计算平台相同的稀疏格式将会大量在RRAM的外围电路上造成巨大的开销。

  • 结构剪枝算法可以被基于RRAM的加速器利用;结构剪枝在tensor的维度上实现连续的0值,可被RRAM阵列利用。

  • 此前稀疏解码硬件开销大,本架构降低了开销

  • 将激活值的稀疏转化为权重的稀疏

  • 只存储重要的值

贡献在于

  1. 首个联合利用权重和激活值稀疏的RRAM加速器
  2. 稀疏转换算法:sparsity transfer algorithm将权重和激活值归一化到同样的格式
  3. 设计了寻址寄存器单元:indexing register unit (IRU)来存储稀疏指数,解析稀疏数据格式,避免外部电路的控制器开销
  4. 验证了所提架构的能效。与目前先进的工作相比实现了2.49x的加速,69.8%的能量节省,35.9%的功耗降低。

相关工作

  1. CNP利用FPGA并行读的优势和卷积神经网络的本征并行度加速。
  2. DaDianNao 引入多chip设计,利用高内部存储带宽实现高并行度。
  3. Prime基于RRAM实现,超越GPU,FPGA和ASIC超过2000倍的性能提升
  4. ISAAC是一种流水线RRAM交叉阵列结构,定义了新的数据编码技术来降低功耗和外部电路的面积开销

稀疏神经网络
5. 低秩矩阵分解获得95%的稀疏度
6. 权重剪枝、量化与Huffman编码减少网络规模
7. Cnvlutin和Eyeriss通过压缩和跳过0值利用稀疏
8. scnn利用非0权重和激活的Cartesian积

稀疏的架构支持
9. 0权重的不规则分布难以使用当前硬件架构进行加速。许多研究在算法层面针对硬件友好来进行
10. 忆阻阵列结构相对传统结构可减少存储访问,实现高速与高能效。然而我们无法移除一行中的0值,因为一行中的其他非0值也需要计算。在稀疏神经网络中难以找到全0行。

RRAM中的稀疏性利用

权重稀疏

  • intra-filter稀疏
  • input-channel-wise稀疏
  • output-channel-wise稀疏
    filter = kxk, C=input channel, M=output channel
    展开为NxM的2维矩阵时,N= kxkxC。为了节约存储,我们按输入通道将N分为C个子矩阵,大小为gxM,g=kxk,从而当输出通道(卷积核)被减掉时,可以得到子矩阵中1列的0,从而可以消除。

在这里插入图片描述

有效利用片上资源的设计原则

  • 不同分区的计算任务应当平衡从而实现高能效
  • 避免计算资源的浪费
    首先,集合相同形状的子矩阵到单个交叉阵列的不同部分从而实现高能效。接着,为了平衡计算任务,根据形状为每个组分配不同数量的交叉阵列。最后利用输出通道的并行性提高性能。
  • 引入索引寄存器单元IRU(indexing register unit)累加部分和结果、解析稀疏格式。根据split和reassemble的结果,稀疏索引被存储到IRU上。图中灰色意味着关闭,红色意味着打开,如果同一行有2个红色,相应的部分和结果会被累加。
  • IRU消耗的存储与节省的RRAM资源相比可忽略。

给出了节省资源的证明结果

稀疏激活利用

  • 算法造成的静态稀疏
  • 激活值为0的动态稀疏
    请添加图片描述主要针对静态稀疏
    没有权重共享时,根据激活0值隐藏权重元素;
    有权重共享时,稀疏转移算法sparsity transfer
    algorithm (STA)
    在这里插入图片描述
    在这里插入图片描述
    Sw为列之间的稀疏宽度,Sh为行之间的稀疏宽度。分解卷积核为(Sw+1)与(Sh+1)的格式,在滑窗时只存储有效值,稀疏算法在将数据存储到RRAM阵列之前时使用。

收集所有权重的稀疏模式之后,以密集矩阵的形式存储。

架构设计

在这里插入图片描述

  • multi-chip通过 片上concentrated mesh互联。tile包含多个PE,池化,激活,SRAM缓存和控制器。所有组件通过共享的bus互联。在神经网络计算中,输入通过片上缓存到tile buffer随后到PE buffer. 由于大规模神经网络被分解后到不同的PE上执行,SNrram也需要在tile上短暂地存储这些值。在不同的IRU上有跨导放大器来支持通信。
  • chip,tile,pe级别的控制。级别1的控制支持大并行度。tile级别的并行读解码指令和分配资源。pe级别的将指令与操作转换为控制信号和外部电路的动作。
  • 采用与Prime中的类似操作,用2个矩阵表示负数。
  • 单个RRAM表示多bit来提升密度和计算能效。

SNrram 部署等


2. SRE

现存方案基于过于理想的设计,在单个周期内阵列并不能完全开启。PRIME假设128x128同时开启。ISAAC假设256x256同时开启。但为了满足精度需求,乘累加必须在很小的粒度下进行。例如在512x256的阵列中只有9行可以同时开启。OU(operation unit)级别进行操作,压缩也可以基于这个维度进行。联合利用权重和激活值的稀疏。

  • 在OU级别按行或者按列压缩
  • 在同一个周期激活不连续的非0WL,组成一个动态的OU。

贡献:

  • 提出实际的基于OU的可利用DNN稀疏性进行加速的机会
  • 联合利用权重和激活值的稀疏。利用细粒度OU级别的稀疏和按行压缩的方式,同时动态配置WL。
  • 与过于理想的RRAM加速设计相比,提供了满意的推理精度

RRAM加速器架构

  • PE
    • 计算单元CU
    • 阵列
    • WLD,字线驱动,转换输入信号
    • 读出电路ADC等
    • 片上缓存eDRAM
    • 非线性激活函数与池化单元

3. FORMS

FORMS–2021ISCA

FORMS: Fine-grained Polarized ReRAM-based In-situ Computation for Mixed-signal DNN Accelerator

Recent work demonstrated the promise of using resistive random access memory (ReRAM) as an emerging technology to perform inherently parallel analog domain in-situ matrix-vector multiplication—the intensive and key computation in deep neural networks (DNNs). One key problem is the weights that are signed values. However, in a ReRAM crossbar, weights are stored as conductance of the crossbar cells, and the in-situ computation assumes all cells on each crossbar column are of the same sign. The current architectures either use two ReRAM crossbars for positive and negative weights (PRIME), or add an offset to weights so that all values become positive (ISAAC). Neither solution is ideal: they either double the cost of crossbars, or incur extra offset circuity. To better address this problem, we propose FORMS, a fine-grained ReRAM-based DNN accelerator with algorithm/hardware co-design. Instead of trying to represent the positive/negative weights, our key design principle is to enforce exactly what is assumed in the in-situ computation— ensuring that all weights in the same column of a crossbar have the same sign. It naturally avoids the cost of an additional crossbar. Such polarized weights can be nicely generated using alternating direction method of multipliers (ADMM) regularized optimization during the DNN training, which can exactly enforce certain patterns in DNN weights. To achieve high accuracy, we divide the crossbar into logical sub-arrays and only enforce this property within the fine-grained sub-array columns. Crucially, the small sub-arrays provides a unique opportunity for input zero-skipping, which can significantly avoid unnecessary computations and reduce computation time. At the same time, it also makes the hardware much easier to implement and is less susceptible to non-idealities and noise than coarse-grained architectures. Putting all together, with the same optimized DNN models, FORMS achieves 1.50× and 1.93× throughput improvement in terms of


  • 2016年提出结构剪枝Wei Wen, Chunpeng Wu, Yandan Wang, Yiran Chen, and Hai Li. 2016. Learning Structured Sparsity in Deep Neural Networks. In 30th NeurIPS. 2082–2090.
  • 非结构剪枝,权重映射聚集非0值。Jilan Lin, Zhenhua Zhu, Yu Wang, and Yuan Xie. 2019. Learning the Sparsity for ReRAM: Mapping and Pruning Sparse Neural Network for ReRAM Based Accelerator. In Proceedings of the 24th ASPDAC.639–644.
  • 基于OU级别的行压缩提高阵列可靠性,提供新的稀疏方案(SRE)
  • 基于阵列的剪枝算法:Pim-prune: fine-grain dcnn pruning for crossbar-based process-in-memory architecture

others

Pytorch: An imperative style, high-performance deep learning library,” Neural Information Processing Systems (NeurIPS), 2019

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值