034、MLIR在边缘计算中的应用与优化:从一次诡异的推理卡顿说起上个月在部署某款边缘AI盒子时,遇到了一个诡异的问题:同一套ResNet-50模型,在开发板上推理时帧率波动极大,从15fps突然掉到3fps,十几秒后又恢复正常。perf工具显示那段时间L2缓存命中率暴跌,但代码层面看推理流程完全一致。问题最终定位在算子调度上——框架在特定输入形状组合下,触发了某个未优化的卷积实现路径,而这个路径的内存访问模式对边缘设备的缓存极不友好。这件事让我重新审视边缘场景的编译优化:传统编译器优化通常针对“通用情况”,但边缘设备需要的是“对这个具体设备、这个具体模型的最优解”。MLIR为什么适合边缘计算场景边缘设备的约束是三维的:算力有限、内存紧张、功耗敏感。传统的深度学习编译器(如TVM)虽然能做图优化,但优化管道相对固定。MLIR的多层IR设计允许我们在不同抽象级别做针对性优化:// 这是我们在项目中实际使用的模式,简化后大概长这样:func.func @inference(%input