PyTorch Eager 模式量化的 TensorRT 加速
💡
原文英文,约800词,阅读约需3分钟。
📝
内容提要
本文介绍了使用TensorRT加速PyTorch量化模型的方法,包括量化模型导出为ONNX格式,修复ONNX模型图以适应TensorRT解析器,并构建为TensorRT引擎。对比了FP16和INT8 ResNet18 TensorRT引擎的推理延迟和准确性。
🎯
关键要点
- PyTorch 2.3.0 提供三种量化接口:急切模式量化、FX图模式量化和PyTorch 2导出量化。
- 最新的PyTorch 2导出量化接口无法将量化模型导出为ONNX,因此需要使用急切模式或FX图模式量化接口。
- 使用TensorRT加速PyTorch急切模式量化模型的步骤包括:量化模型并导出为ONNX,修复ONNX模型图,构建TensorRT引擎。
- TensorRT INT8显式量化要求权重使用每通道对称量化,激活使用每张量对称量化。
- 急切模式量化的配置需要设置为qnnpack,以支持INT8对称量化推理。
- 导出的量化ONNX模型图存在问题,需要修复,包括删除错误的Cast节点和添加浮点偏置项。
- 量化TensorRT引擎在CIFAR10测试集上的准确率为0.851,与量化PyTorch模型一致。
- FP16和INT8 ResNet18 TensorRT引擎的推理延迟分别为0.208177 ms和0.17584 ms,INT8引擎比FP16引擎有1.2倍的延迟改进。
➡️