博客
关于我
【端智能】MNN CPU性能优化年度小结
阅读量:160 次
发布时间:2019-02-27

本文共 1188 字,大约阅读时间需要 3 分钟。

MNN推理引擎优化一年:性能提升与架构适配

自2020年5月MNN1.0.0版本发布以来,我们持续发力于推理引擎的性能优化与硬件适配,致力于打造通用性强、性能领先的推理解决方案。

架构改造:为多架构制定基础

为了支持更多指令集与精度选择,我们对引擎架构进行了全面改造。这一改造不仅降低了后续优化成本,更为后续对各类硬件和精度模式的支持奠定了基础。

几何计算:简化算子,提升性能

几何计算机制通过分离坐标映射部分,将复杂算子如Slice-TF、Pack、Unpack等简化,显著提升了CPU上的性能。这种机制在ARM架构和其他移动端硬件上表现尤为突出。

算子统一:降低实现复杂度

卷积、反卷积等核心算子在不同精度和硬件上有多种实现方案。MNN通过统一实现这些算子,确保在不同硬件和精度下都能达到最优性能。这种统一机制不仅简化了开发流程,更为后续优化奠定了坚实基础。

矩阵乘与卷积优化:提升SIMD效率

在矩阵乘和卷积算子的实现中,我们通过优化SIMD指令,显著提升了计算效率。特别是在ARMv8架构上,我们实现了更高效的内存访问策略,进一步降低了计算延迟。

ARM架构优化:挖掘硬件潜能

针对ARM架构,我们对存储指令和SIMD指令进行了深度优化,提升了矩阵乘和卷积的执行效率。这种优化使得MNN在ARM硬件上的运行性能得到了显著提升。

x64架构:兼顾性能与兼容性

在x64架构中,我们重点优化了AVX2和AVX512指令集。通过深度调优,MNN在AVX2上的性能提升达70%-100%,而在AVX512架构上,浮点矩阵乘的速度提升了60%,量化计算加速了200%。

低精度计算:精度与效率的平衡

我们支持了多种低精度计算模式,包括半精度浮点(FP16)和BF16。这些模式不仅减少了内存占用,还显著提升了计算效率。在ARMv8.2架构上,FP16计算实现了双倍性能提升。

量化计算:深化性能提升

通过Overflow-Aware、Winograd-Aware等量化算法,我们进一步优化了矩阵乘和卷积的执行效率。特别是在ARM架构上,这些算法使得量化模型的推理速度提升了30%以上。

横向对比:MNN的性能优势

经过一年的持续优化,MNN在ARM/ARMv8.2架构上的性能提升达10%-20%,而在x64架构上表现尤为突出。与其他开源框架如Bolt、TNN、Mindspore-lite和TFlite的对比,MNN在CPU性能上展现了显著优势。

未来展望:持续创新与优化

随着新硬件架构和压缩算法的不断涌现,MNN将继续秉持通用性为基础、适配新硬件特性的理念,持续优化推理性能,为算法部署提供更强的支持。

通过全面的架构优化、算子统一和硬件适配,MNN在推理引擎领域展现了强大的技术实力和市场潜力。我们将继续在性能优化与生态建设中深耕,让更多开发者能够轻松体验MNN的优势。

转载地址:http://lihf.baihongyu.com/

你可能感兴趣的文章
Nginx运维与实战(二)-Https配置
查看>>
Nginx配置ssl实现https
查看>>
Nginx配置TCP代理指南
查看>>
Nginx配置——不记录指定文件类型日志
查看>>
Nginx配置代理解决本地html进行ajax请求接口跨域问题
查看>>
Nginx配置参数中文说明
查看>>
Nginx配置好ssl,但$_SERVER[‘HTTPS‘]取不到值
查看>>
Nginx配置如何一键生成
查看>>
Nginx配置实例-负载均衡实例:平均访问多台服务器
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增删改数据分发及删除数据实时同步_通过分页解决变更记录过大问题_02----大数据之Nifi工作笔记0054
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置binlog_使用处理器抓取binlog数据_实际操作01---大数据之Nifi工作笔记0040
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_实现数据插入数据到目标数据库_实际操作03---大数据之Nifi工作笔记0042
查看>>
NIFI同步MySql数据_到SqlServer_错误_驱动程序无法通过使用安全套接字层(SSL)加密与SQL Server_Navicat连接SqlServer---大数据之Nifi工作笔记0047
查看>>
Nifi同步过程中报错create_time字段找不到_实际目标表和源表中没有这个字段---大数据之Nifi工作笔记0066
查看>>
NIFI大数据进阶_离线同步MySql数据到HDFS_02_实际操作_splitjson处理器_puthdfs处理器_querydatabasetable处理器---大数据之Nifi工作笔记0030
查看>>
NIFI大数据进阶_连接与关系_设置数据流负载均衡_设置背压_设置展现弯曲_介绍以及实际操作---大数据之Nifi工作笔记0027
查看>>
NIFI数据库同步_多表_特定表同时同步_实际操作_MySqlToMysql_可推广到其他数据库_Postgresql_Hbase_SqlServer等----大数据之Nifi工作笔记0053
查看>>
NIFI汉化_替换logo_二次开发_Idea编译NIFI最新源码_详细过程记录_全解析_Maven编译NIFI避坑指南001---大数据之Nifi工作笔记0068
查看>>
NIFI集群_内存溢出_CPU占用100%修复_GC overhead limit exceeded_NIFI: out of memory error ---大数据之Nifi工作笔记0017
查看>>
NIH发布包含10600张CT图像数据库 为AI算法测试铺路
查看>>