Skip to main content
QUICK REVIEW

[论文解读] MNN: A Universal and Efficient Inference Engine

Xiaotang Jiang, Huan Wang|arXiv (Cornell University)|Feb 27, 2020
Advanced Neural Network Applications参考文献 22被引用 7
一句话总结

MNN 是一款专为移动设备设计的通用且高效的深度学习推理引擎,通过预推理优化、内核级性能调优以及轻量级后端抽象,在多种硬件上实现了高效性能。在真实设备基准测试中,MNN 的表现优于 TVM 和 NCNN 等竞争对手,二进制文件膨胀极小,跨 500 余台设备的平均推理时间仅为 90.2ms。

ABSTRACT

Deploying deep learning models on mobile devices draws more and more attention recently. However, designing an efficient inference engine on devices is under the great challenges of model compatibility, device diversity, and resource limitation. To deal with these challenges, we propose Mobile Neural Network (MNN), a universal and efficient inference engine tailored to mobile applications. In this paper, the contributions of MNN include: (1) presenting a mechanism called pre-inference that manages to conduct runtime optimization; (2)deliveringthorough kernel optimization on operators to achieve optimal computation performance; (3) introducing backend abstraction module which enables hybrid scheduling and keeps the engine lightweight. Extensive benchmark experiments demonstrate that MNN performs favorably against other popular lightweight deep learning frameworks. MNN is available to public at: https://github.com/alibaba/MNN.

研究动机与目标

  • 解决移动深度学习推理中模型兼容性、设备多样性与资源约束的挑战。
  • 设计一款在低端与高端移动设备上均保持高性能、且二进制开销极小的推理引擎。
  • 在不牺牲通用性或性能的前提下,实现深度学习模型在边缘设备上的高效、可扩展部署。
  • 相比需要自动调优或依赖重型库的框架,降低部署复杂度与运行时开销。

提出的方法

  • 引入一种预推理机制,在运行时进行在线成本评估,并选择最优执行方案。
  • 采用改进的算法与数据布局,对常见操作(如卷积)进行深度内核优化,以提升性能。
  • 通过后端抽象模块,实现 CPU、GPU 与 NPU 的混合调度,同时保持核心引擎的轻量化。
  • 通过统一接口支持多种模型格式(如 TensorFlow、PyTorch、Caffe 等)与硬件后端(如 ARM、Mali、Adreno 等)。
  • 避免生成特定模型的代码,相比 TVM 等自动调优框架,显著降低部署开销。
  • 实现极小的二进制膨胀——在移动应用中集成后,二进制大小仅增加 400–600 KB。

实验结果

研究问题

  • RQ1如何在不牺牲模型兼容性的情况下,使移动推理引擎在多样化设备上实现高性能?
  • RQ2通过在线成本评估的运行时优化,是否能超越静态或自动调优的代码生成方式?
  • RQ3在不增加代码复杂度的前提下,内核级优化能在多大程度上提升推理速度?
  • RQ4后端抽象如何在保持极小代码体积的同时,实现高效的混合调度?
  • RQ5通用推理引擎能否在性能上达到甚至超越 TVM 等专用自动调优框架?

主要发现

  • MNN 在 500 余台真实移动设备上实现了 90.2ms 的平均推理时间,展现出强大的通用性与稳定性。
  • 在华为 P20 Pro(麒麟 970)设备上,MNN 的 CPU 推理时间与 TVM 相当,甚至在某些情况下优于自动调优的 TVM 结果。
  • 预推理机制可实现运行时最优方案选择,避免因未优化算子导致的性能瓶颈。
  • MNN 避免了自动调优框架的长编译时间——TVM 对 ResNet-18 的自动调优耗时超过 4,500 秒(30 次试验),而 MNN 无此类开销。
  • MNN 在移动应用中集成后的二进制大小仅增加 400–600 KB,显著低于依赖 Eigen 或 OpenBLAS 等外部库的框架。
  • MNN 在 Inception-v3 上优于 NCNN,得益于其可泛化的优化策略,避免了因 1×7 和 7×1 卷积等未优化算子导致的性能下降。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。