当前位置: 首页 > news >正文

支持AVX2指令的计算机,ONNX推理量化模型比推理浮点模型慢?

在 AVX2 平台上,ONNX Runtime 对模型进行 INT8 量化推理时反而比原始的 FP32 推理更慢,主要归因于以下几方面的原因:

概览
虽然 INT8 量化能显著减少模型体积和内存带宽需求,但是在 AVX2 这种不支持专用 8 位乘法指令、量化算子实现尚不成熟的架构上,却会因为额外的量化/反量化(Q/DQ)开销、缺乏指令级加速以及算子融合不到位等原因,导致整体吞吐量低于高度优化的 FP32 路径。下面逐项展开分析。

1. 量化/反量化(Q/DQ)开销

  • QDQ 格式与 Operator 格式
    ONNX Runtime 的静态量化常用两种表示格式:Tensor-Oriented(QDQ)和 Operator-Oriented(QOperator)。前者会在每个算子前后插入 QuantizeLinear/DequantizeLinear 节点,导致每次运算都要做一次数据类型转换;后者虽然算子本身有量化版本,但并未对所有算子都提供高效实现 。
  • 动态量化参数计算
    动态量化会在推理过程中实时调用 ComputeQuantizationParametersÿ
http://www.dtcms.com/a/149077.html

相关文章:

  • 基于javaweb的SSM教材征订与发放管理系统设计与实现(源码+文档+部署讲解)
  • 携程-酒旅-数据研发面经【附答案】
  • go语言中defer使用指南
  • 逻辑思维:从混沌到秩序的理性推演在软件开发中的应用
  • 使用Nacos 打造微服务配置中心
  • Go语言之sync包 WaitGroup的使用和底层实现
  • 文件操作函数
  • 基于cubeMX的hal库STM32实现硬件IIC通信控制OLED屏
  • 汽车VIN码识别:解锁汽车行业的智能密码
  • Spark-SQL 项目
  • 爬虫(requests库,logging库)
  • react 父子组件通信 子 直接到父, 父 forwardref子
  • window上 elasticsearch v9.0 与 jmeter5.6.3版本 冲突,造成es 启动失败
  • 关于在Springboot中设置时间格式问题
  • Git -> Git 所有提交阶段的回滚操作
  • 测试-时间规模化定律可以改进世界基础模型吗?
  • [Java · 铢积寸累] 数据结构 — 二维数组 - 概念引入
  • 【YOLOv8-pose部署至RK3588】模型训练→转换RKNN→开发板部署
  • docker保存镜像到本地
  • AutoJs相关学习
  • Spring Boot中`logging.config`配置项的详解及使用说明
  • Vscode指定缓存路径 .vscode 路径
  • 嘻游组件解密工具实战教程:资源解包与UI替换全流程
  • Java从入门到“放弃”(精通)之旅——抽象类和接口⑨
  • Linux新手快速入门指南
  • XML内容解析成实体类
  • 【Python笔记 03 】运算符
  • 基于大疆行业无人机的特色解决方案-无线通信篇:基于蜂窝以及自组网MESH的无线通信C2链路
  • 一文详解Pytorch环境搭建:Mac电脑pip安装Pytorch开发环境
  • 空间数据工程——如何使用 Python 和 ArcPy 对 Vision Zero 多边形的值进行地理处理