使用XNNPack实现更快的动态量化推理
💡
原文英文,约900词,阅读约需4分钟。
📝
内容提要
XNNPack的全连接和卷积2D运算符现在支持动态范围量化,在TensorFlow Lite中提高了CPU推理性能。动态范围量化允许在旧的和低端设备上部署更多的AI功能。它通过根据观察到的激活范围动态计算量化参数来最大化量化过程的准确性。动态范围量化提供了与完全量化相似的性能提升,并具有更高的整体准确性。XNNPack的优化运算符可用于各种架构上的动态范围量化模型。与完全整数量化相比,动态范围量化对非专家用户更加易于使用。混合精度推理,结合半精度推理和动态范围量化,可以进一步提高CPU推理性能。基准测试显示,与使用TFLite的内核的原始float32模型相比,速度提升。
🎯
关键要点
- XNNPack的全连接和卷积2D运算符现在支持动态范围量化,提升了TensorFlow Lite的CPU推理性能。
- 动态范围量化允许在旧设备上部署更多AI功能,通过动态计算量化参数来提高准确性。
- 动态范围量化提供与完全量化相似的性能提升,但整体准确性更高。
- XNNPack的优化运算符适用于多种架构的动态范围量化模型,易于非专家用户使用。
- 混合精度推理结合半精度推理和动态范围量化,进一步提高CPU推理性能。
- 动态量化模型的推理可以利用XNNPack的高度优化的全连接和卷积运算符。
- 使用动态范围量化需要在模型转换时启用相关标志,无需代表性数据集。
- 从TensorFlow 2.17开始,动态量化的XNNPack推理将在预构建的二进制文件中默认启用。
- 动态量化模型可以与半精度推理结合,以提高设备上的CPU推理性能。
- 基准测试显示,动态范围量化模型在多个计算机视觉任务中相较于原始float32模型有显著速度提升。
➡️