体系结构论文导读(二十七):Mixed Precision Quantization for ReRAM-based DNN Inference Accelerators

Mixed Precision Quantization for ReRAM-based DNN Inference Accelerators

基于 ReRAM 的 DNN 推理加速器的混合精度量化

一、文章要点

  • 背景:ReRAM交叉阵列能高效地执行MVM操作,但ADC的高能量和面积消耗是一个主要问题。
  • 问题:传统的量化流程未考虑部分和量化,这在ReRAM架构中非常重要。
  • 解决方案:提出了一种混合精度量化方案,联合对每层DNN的权重、输入和部分和进行量化,并使用深度强化学习自动搜索最佳量化配置。
  • 效果:该方案能显著减少推理延迟和能量消耗,且仅损失1.18%的推理精度。
ReRAM交叉阵列的工作原理
  1. 权重表示:权重存储在ReRAM单元中,每个单元的电导表示权重值。
  2. 输入信号:输入信号通过DAC转换为模拟电压,施加到交叉阵列的行上。
  3. 输出信号:交叉阵列的列上产生电流,代表矩阵-向量乘积的结果。
  4. ADC转换:输出电流通过ADC转换为数字信号。
为什么要量化?
  1. 减少存储需求:量化可以将权重和输入从高精度表示(如32位浮点数)转换为低精度表示(如8位整数),大大减少存储空间。
  2. 提高计算效率:低精度运算比高精度运算更快,能显著提高计算效率。
  3. 降低能耗:低精度运算的能耗较低,有助于节省能量。
混合精度量化
  • 权重量化:通过使用更少的比特来表示权重值,降低存储和计算成本。
  • 输入量化:通过量化输入信号,减少数据传输和计算开销。
  • 部分和量化:降低ADC的精度以减少能量消耗和芯片面积。

图1展示了ReRAM(电阻式随机存取存储器)交叉阵列(crossbar)的基本架构,以及量化在不同步骤中的应用。

  1. 输入量化

    • DAC(数模转换器):输入信号通过DAC转换为模拟信号。这些模拟信号作为电压(Vi)应用在交叉阵列的行上。
  2. 权重量化

    • 权重(gij)存储在交叉阵列的存储单元中,每个存储单元的电导(conductance)表示一个权重值。
    • 权重量化通过减少每个存储单元中表示权重的比特数来实现,例如,每个权重可以用2位表示。
  3. 部分和量化

    • 交叉阵列的每一列输出电流(Ij),这些电流代表矩阵-向量乘积的结果。
    • 输出电流通过ADC(模数转换器)转换为数字信号。在这里,部分和量化通过降低ADC的分辨率来实现,从而减少能耗和面积占用。

二、文章方法

图3展示了如何使用强化学习来实现DNN在ReRAM加速器上的混合精度量化。这个流程包括以下几个主要部分:

  1. Actor(策略生成器)

    • 生成策略:Actor根据当前的价值函数估计生成新的量化策略。
    • 策略解析:生成的策略由DNN/ReRAM配置器解析,确定每层DNN的ADC精度和位宽配置。
  2. Critic(价值估计)

    • 计算Q值函数:Critic读取环境的奖励,计算MDP(马尔可夫决策过程)的Q值函数。
  3. 奖励部分

    • 计算奖励:根据量化模型和原始模型的损失,以及DNN配置,计算当前状态和动作的奖励。
  4. 量化模型评估组件

    • 测试数据集:生成随机测试样本批次。
    • 量化DNN模型全精度DNN模型:使用测试数据进行模型推理。
    • 损失计算:比较量化模型和全精度模型的损失,计算精度下降的代价。

强化学习的量化流程

1. MDP建模
  1. 状态空间(S)

    • 包含所有可能的DNN配置。由于DNN层数较多,状态空间非常大。
  2. 动作空间(A)

    • 定义为DNN每层的所有可能量化配置,包括权重量化、输入量化和ADC精度。
  3. 转移函数(P)

    • 按层逐步量化DNN。应用某个动作后,环境移动到下一层。
  4. 奖励函数(R)

    • 奖励捕捉量化DNN的精度、功耗和延迟。用损失差异和硬件成本表示。
  5. 折扣因子(γ)

    • 设置为1,表示只关心完全量化DNN的最终精度。
2. 动作定义
  • 动作定义为DNN每层的量化配置,包括权重量化、输入量化和ADC精度。每个参数的可能值详见表2。
3. 奖励分配
  • 奖励定义为量化DNN在ReRAM加速器上运行时的精度成本和硬件成本(能量和延迟)的函数。
    • 精度成本:量化模型和原始模型的交叉熵损失差异。
    • 硬件成本:每层的位宽分数加权后计算。
4. 学习算法
  • 使用策略梯度算法(policy gradient)寻找最优策略。具体步骤如下:
    • 初始策略随机生成。
    • 使用价值估计算法评估状态-动作对的期望值。
    • 计算参数的梯度,更新策略,生成新策略。
    • 重复评估和更新过程,逐步优化策略。
  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

D了一天bug忘了编译

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值