《A White Paper on Neural Network Quantization》翻译总结

这部分内容主要探索量化的硬件背景以及如何让推理在设备上跑起来。图1展示了神经网络中矩阵向量乘法yWxb的计算示意图,这是矩阵乘法和卷积的一个基础组件,主要通过尽可能多的计算并行来提高NN推理的效率。该神经网络加速器的两个基本组件分别是:processing elements(Cnm​)和accumulators(An​An​bn​m∑​Cnm​其中Cnm​Wnm​xm​Wnm​为权重值,xm​为输入数据,bn。
摘要由CSDN通过智能技术生成

Quantization fundamentals

Hardware background

这部分内容主要探索量化的硬件背景以及如何让推理在设备上跑起来。
图1展示了神经网络中矩阵向量乘法 y = W x + b \boldsymbol{y}=\boldsymbol{W}\boldsymbol{x} + \boldsymbol{b} y=Wx+b的计算示意图,这是矩阵乘法和卷积的一个基础组件,主要通过尽可能多的计算并行来提高NN推理的效率。
在这里插入图片描述
该神经网络加速器的两个基本组件分别是:processing elements( C n , m C_{n,m} Cn,m)和accumulators( A n A_{n} An),在上图示例中共有16个processing elements和4个accumulators,具体的计算公式如下:
A n = b n + ∑ m C n , m A_{n}=\boldsymbol{b}_{n} + \sum \limits_{m}C_{n,m} An=bn+mCn,m
其中 C n , m = W n , m x m C_{n,m}=\boldsymbol{W}_{n,m}\boldsymbol{x}_{m} Cn,m=Wn,mxm W n , m \boldsymbol{W}_{n,m} Wn,m为权重值, x m \boldsymbol{x}_{m} xm为输入数据, b n \boldsymbol{b}_{n} bn为偏移值。
上述计算操作也被称为Multiply-Accumulate (MAC),在大的矩阵乘中这个步骤会重复很多遍,所有循环执行结束后accumulators将被保存用于下一层NN推理。通常神经网络使用float32的权重和激活值进行训练,而MAC操作和数据搬运消耗了推理过程的大部分能量,因此使用低比特定点化或者量化可以获得比较大的收益。低比特量化不仅可以减少数据搬运的次数,同时可以降低MAC操作的尺寸和功耗。
将浮点操作转换为定点,需要先对浮点向量进行定点化。假设浮点向量为 x \boldsymbol{x} x,则其可以表示为:
x ^ = s x ⋅ x i n t ≈ x \widehat{\boldsymbol{x}}=s_{x} \cdot\boldsymbol{x}_{int}\approx \boldsymbol{x} x =sxxintx
其中 s x s_{x} sx浮点类型的尺度因子, x i n t \boldsymbol{x}_{int} xint是整形向量(如int8), x ^ \widehat{\boldsymbol{x}} x 表示量化后的矢量。则MAC操作的量化形式可以表示为:
A ^ n = b ^ n + ∑ m W ^ n , m x ^ m = b ^ n + ∑ m ( s W W n , m i n t ) ( s x x m i n t ) = b ^ n + s W s x ∑ m W n , m i n t x m i n t {\widehat{\boldsymbol{A}}_{n}}={\widehat{\boldsymbol{b}}_{n}}+ \sum \limits_{m}{\widehat{\boldsymbol{W}}_{n,m}}{\widehat{\boldsymbol{x}} _{m}}={\widehat{\boldsymbol{b}}_{n}}+ \sum \limits_{m}(s_{\boldsymbol{W}}{\boldsymbol{W}}_{n,m}^{int})(s_x{\boldsymbol{x}}_{m}^{int})={\widehat{\boldsymbol{b}}_{n}}+s_{\boldsymbol{W}}s_{\boldsymbol{x}}\color{purple}\sum \limits_{m}{\boldsymbol{W}}_{n,m}^{int}{\boldsymbol{x}}_{m}^{int} A n=b n+mW n,mx m=b n+m(sWWn,mint)(sxxmint)=b n+s

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值