MegEngine 使用小技巧:如何使用 MegCC 进行模型编译

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

MegEngine 作为一个训推一体的 AI 框架,为用户提供了模型训练以及部署的能力。但是在部署模型时,由于会存在对于部署的模型计算来说不必要的代码,导致 SDK 体积比较大。为了解决上述问题,我们提供了新的工具:AI 编译器 MegCC

MegCC 有以下特性:

  1. 只生成完成输入模型计算的必要的 kernel 代码以及用户指定的 CV 算子,编译得到的二进制文件体积很小。

  2. 支持 int8 量化模型以及 float16 量化,且生成的 kernel 是精心优化过的,推理性能好。

  3. 支持平台广。硬件方面,支持 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_
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值