基于SRAM或ReRAM的存算一体化架构及其常见稀疏方案

存算一体化架构设计

        以各种传统工艺(如SRAM、NorFlash)或新型忆阻器工艺(如FeRAM、ReRAM、PCM和MRAM)制作器件构建存储阵列,将神经网络权值参数直接存储在阵列内部,并以模拟信号的形式并行执行大规模矩阵乘法。以典型的存算一体化硬件架构为例,向量以电压形式驱动阵列字线(行),利用电压乘以电导(按照DNN的权值对忆阻器阻值进行编程)等于电流,并且电流在位线(列)自然汇聚相加的电流定律,一次读操作即可完成向量与矩阵的乘加操作。这种方法不但提高了矩阵乘法的并行度,而且避免了反复从DDR读取DNN的权重,进一步提高了架构的能效比。然而,单纯从硬件架构中挖掘并行性和数据可复用性,能效比很快就到达极致,性能提升将会遇到瓶颈;

基于存算一体架构的稀疏方案

        存算一体化架构的执行单元通常以阵列的形式组织,非结构化剪枝产生随机分布的零,难以通过编码压缩部署在阵列上。存储权重的忆阻器件或者各种SRAM单元将同时参与计算流,这种操作数与运算器的硬件耦合导致无法实现跳零架构。因此我们主要以规则的行、列以及块的规则形状剪枝或量化DNN模型。

        此外,为了进一步压缩深度卷积神经网络模型的规模,还可以在剪枝稀疏后的网络基础上进行知识蒸馏等操作;即在剪枝稀疏的过程中,增加通道剪枝的比例,这一步会导致模型的精度下降,但是可以通过知识蒸馏这一方法来retrain,让模型精度有所回升;

        上述的剪枝、知识蒸馏以及量化的方法都是彼此正交的,即这些方法可以叠加,用来同时优化模型。

你可能感兴趣的