CMSIS-NN 常见问题与排查
常见问题与排查
| 问题 | 排查思路 |
|---|---|
| 推理结果全错或整体偏移 | 先核对零点与乘子移位:input_offset 是否为零点取负、per-channel 数组长度是否等于输出通道数 |
| 偶发崩溃、跑到固定层必崩 | 查 scratch buffer 是否够大、张量地址是否对齐 |
| 性能远低于预期 | 能力宏有没有定义、优化等级、权重是否放在访问慢的存储上 |
| M55 上没有跑出向量加速 | Helium 相关宏是否打开、工具链是否支持该内核 |
| 想知道某个算子的真实耗时 | 用 DWT 周期计数逐算子打点,不要靠估算 |
一条通用建议:先让参考实现跑对,再换优化内核。CMSIS-NN 的大部分算子在没开能力宏时会退回 C 实现,结果应当一致;如果换内核之后结果变了,问题一定在参数而不在内核。

