176、NPU的编译器开发:TinyMLPerf基准测试
NPU的编译器开发:TinyMLPerf基准测试一、一个让我失眠三天的bug去年做某款RISC-V NPU的编译器时,我在TinyMLPerf的Anomaly Detection基准上卡了整整72小时。模型推理结果总是比参考实现多出0.3%的误差,这个量级在图像分类任务里可能无所谓,但在异常检测场景下直接导致误报率翻倍。我盯着汇编输出看了两天,最终发现是编译器在量化卷积的bias加法时,自作聪明地把int8乘加结果先截断再累加——标准做法应该是32位累加完再截断。这个优化看似合理,但TinyMLPerf的测试用例恰好用了极端权重分布,截断误差被放大了。这个教训让我意识到:NPU编译器开发不能只盯着功能正确,基准测试的每一行代码背后都藏着硬件特性的边界条件。二、TinyMLPerf到底在测什么TinyMLPerf不是普通的跑分工具。它专门针对1MB以下Flash、512KB以下RAM的微控制器级设备设计,测试集包含四个场景:Keyword Spotting:语音关键词检测,对时延敏感Visual Wake Words:图像中检测是否有人,对精度敏感Anomaly Detection:工业设备异常声音检测,对数值稳定性敏感Image Classification:CIFAR-10分类