带你读《2022技术人的百宝黑皮书》——MNN 2.0 发布 ——移动端推理引擎到通用深度学习引擎(1) https://developer.aliyun.com/article/1248038?groupCode=taobaotech
通用性
1. 支持 Tensorflow、Caffe、ONNX、Torchscripts 等主流模型文件格式,支持CNN / RNN / GAN / Transformer 等主流网络结构。
2. 支持多输入多输出,支持任意维度的输入输出,支持动态输入(输入大小可变),支持带控制流的模型
3. 算子丰富,支持 178 个Tensorflow Op、52个 Caffe Op、142个 Torchscipts Op、158 个 ONNX Op(ONNX 基本完整支持)
4. 支持 服务器 / 个人电脑 / 手机 及具有POSIX接口的嵌入式设备,支持使用设备的 CPU / GPU 计算,支持部分设备的 NPU 计算(IOS 11 + CoreML / Huawei + HIAI)
5. 支持 Windows / iOS 8.0+ / Android 4.3+ / Linux 及具有POSIX接口的操作系统
高性能
1. 对iOS / Android / PC / Server 的CPU架构进行了适配,编写SIMD代码或手写汇编以实现核心运算,充分发挥 CPU的算力,单线程下运行常见CV模型基本达到设备算力峰值。
2. iOS设备上基于 Metal 实现算子以支持GPU加速,常用模型上快于苹果原生的CoreML。
3. Android上提供了OpenCL、Vulkan两套方案,针对主流GPU(Adreno和Mali)做了深度调优,其中 OpenCL 侧重于推理性能极致优化,Vulkan 方案注重较少的初始化时间。
4. 广泛运用了 Winograd 卷积算法提升卷积性能,首次在业界工程实践中实现转置卷积的Winograd算法优化与矩阵乘的Strassen算法优化并取得加速效果。
5. 支持低精度计算( int8 / fp16 / bf16)以提升推理性能。并对 ARMv8.2 和 AVX512架构的相关指令进行了适配,这两种架构下有更好的加速效果。
易用性
1. 支持使用 MNN 的算子进行常用的数值计算,覆盖 numpy 常用功能
2. 提供 MNN CV 模块,支持图像仿射变换与归一化等 MNN_CV 库,支持常用的图像处理(armv7a 架构下小于 100 k )
3. 支持各平台下的模型训练,尤其是移动端上的模型训练
4. 支持 python 接口
带你读《2022技术人的百宝黑皮书》——MNN 2.0 发布 ——移动端推理引擎到通用深度学习引擎(3) https://developer.aliyun.com/article/1248036?groupCode=taobaotech