AI 模型编译器 MegCC 开源,让推理引擎体积变小小小小小……
目前社区中存在着不少个移动端深度学习推理框架(比如NCNN、MNN),它们为社区用户在移动端部署深度学习提供了相当多的便利,但是这些推理框架有一个共性问题:随着不断迭代以及性能优化,运行时库会逐渐增大,尤其是不同算子 fuse 时,会导致大量长尾算子,使 App 或 SDK 体积变得尾大不掉。
为了解决这个问题,由 MegEngine 团队开源的 MegCC 创新性地使用模型预编译方案,生成模型推理必要的代码,将与模型推理无关的代码去除,从而极大程度减小了推理引擎的体积。其主要方法是将传统框架运行时的必要步骤如计算图优化、Kernel 选择、内存分配等全部移到编译过程中,最大程度减少了 Runtime 时的二进制体积大小,并根据模型信息进行进一步的性能优化。
方案特点
伴随框架的迭代将不再增大推理引擎体积 算子融合可以在编译时根据模型信息生成对应的代码 模型编译时可以获得整个计算图的信息,以便继续进行极致的性能优化 可以吸收社区在代码生成方面的经验用于为 MegCC 生成代码
MegCC 架构
使用方法及效果
- 模型编译:编译 MegEngine 模型,生成运行这个模型对应的 Kernel 以及优化之后的模型。
- Runtime 编译:这个阶段会将 Runtime 和上一步中生成的 Kernel 一起编译成一个静态库。
- 集成到应用中:调用上一步编译的静态库的接口进行推理。
未来计划
目前 MegCC 仅支持 MegEngine 模型作为输入,其他模型格式可以考虑转换到 ONNX,然后通过 mgeconvert 进行模型格式转换。
支持 ONNX 模型作为输入 更多的 Kernel fusion 支持更多的后端设备
精彩预告
旷视 MegEngine 端侧推理负责人陈其友将于2022 年 11 月 19 日参加 DataFunSummit2022 期间举办的 AI 基础软件架构峰会“深度学习框架论坛”,并带来《MegCC 用模型编译的方式实现超轻量端上高性能推理》主题演讲,从目前端上推理的现状分析,到创新使用模型预编译方案的 MegCC 详解,带你领略新一代 AI 模型编译器 MegCC 的魅力。
演讲提纲:
1. 概述目前端上推理的现状,主要是推理引擎体积方面的情况
2. 介绍 MegCC 的编译器方案
3. 分享「超轻量、高性能、扩展性强」等特性的实现思路
4. 总结 MegCC 的现状、优势以及未来的计划
精彩不容错过,与您相约线上直播~
点击文末阅读原文,立即报名
最新评论
推荐文章
作者最新文章
你可能感兴趣的文章
Copyright Disclaimer: The copyright of contents (including texts, images, videos and audios) posted above belong to the User who shared or the third-party website which the User shared from. If you found your copyright have been infringed, please send a DMCA takedown notice to [email protected]. For more detail of the source, please click on the button "Read Original Post" below. For other communications, please send to [email protected].
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。