FP16与INT8

AI计算中的两种数据格式

FP16和INT8同为端侧AI计算深度学习模型中的常用数据格式,在不同的AI应用中具有独特优势

什么是FP16呢?
在计算机语言中,FP32表示单精度浮点数,相应的FP16就是半精度浮点数。与FP32相比,FP16的访存消耗仅为1/2,也因此FP16是更适合在移动终端侧进行AI计算的数据格式。
FP16与INT8
相比INT8,FP16浮点计算在终端侧的体验优势非常明显,尤其在需要更高精度图像处理的场景,能够实现更高精度的“抠图”。如今,AI拍照、AI视频等已经成为人们记录生活的智慧助手,高精度带来的高成像效果就显得尤为重要。比如在灯光熠熠的城市夜晚,明暗差更高,这种情况下如果使用INT8计算,位宽不足会导致量化噪声,让画面变“糊”。FP16则能够更好的发挥优势,无论是高亮部分还是暗角部分都能呈现丰富的细节。
但值得注意的是,INT8和FP16之间并不是非此即彼的关系。INT8是一种定点计算方式,代表整数运算,一般是由浮点运算量化而来。在二进制中一个“0”或者“1”为一bit,INT8则意味着用8bit来表示一个数字。因此,虽然INT8比FP16精度低,但是数据量小、能耗低,计算速度相对更快,更符合端侧运算的特点。因此,客观来讲FP16与INT8没有完全的优劣之分,只不过在不同的场景有不同的需求。
FP16与INT8

上一篇:TensorRT——INT8推理


下一篇:TensorRT int8 量化部署 yolov5s 5.0 模型