137、eIQ的实时推理与性能调优
eIQ的实时推理与性能调优:一次把NXP的NPU吃到饱的实战记录去年冬天接手一个工业视觉项目,客户要求在i.MX RT1170上跑MobileNetV2,帧率必须稳定在30fps以上。当时我天真地以为,只要把模型扔进eIQ Toolkit,点几下鼠标就能交差。结果第一次上板测试,推理时间直接飙到120ms——连10fps都不到,现场工程师看我的眼神就像在看一个把法拉利开成拖拉机的傻子。后来花了整整两周,把eIQ的推理管线从底层到上层撸了个遍,才把延迟压到22ms。今天这篇笔记,就把那些踩过的坑和最终调优方案全抖出来。第一步就翻车:模型转换不是拖拽就能完事很多人用eIQ Portal时,习惯直接拖一个TensorFlow的SavedModel进去,点“Convert”就完事。我第一次也是这么干的,结果生成的TFLite文件在NPU上跑得比CPU还慢——因为默认的量化策略是“int8 fallback”,遇到不支持的算子就自动切回CPU执行。正确的姿势:在转换前,必须用--target参数明确指定硬件平台。比如针对i.MX RT系列的NPU,应该这样:# 别这样写:直接默认转换# 正确做法:指定NPU目标vela --target-ethos-u55 --system-config