新闻资讯
轻量级深度学习端侧推理引擎 MNN:MNN核心介绍
1. 模块设计
如上图所示,MNN 可以分为 Converter 和 Interpreter 两部分。
Converter 由 Frontends 和 Graph Optimize 构成。前者负责支持不同的训练框架,MNN 当前支持 Tensorflow(Lite)、Caffe 和 ONNX;后者通过算子融合、算子替代、布局调整等方式优化图。
Interpreter 由 Engine 和 Backends 构成。前者负责模型的加载、计算图的调度;后者包含各计算设备下的内存分配、Op 实现。在 Engine 和 Backends 中,MNN应用了多种优化方案,包括在卷积和反卷积中应用 Winograd 算法、在矩阵乘法中应用 Strassen 算法、低精度计算、Neon 优化、手写汇编、多线程优化、内存复用、异构计算等。
2. 性能比较
采用业务常用的 MobileNet、SqueezeNet 和主流开源框架进行比较,结果如下图:
MNN 相比于 NCNN、Mace、Tensorflow Lite、Caffe2 都有 20% 以上的优势。我们其实更加聚焦在内部使用的业务模型优化上,针对人脸检测等模型进行深入优化,iPhone6 可以达到单帧检测 5ms 左右。
注:Mace、Tensorflow Lite、Caffe2 均使用截止 2019 年 3 月 1 日 GitHub 代码仓库的 master 分支;NCNN 由于编译问题采用 20181228 Release 预编译库。
原文链接:https://my.oschina.net/yunqi/blog/3046445
回复列表