INT8量化可移植性危机:跨7平台汽车级实测揭示”量化一次到处部署”不成立 论文信息
项目
内容
标题
Is INT8 Portable? A Cross-Platform Measurement Study of Quantized Inference on Embedded and Automotive Accelerators
作者
Yuyeong Shin 等
单位
KATECH (韩国汽车技术研究院)
来源
arXiv:2609.16085
发表时间
2026年9月
测试平台
7类硬件
代码
github.com/yyshin-katech/embedded-ai-quantization-guide
核心发现
“Quantize once, deploy anywhere” 是不安全的 ——对嵌入式和汽车部署而言,每输入确定性和冗余性很重要。
INT8量化被广泛认为是边缘部署的标准方案,但本文跨7类硬件的实测揭示了三个层面的可移植性失败 :
三个失败维度
维度
问题
严重性
速度
INT8可能比FP32更慢
中
输出
INT8预测跨平台不一致
高
NPU
自带量化图被静默忽略
致命
7类硬件测试矩阵 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 class CrossPlatformINT8Study : """ 跨7类硬件INT8量化实测 论文:arXiv:2609.16085 代码:github.com/yyshin-katech/embedded-ai-quantization-guide 测试方法: - 固定ONNX模型 + 固定量化参数 - 唯一变量:各平台的INT8整数核/ISA - 对比FP32基线和INT8输出 """ PLATFORMS = { 'arm_cpu_dotprod' : { 'name' : 'ARM CPU (有dotprod)' , 'isa' : 'ARMv8.6 dotprod/SDOT' , 'int8_speedup' : '2.1x faster' , 'fp32_vs_int8' : 'INT8快2.1倍' , }, 'arm_cpu_no_dotprod' : { 'name' : 'ARM CPU (无dotprod)' , 'isa' : 'ARMv8.0 无dotprod' , 'int8_speedup' : '1.7x slower' , 'fp32_vs_int8' : 'INT8慢1.7倍!' , }, 'x86_cpu_vnni' : { 'name' : 'x86 CPU (有VNNI)' , 'isa' : 'x86 AVX-VNNI' , 'int8_speedup' : '1.8x faster' , }, 'x86_cpu_no_vnni' : { 'name' : 'x86 CPU (无VNNI)' , 'isa' : 'x86 AVX2' , 'int8_speedup' : '1.4x slower' , }, 'discrete_gpu' : { 'name' : '离散GPU' , 'isa' : 'CUDA INT8' , 'int8_speedup' : '3.2x faster' , }, 'jetson_orin_nvdla' : { 'name' : 'Jetson AGX Orin (NVDLA)' , 'isa' : 'NVDLA INT8' , 'int8_speedup' : '2.5x faster' , }, 'qualcomm_hexagon' : { 'name' : 'Qualcomm Hexagon HTP' , 'isa' : 'Hexagon INT8' , 'int8_speedup' : '4.0x faster' , 'critical_issue' : '外部QDQ图被静默忽略' , }, 'deepx_dx_m1' : { 'name' : 'DEEPX DX-M1' , 'isa' : 'DEEPX INT8' , 'int8_speedup' : '3.8x faster' , 'critical_issue' : '编译器拒绝外部QDQ图' , }, }
关键发现详解 发现1:INT8速度取决于CPU的dot-product ISA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 class INT8SpeedAnalysis : """ INT8加速效果取决于CPU是否有dot-product指令集 同一模型、同一量化参数: - 有dotprod的ARM CPU: INT8比FP32快2.1x - 无dotprod的ARM CPU: INT8比FP32慢1.7x 这意味着INT8量化在低端ARM CPU上可能适得其反 """ RESULTS = { ('ARM_dotprod' , 'resnet50' ): (12.3 , 5.9 , 2.08 ), ('ARM_no_dotprod' , 'resnet50' ): (15.1 , 25.7 , 0.59 ), ('x86_vnni' , 'resnet50' ): (8.2 , 4.6 , 1.78 ), ('x86_no_vnni' , 'resnet50' ): (9.5 , 13.3 , 0.71 ), ('gpu' , 'resnet50' ): (3.1 , 0.97 , 3.20 ), ('nvdla' , 'resnet50' ): (2.8 , 1.12 , 2.50 ), ('hexagon' , 'resnet50' ): (2.1 , 0.53 , 3.96 ), } @classmethod def get_recommendation (cls, platform: str ) -> str : """根据平台给出INT8建议""" results = {k: v for k, v in cls.RESULTS if k[0 ] == platform} if not results: return "未知平台" all_faster = all (s > 1.0 for _, _, s in results.values()) any_slower = any (s < 1.0 for _, _, s in results.values()) if all_faster: return "✅ INT8推荐:该平台INT8全面加速" elif any_slower: return "❌ INT8不推荐:该平台INT8可能更慢" else : return "⚠️ 需实测:INT8效果因模型而异"
发现2:INT8输出不可移植
对比对
FP32一致性
INT8一致性
说明
ARM↔ARM(同核)
1000/1000
1000/1000
同核完全一致
ARM↔ARM(异核)
1000/1000
958-965/1000
INT8输出不一致
CPU↔NPU
1000/1000
958-965/1000
跨设备不一致
NPU↔NPU(不同厂商)
1000/1000
940-960/1000
厂商间不一致
关键影响 :top-1准确率不变(约95%),但逐样本预测不同 。在安全关键的汽车场景中,这意味着同一输入在不同平台可能产生不同判断。
发现3:NPU拥有量化(Vendor Lock-in) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 class NPUQuantizationLockIn : """ NPU量化锁定问题 关键发现: Qualcomm Hexagon和DEEPX NPU都不接受外部QDQ图 只接受厂商自己的量化管道 后果: - "bring-your-own quantization"在NPU上失败 - 开发者必须使用厂商SDK量化 - 跨NPU部署需要分别量化 """ QUALCOMM_HEXAGON = { 'external_qdq' : '静默失败' , 'symptom' : '编译运行无报错,但精度从0.75降到0.005' , 'root_cause' : '外部scales被忽略,NPU使用自己的量化参数' , 'resolution' : '必须使用QNN SDK的量化管道' , } DEEPX_DX_M1 = { 'external_qdq' : '编译器拒绝' , 'symptom' : '编译器报错,拒绝外部QDQ图' , 'root_cause' : '只接受DEEPX SDK输出的量化模型' , 'resolution' : '必须使用DEEPX SDK量化' , } @classmethod def impact_on_ims (cls ): """对IMS的影响""" return { 'qualcomm_path' : 'IMS在QCS8255上必须用QNN SDK量化' , 'ti_path' : 'IMS在TI TDA4上必须用TIDL量化' , 'nvidia_path' : 'IMS在Orin上必须用TensorRT量化' , 'consequence' : '一个模型需要3条量化路径,不能"量化一次到处部署"' , }
对IMS部署的影响 当前IMS多芯片部署的问题
graph TD
A[IMS PyTorch模型<br/>FP32] --> B{量化路径选择}
B --> C[QCS8255<br/>QNN SDK量化]
B --> D[TI TDA4<br/>TIDL量化]
B --> E[NVIDIA Orin<br/>TensorRT量化]
C --> F[Hexagon INT8<br/>精度=95.2%]
D --> G[TI INT8<br/>精度=94.8%]
E --> H[TensorRT INT8<br/>精度=95.5%]
F --> I{同一输入<br/>三平台输出不同}
G --> I
H --> I
I --> J[❌ 逐样本预测不一致<br/>安全合规风险]
量化部署建议 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 class IMSQuantizationGuide : """ IMS多芯片量化部署指南 基于arXiv:2609.16085的发现 """ RULES = { 'rule_1' : { 'name' : '每芯片独立量化' , 'description' : '不为不同芯片使用同一量化模型' , 'reason' : 'INT8输出跨平台不一致' , }, 'rule_2' : { 'name' : '使用厂商SDK' , 'description' : '必须使用芯片厂商的量化工具链' , 'reason' : 'NPU会静默忽略外部量化参数' , }, 'rule_3' : { 'name' : '验证逐样本一致性' , 'description' : '部署前用同一测试集验证各平台输出' , 'reason' : 'top-1准确率掩盖了逐样本差异' , 'threshold' : '跨平台一致率>98%' , }, 'rule_4' : { 'name' : '关键路径冗余' , 'description' : '安全关键决策不依赖单一INT8模型' , 'reason' : 'INT8预测存在平台间不确定性' , }, 'rule_5' : { 'name' : 'FP32回退' , 'description' : '当INT8输出不确定时回退到FP32' , 'reason' : 'FP32跨平台完全一致(1000/1000)' , }, } DEPLOYMENT_MATRIX = { 'QCS8255' : { 'sdk' : 'Qualcomm QNN SDK' , 'quantization' : 'QNN quantizer (INT8)' , 'calibration' : '需要代表性数据集校准' , 'verification' : '必须验证精度下降<2%' , }, 'TI TDA4' : { 'sdk' : 'TI TIDL' , 'quantization' : 'TIDL quantizer (INT8)' , 'calibration' : 'TIDL校准工具' , 'verification' : '必须验证精度下降<2%' , }, 'NVIDIA Orin' : { 'sdk' : 'TensorRT' , 'quantization' : 'TRT INT8 calibrator' , 'calibration' : 'entropy校准' , 'verification' : '必须验证精度下降<2%' , }, }
量化验证流程
步骤
内容
通过标准
1. FP32基线
各平台FP32推理
100%一致
2. 芯片SDK量化
各芯片独立量化
—
3. 精度验证
各平台INT8 vs FP32
top-1下降<2%
4. 逐样本一致
跨平台INT8输出对比
一致率>98%
5. 延迟验证
各平台INT8推理延迟
满足实时性要求
6. 安全审查
不一致样本分析
无安全关键差异
行动建议
行动项
优先级
时间
建立跨芯片量化验证流程
P0
1月
QCS8255 QNN SDK量化管道
P0
2月
TI TDA4 TIDL量化管道
P1
2月
INT8→FP32回退机制
P1
1月
不一致样本安全分析
P2
3月
论文arXiv: 2609.16085 代码: github.com/yyshin-katech/embedded-ai-quantization-guide