MNN

深度神经网络推理引擎 MNN

Apache
C/C++ 查看源码»
跨平台
阿里巴巴
2019-05-07
段段段落

MNN 是一个轻量级的深度神经网络推理引擎,在端侧加载深度神经网络模型进行推理预测。目前,MNN 已经在阿里巴巴的手机淘宝、手机天猫、优酷等 20 多个 App 中使用,覆盖直播、短视频、搜索推荐、商品图像搜索、互动营销、权益发放、安全风控等场景。此外,IoT 等场景下也有若干应用。

整体特点

轻量性

  • 针对端侧设备特点深度定制和裁剪,无任何依赖,可以方便地部署到移动设备和各种嵌入式设备中。
  • iOS平台:armv7+arm64静态库大小5MB左右,链接生成可执行文件增加大小620KB左右,metallib文件600KB左右。
  • Android平台:so大小400KB左右,OpenCL库400KB左右,Vulkan库400KB左右。

通用性

  • 支持TensorflowCaffeONNX等主流模型文件格式,支持CNNRNNGAN等常用网络。
  • 支持86个TensorflowOp、34个CaffeOp;各计算设备支持的MNN Op数:CPU 71个,Metal 55个,OpenCL 29个,Vulkan 31个。
  • 支持iOS 8.0+、Android 4.3+和具有POSIX接口的嵌入式设备。
  • 支持异构设备混合计算,目前支持CPU和GPU,可以动态导入GPU Op插件,替代CPU Op的实现。

高性能

  • 不依赖任何第三方计算库,依靠大量手写汇编实现核心运算,充分发挥ARM CPU的算力。
  • iOS设备上可以开启GPU加速(Metal),常用模型上快于苹果原生的CoreML。
  • Android上提供了OpenCLVulkanOpenGL三套方案,尽可能多地满足设备需求,针对主流GPU(AdrenoMali)做了深度调优。
  • 卷积、转置卷积算法高效稳定,对于任意形状的卷积均能高效运行,广泛运用了 Winograd 卷积算法,对3x3 -> 7x7之类的对称卷积有高效的实现。
  • 针对ARM v8.2的新架构额外作了优化,新设备可利用半精度计算的特性进一步提速。

易用性

  • 有高效的图像处理模块,覆盖常见的形变、转换等需求,一般情况下,无需额外引入libyuv或opencv库处理图像。
  • 支持回调机制,可以在网络运行中插入回调,提取数据或者控制运行走向。
  • 支持只运行网络中的一部分,或者指定CPU和GPU间并行运行。

架构设计

MNN可以分为Converter和Interpreter两部分。

Converter由Frontends和Graph Optimize构成。前者负责支持不同的训练框架,MNN当前支持Tensorflow(Lite)、Caffe和ONNX(PyTorch/MXNet的模型可先转为ONNX模型再转到MNN);后者通过算子融合、算子替代、布局调整等方式优化图。

Interpreter由Engine和Backends构成。前者负责模型的加载、计算图的调度;后者包含各计算设备下的内存分配、Op实现。在Engine和Backends中,MNN应用了多种优化方案,包括在卷积和反卷积中应用Winograd算法、在矩阵乘法中应用Strassen算法、低精度计算、Neon优化、手写汇编、多线程优化、内存复用、异构计算等。

的码云指数为
超过 的项目
加载中
此软件有 1 条评论,请先登录后再查看。

阿里开源深度神经网络推理引擎 MNN

近日,阿里正式开源了轻量级深度学习端侧推理引擎 “MNN”。 MNN 是一个轻量级的深度学习端侧推理引擎,核心解决深度神经网络模型在端侧推理运行问题,涵盖深度神经网络模型的优化、转换和推...

2019/05/09 07:47

没有更多内容

加载失败,请刷新页面

没有更多内容

暂无问答

MNN windows

参考: https://blog.csdn.net/wh1319501722/article/details/104215382 MNN主库 环境要求 Microsoft Visual Studio (2017或以上) cmake(建议使用3.10或以上版本) powershell Ninja (构...

05/15 13:03
90
0
mnn量化

参考:https://zhuanlan.zhihu.com/p/73207495 今天MNN更新了新的工具包---CNN网络量化工具(quantization),作者也第一时间进行了测试。提升的效果还是很可观的,量化前的CNN网络大小约为5.7...

07/26 15:49
14
0
clamp mnn不支持

selayer中的 y=torch.clamp(y,0,1) mnn转换工具转换时报错 解决方法: y=torch.clamp(y,0,6) 这个不报错了,但是mnn推理增加了9ms。...

07/24 15:39
5
0
mnn 编译转换工具

编译protobuf 参考链接:https://github.com/protocolbuffers/protobuf/blob/master/cmake/README.md x64 执行以下代码 cd /path/to/protobuf/vsprojects cmake -G "Visual Studio 15 2017 ...

05/29 18:47
68
0
MNN编译android

MNN下交叉编译 参考:https://blog.csdn.net/Simplify_boy/article/details/105410235 https://blog.csdn.net/qq_37643960/article/details/99775939 Could NOT find Protobuf (missing: Pro...

07/05 11:39
189
0
WIN7 + VS2015 编译 阿里MNN框架

[2019-12-31] 今天看到更新了0.2.16,尝试了下,顺畅多了, MNNConvert.exe 也能顺利运行。 更简单的流程: 1、下载解压 2、vs2015x64命令符下,转MNN-0.2.1.6路径 3、 powershell -Executio...

2019/12/27 11:55
137
0
如何在windows上开心的编译阿里的MNN

目前深度学习在终端部署上很多高质量的开源框架,例如,百度的PaddlePaddle-lite,阿里的MNN,腾讯的ncnn。不过看了很多评测,我最终选择了阿里的MNN进行学习。但是,对于阿里的提供的相应的...

2019/12/08 01:48
497
0
一年的打磨,MNN正式版发布!

作者|MNN团队 出品|阿里巴巴新零售淘系技术部 MNN 的诞生源于淘系技术部的一群对技术充满热情的同学,在充分的行业调研后认为当时的推理引擎如 TFLite 不足以满足手机淘宝这样一个亿级用户与...

05/17 11:49
55
0
zz开源 MNN:淘宝在移动 AI 上的实践

开源 MNN:淘宝在移动 AI 上的实践 陈以鎏(离青) 阅读数:40612019 年 6 月 28 日 随着深度学习的快速发展和端侧设备算力的不断提升,原本在云端执行的推理预测工作正在部分迁移到端侧。在 ...

2019/08/20 14:35
81
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部