fp32和int8模型的区别_CNN推理优化系列之二:INT8 Quantization

本文介绍了INT8量化技术在CNN推理优化中的应用,通过使用INT8代替FP32,提高计算性能并降低模型大小。fbgemm库展示了这种技术在牺牲小部分精度(1%以内)的情况下,可实现FP32模型1-2倍的性能提升。文章探讨了量化推理与训练过程,包括模拟量化训练机制,以及量化推理中的矩阵乘法和融合层计算。实验结果显示,INT8量化在Resnet和Inception v3模型上表现出良好效果。
摘要由CSDN通过智能技术生成

介绍

Low bits压缩再用于CNN推理当属该下的推理优化技术主流。

将本是Float32类型的乘法或乘加计算使用INT8类型来做可一次批量(SIMD指令集)执行更多的计算,从而有效提升CNN推理的计算性能。它也是当下CPU能够在性能与成本上战胜GPU并牢牢占据

深度学习模型推理市场90%以上份额的主要原因所在。

最近Facebook推出并开源了fbgemm,它即主要使用INT8计算来代替本来Float32做的事情,在牺牲小部分模型精度的情况下(做得好可控制在1%以内,亦取决于用户自身对性能与速率之间的取舍),可

达到相对于FP32模型近1~2x的提升。模型权重所占size也是大大降低。

推本溯源,fbgemm里所用的low-bits压缩技术本质上与18年年初Google tensorflow-tflite所用的方法并无二致。而这一方法则在此篇blog要讲的paper中曾一一揭示。

典型的Quantization技术

Quantization技术用于深度学习模型推理优化早已有之,并非此paper先创。

但早先的Quantization技术用于推理多是在取得fp32计算训练好的模型参数权重之后,再对权重进行quantization,然后即使用scale过后的int8(or uint8)权重与op输入feature maps(亦经scale后变

为了low-bits的表示)进行原本由fp32类型进行的乘法或乘加计算,如此执行所用的ops以完成整个模型推理过程。

而这一inference过程本质上与fp32 train时进行的forward的计算有较大区别的,毕竟在使用fp32类型进行forward/backward计算是并无引入任何scale之类的东西。这样train出来的weights经由quantized

inference显然会有

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值