136、eIQ的硬件加速:NPU与DSP eIQ的硬件加速:NPU与DSP昨晚调试一块i.MX RT1170的板子,跑一个轻量级的人脸检测模型。模型在PC上量化后只有200KB,心想这总该跑得动吧。结果一上板,推理一次花了800多毫秒——这帧率连幻灯片都不如。同事路过看了一眼,丢下一句话:“你该不会还在用CPU跑吧?”一语惊醒梦中人。i.MX RT1170这颗芯片里明明藏着NPU和DSP两个加速引擎,我却让Cortex-M7在那吭哧吭哧做矩阵乘法。这就像开着法拉利却挂着一档在跑。别把NPU当CPU用很多人第一次接触eIQ的硬件加速,容易犯一个错误:以为把模型丢给eIQ,它就会自动调用NPU。天真了。eIQ的推理引擎确实支持多种后端——TFLite Micro、Glow、CMSIS-NN、以及针对NPU的Vela编译器。但默认情况下,TFLite Micro后端跑在CPU上。你得明确告诉它:“嘿,用NPU跑。”NPU(神经网络处理单元)和CPU的设计哲学完全不同。CPU是“万金油”,什么都能干,但干得不快。NPU是“专才”,只会做卷积、池化、全连接这些神经网络操作,但做得极快。i.MX RT系列的NPU(比如i.MX 8M Plus上的那个)可以在一个时钟周期内完成多个MAC(乘加)操作,而CPU需要多个指令周期。但NPU有个致命弱点:它只认自己的一套指令集。你训练好的模型,得先经过Vela编译器“翻译”成NPU能理解的格式。这个翻译过程不是简单的格式转换,而是对网络结构进行重排、算子融合、内存优化。翻译得好不好,直接决定推理速度。D