MegEngine 作为一个训推一体的 AI 框架,为用户提供了模型训练以及部署的能力。但是在部署模型时,由于会存在对于部署的模型计算来说不必要的代码,导致 SDK 体积比较大。为了解决上述问题,我们提供了新的工具:AI 编译器 MegCC。
MegCC 有以下特性:
-
只生成完成输入模型计算的必要的 kernel 代码以及用户指定的 CV 算子,编译得到的二进制文件体积很小。
-
支持 int8 量化模型以及 float16 量化,且生成的 kernel 是精心优化过的,推理性能好。
-
支持平台广。硬件方面,支持 Armv8、Armv7 以及 X86。操作系统方面,支持标准和非标准操作系统。
本文将重点解析模型部署中的重要步骤之一-模型编译:编译 MegEngine 模型,生成运行这个模型对应的 Kernel 以及和这些 Kernel 绑定的模型。
编译模型时:
- MegCC 生成模型使用的内核和用户所需的 CV 内核
- MegCC 做了多项优化,例如静态内存规划和模型优化
- MegCC 将上述数据转储到最终模型中
模型编译阶段主要使用 mgb-to-tinynn 工具,编译完成之后,会在用户给定的目录下面,生成对应的纯 C 代码的 Kernel 以及对应的模型。为了编译模型,mgb-to-tinynn 工具需要用户提供一个 Json 文件来配置编译选项。
目前 MegCC 只支持 mge 模型作为输入,其他模型格式可以考虑转换到 ONNX,然后通过 mgeconvert 进行模型格式转换。
编写 Json 文件
json模板如下:
{
"@dump_dir":"[Required], specify the directory where the output kernel and model are stored",
"dump_dir":"./batch_

本文介绍了 MegEngine 的模型编译工具 MegCC,它用于生成轻量级的模型部署二进制文件。MegCC 特点包括小体积、高性能的内核和广泛支持的硬件平台。模型编译涉及编写 Json 配置文件,指定模型、输入数据和优化选项。用户可以通过 mgb-to-tinynn 工具或预设脚本进行编译,生成运行模型的纯 C 代码 Kernel 和模型文件。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



