本章不只讲怎么生成 INT8,而是讲量化前如何判断、FP16如何验证、INT8缺哪一层证据,以及失败时如何回退。
先给出本讲路线图;后续每一段都对应这里的一行,最后回到路线收束。
先排除预处理、拷贝和后处理瓶颈。如果模型 execute 占比很小,INT8 即使更快也未必改善业务帧率。
按三层读图:建立 FP32/FP16 基准、快速输出与性能验证、INT8 PTQ 和完整验证。校准 sweep 只有在需要解释波动时才启用。
FP16 和 INT8 的风险不同。FP16 通常不需要校准;INT8 必须通过代表性数据估计激活范围。
400张训练图用于校准和快速输出对齐,不是精度验证集。10000张验证图才用于Top1/Top5。
两份 OM 从同一个 FP32 ONNX 生成,但目标 SoC 的归属必须逐板记录。不能因为文件名相同就推断 B1 可以复用 B4 OM,也不能替 20T 补造未保留的转换命令。
强调两种“准确率”的区别。Top1 match 是模型间一致性,不是候选模型相对真标签的 accuracy。
三个值必须带“400张图”。100% 是模型间Top1匹配,不是验证集准确率;最大误差也不能用截图或均值替代。
严格保留四个均值与“10个计时样本”。warmup 缺失必须明确写出。Execute 均值不是端到端,也不是完整性能基准;两板不能混算。
性能与精度都必须绑定样本数、阶段和板卡。没有这些字段,数字不可复用。
图中路径是文档化流程:FP32 ONNX 与校准集,经配置生成、激活校准、deploy ONNX,再由 ATC 转 INT8 OM。当前双板记录没有执行后续 INT8 步骤。
PTQ不重新训练,只利用校准数据估计激活范围。校准集与验证集混用会污染精度结论。
这页展示怎样做,不是展示已经完成。INT8没有deploy ONNX、OM、输出对齐、性能或验证集结果,不能写成板端通过。
这是本章最重要的边界页。不能把文档中的历史INT8数据搬进本轮双板证据,也不能把PTQ流程写成实测通过。
完整验证与400张输出对齐是两种证据。sweep用于解释不同校准规模,不用于把已有INT8 OM复用成多个点。
回退不是失败,而是风险控制。任何 INT8 优化都必须保留原始日志、模型哈希、样本数量和失败原因。
最后逐项检查样本数和证据层级。没有INT8原始日志、工件和输出,就不能把流程页当成结果页。