TensorRT int8 calibration table生成及解析
TensorRT int8推理的精度接近fp32, 但是存储空间更小,对memory的带宽消耗也少,同时推理速度也有一定的提升。是一项很重要的技术。
跟fp16和fp32不一样,使用int8推理必须先要做calibriation,其实就是再做浮点数定点化的一些操作,然后将一些关键数据保存下来,下次使用时,就不用重新生成了。这些数据会被记录到一个calibration table的文件中。为了生成calibration table需要准备一个calibration dataset, 通常要500-1000个samples, 这些samples要有代表性,task中的每个类别都要能涵盖住,最好时validation set的一个子集。
有了calibration dataset,使用一些常用的优化算法,比如nvidia介绍的,每一层的activation value 分布的KL散度,fp32的KL散度和int8对应的KL散度要很相似。优化算法跑完会输出一个calibration table或者calibration cache, TensorR
共有 0 条评论