最新要闻
- 女士小巧汽车3万左右手动挡(女士小巧汽车3万左右)
- 2023乌海市教育局官网中考专栏成绩查询入口
- 替代OLED!曝苹果研发MicroLED屏:2026年商用 环球速讯
- 集插排、氮化镓快充于一体!魅族PANDAER 120W GaN桌面充电站图赏
- PANDAER 120W桌面超级充电站PRO评测:高颜值+多协议充电 跟凌乱桌面说拜拜
- 0蔗糖、0胆固醇椰香浓郁!轻上椰子汁4瓶4升:到手39.9元
- 王宝强新电影成了!拍《八角笼中》绝不将就、绝不凑合
- 詹姆斯二儿子全美排名 詹姆斯现身执教二儿子 基本情况讲解
- NASA帕克探测器第16次贴着太阳飞过:100万度高温下为啥不会融化?|当前关注
- 时讯:全新火车票来了:299元 一张票打卡三个城市
- 挑战马斯克“农民”弟弟!上海交大工科博导带队种菜:三个月出奇迹_观速讯
- 焦点速读:五星耐摔认证!荣耀X50图赏:十面抗摔的硬核曲屏
- 全员共赢20万!2023魅族王者荣耀冠军杯招募开启
- 温网第4日:中国金花4人出战,王欣瑜冲击32强!3位金花亮相女双
- 王一博的机场穿搭如同秀场,飞往上海参加戏剧节,有点期待
- 当前焦点!越来越热不是错觉 2024年或成为最热一年
手机
光庭信息跌4.57% 2021上市超募11亿2022扣非降74% 时快讯
搜狐汽车全球快讯 | 大众汽车最新专利曝光:仪表支持拆卸 可用手机、平板替代-环球关注
- 光庭信息跌4.57% 2021上市超募11亿2022扣非降74% 时快讯
- 搜狐汽车全球快讯 | 大众汽车最新专利曝光:仪表支持拆卸 可用手机、平板替代-环球关注
- 视点!美国首位女总统即将诞生?拜登恐怕要提前下岗,美政坛迎来变局?
- 当前速递!用理想仪器实现更好的颗粒 德国新帕泰克亮相CPHI & PMEC China获好评
- 微粒贷怎么申请开通 开通方法如下
- 焦点简讯:心疼!这位40岁的云南缉毒警,已是满头白发
家电
全球热消息:MegEngine 使用小技巧:如何使用 MegCC 进行模型编译
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_dump/", "models":[ { "@model_name":"[Optional], specify the name of the tiny model to be generated", "model_name":"det_nchw44", "@model_path":"[Required], specify the input model path. `mge" and `emod" formats are supported.", "model_path":"path/to/model.mge", "@input_shape_str":"[Optional], modify the input shape", "input_shape_str":"data=(1,1,384,288):data=(1,1,288,384)", "@enable_nchw44":"[Optional], whether to enable nchw44 optimization, default false", "enable_nchw44":true, "@enable_nchw44_dot":"[Optional], whether to enable nchw44 dot optimization for int8, default false", "enable_nchw44_dot":false, "@add_nhwc2nchw_to_input":"[Optional], add nhwc2nchw dimshuffle to input", "add_nhwc2nchw_to_input":false, "@mgb_fuse_kernel":"[Optional], fuse mgb kernel as possible", "mgb_fuse_kernel":false, "@enable_compress_fp16":"[Optional], whether to enable the optimization of using float16 storage to compress the model size", "enable_compress_fp16":false, "@enable_nchw88":"[Optional], whether to enable nchw88 optimization, default false", "enable_nchw88":false, "@enable_ioc16":"[Optional], whether to enable optimization using float16 calculation, default false", "enable_ioc16":false }, { "model_name":"pf_nchw44", "model_path":"path/to/another_model.emod", "input_shape_str":"data=(1,1,112,112)", "enable_nchw44":true } ], "@cv":"[Optional], specify the cv operator used in non-models (e.g. in pre and post processing)", "cv":{ "transpose":["ui8"], "roicopy":["ui8"], "rotate":["ui8"], "flip":["ui8"], "resize_linear":["ui8", "f32"], "warp_affine_replicate_linear":["ui8"], "rgb2bgr":["ui8"], "yuv2bgr_nv21":["ui8"], "rgb2yuv":["ui8"] }}
设置模型编译之后 dump 的路径,可以在 mgb-to-tinynn 工具中通过 --dump 参数进行 override。
Json 文件中需要指定使用 mgb-to-tinynn 编译的模型名称,模型的路径,以及模型的输入数据,以及一些优化参数等
- 如果部署的实际情况中需要多个模型组成 pipline,可以指定多个模型
- 如果一个模型在实际推理过程中可能需要多种输入 shape,需要分别在
input_shape_str
中指定,并用:
分割开。 - 支持
enable_nchw44
和enable_nchw44_dot
两个优化选项,enable_nchw44
为 true 表示,优化模型推理中 Tensor layout 为NC4HW4。enable_nchw44_dot
为 true 表示,优化模型推理中 Tensor layout 为NC4HW4,并且在推理过程中使用ArmV8.2 dot指令进行推理加速 - 开启enable_ioc16优化选项,可以使用float16进行float32模型的计算,可提升推理性能,代价是损失一些精度。通常需要同时开启enable_nchw88选项
另外为了方便用户集成时候使用 cv 算子进行模型的前后处理,可以在这个 Json 文件中指定需要用到的 cv 算子的名称以及对应的数据类型。MegCC 支持的 cv 算子列表。
模型编译
编译模型目前可以使用 mgb-to-tinynn 这个可执行文件完成编译,也可以使用 Release 包里面的现成脚本./script/ppl_gen.sh
进行编译。
使用现成脚本进行模型编译(推荐)
Release 包中的 script 目录下面有一个ppl_gen.sh
的文件,直接执行:
./script/ppl_gen.sh ./bin/mgb-to-tinynn ./example/mobilenet.json mobilenet_gen --arm64
./script/ppl_gen.sh
这个脚本将执行模型编译,并把 Runtime 需要的资源一同打包在一个压缩包中,方便后续 Runtime 的编译,解压这个压缩包将得到:
├── build runtime build 的路径├── immigration generalIntrinsic 头文件│ └── include├── kern 模型 kernel 文件包括cv 算子├── mobilenet.json 模型dump所用的配置文件├── model 模型│ └── mobilenet_nchw44.tiny├── model_info 模型输入信息│ └── mobilenet_nchw44.tiny.txt├── ppl_build.sh├── runtime runtime 源码│ ├── CMakeLists.txt│ ├── example│ ├── flatcc│ ├── include│ ├── schema│ ├── script│ └── src└── test_model.py 模型对分测试脚本
使用可执行文件编译
使用 mgb-to-tinynn 和上面写好的 Json 文件执行:
mgb-to-tinynn --json=/path/to/json --[target]
成模型编译后,将生成的运行这个模型的 Kernel,和这些 Kernel 绑定的模型文件以及 cv 算子都放在 Json 文件中指定的目录。其中
- target:可以是 baremetal, arm64, armv7, arm64v7.
- baremetal: 生成的 Kernel 为单片机可以运行的纯 C 形式
- arm64v7: 生成能够同时在 Arm64 和 ArmV7 上运行的两套 Kernel 以及他们对应的模型,这时候,模型文件可能会比 target 为 arm64 时候大一点。
如编译 Release 包中的 mobilenet 模型,目标机器是 arm64 机器,运行如下命令
mkdir mobilenet_gen./bin/mgb-to-tinynn --json=./example/mobilenet.json --arm64 --dump mobilenet_gen
附
更多 MegEngine 信息获取,您可以:查看文档和 GitHub 项目,或加入 MegEngine 用户交流 QQ 群:1029741705。欢迎参与 MegEngine 社区贡献,成为 Awesome MegEngineer,荣誉证书、定制礼品享不停。
关键词:
全球热消息:MegEngine 使用小技巧:如何使用 MegCC 进行模型编译
女士小巧汽车3万左右手动挡(女士小巧汽车3万左右)
债市日报:7月6日
2023乌海市教育局官网中考专栏成绩查询入口
替代OLED!曝苹果研发MicroLED屏:2026年商用 环球速讯
集插排、氮化镓快充于一体!魅族PANDAER 120W GaN桌面充电站图赏
PANDAER 120W桌面超级充电站PRO评测:高颜值+多协议充电 跟凌乱桌面说拜拜
0蔗糖、0胆固醇椰香浓郁!轻上椰子汁4瓶4升:到手39.9元
王宝强新电影成了!拍《八角笼中》绝不将就、绝不凑合
全球快资讯:【技术积累】Mysql中的SQL语言【技术篇】【二】
第十八期 | 知名手游开启公测,大批游戏账号遭抢注倒卖 天天最新
13.字符串
VSCode如何通过Ctrl+P快速打开node_modules中的文件
js的中的函数(二) 全球焦点
詹姆斯二儿子全美排名 詹姆斯现身执教二儿子 基本情况讲解
转股价下修难破局 12家银行可转债转股率不足1%
【新华500】新华500指数(989001)6日跌0.67% 环球热消息
NASA帕克探测器第16次贴着太阳飞过:100万度高温下为啥不会融化?|当前关注
时讯:全新火车票来了:299元 一张票打卡三个城市
挑战马斯克“农民”弟弟!上海交大工科博导带队种菜:三个月出奇迹_观速讯
焦点速读:五星耐摔认证!荣耀X50图赏:十面抗摔的硬核曲屏
全员共赢20万!2023魅族王者荣耀冠军杯招募开启
温网第4日:中国金花4人出战,王欣瑜冲击32强!3位金花亮相女双
王一博的机场穿搭如同秀场,飞往上海参加戏剧节,有点期待
快播:植信投资首席经济学家连平:下半年宏观政策将加力提效 三季度稳增长政策或集中出台
当前焦点!越来越热不是错觉 2024年或成为最热一年
马斯克:未来地球上的机器人数量将超过人类 物质不再短缺
免费MMO也能不卖数值:《逆水寒》手游登顶AppStore畅销榜-天天快资讯
全球今日讯!如果重来你还愿意选我当你的导师吗?“杀马特”少年的成长
焦点精选!博主在呼伦贝尔拍下绝美照片:几乎和WinXP蓝天白云壁纸一模一样
香港立法会三读通过区议会修例草案|焦点关注
常用的生物医学科研工具合集 世界实时
哈工大回应网传抢教授话筒男生被录取:还没开始投档呢
RTX 4090无限逼近4GHz:逆天功耗1127W!_环球今热点
世界看热讯:“长江禁捕 打非断链”专项行动 湖北5集体、9人上榜
7月6日 13:18分 京基智农(000048)股价快速拉升-世界即时
环球观焦点:滨州市直机关工委到滨州中院调研机关党建工作
这届年轻人盯上了电动轮椅 通勤不带头盔不上牌不违规:专家痛批占用公共资源
40%果肉 层层爆浆!榴莲西施千层蛋糕400gx2盒+戚风蛋糕x1盒69元大促_天天热资讯
三亚海鲜店缺斤短两被网友曝光 官方通报:商户清退出场罚款30万元
全球新资讯:同级唯一!宝骏云朵全球首创“云朵沙发”座椅:直接把大沙发搬进车里
李玟遗嘱财产全部留给母亲 网友:妈妈想要的是女儿 天天滚动
中国三人女篮积分升至世界第1 至11月排名前3球队将直通巴黎奥运_环球关注
天天热头条丨直播软件开发知识:实现感知网络质量功能
女学生拒客服工作被HR攻击 别上班了去死:公司回应 网友吐槽太过分
华为轮值董事长胡厚崑:华为盘古大模型3.0将在7月7日发布-热点聚焦
弹力修身透气:361度男运动裤夏季薄款梭织长裤69元 世界热资讯
中石化出品:鸥露竹浆抑菌抽纸28包/29.9元抄底 天天热资讯
每日热闻!实现AI全球天气精准预报!华为成果登上顶级科研杂志《Nature》
环球滚动:资金流向(7月5日)丨华工科技、新易盛、北方稀土获融资资金买入排名前三
荣耀MagicBook X 16 2023笔记本发布 首发价3699元起
16-7系统启动和内核管理
全球速递!超达装备7月6日快速上涨
清明节吃什么传统食物英语(清明节吃什么传统食物)
环球快资讯:@毕业生,从求职到入职,这份避坑指南请收好→
世界上最小的相机问世!宽4cm 重17g 只要350元_当前聚焦
【天天快播报】曝iPhone 15全系将配备更大的电池:续航大大改善
电动车的底 让自己弄掉了 热讯
15万元珠宝被家人当垃圾丢了 网友:我想当门口那个垃圾桶-报道
每日速讯:马斯克称中国会有很强的AI能力:中国下定决心做一件事就一定能做好
中方呼吁国际社会采取行动让每一个儿童都远离战火硝烟 当前速看
当前时讯:为什么要使用消息队列
三大亮点提前打卡世界人工智能大会
5年超长保质期:碳性电池40节19.9元大促
手机被大妈捡走男子狂追100多公里:从平顶山追到白云山
全球球精选!真矿泉 含锶矿物离子!峨眉山N30古岩矿泉水大促 1.24元/瓶
天天观焦点:15万以内大五座纯电 宝骏云朵内饰官图发布:值得友商一学
环球即时看!被污名化要还其清白 教授呼吁别把玩游戏当不务正业:人性需要释放
女生毕业删除90%同学被骂有病 都是塑料感情:无效社交越来越多
世界新资讯:实拍日本拉链式交替通行 还会双闪感谢后车 网友感叹素质真高
【世界播资讯】没人买!RTX4060发布近一周就跌破首发价 商家还在狂降价
视焦点讯!小米电视蝉联榜首:上半年出货量逼近400万台 今年第一或不保
研究报告:美国近一半自来水中含有“永久化学物质”
全球即时:读发布!设计与部署稳定的分布式系统(第2版)笔记20_实例层之代码
存款流向多渠道 固收类理财产品最受青睐_天天短讯
世界看点:【读财报】FOF基金透视:上半年超五成产品录得正收益 兴证全球基金规模、回报均居前
厄尔尼诺再现 农产品价格波动 各方期盼推出天气指数期货-快看
看热讯:中兴全球首发5G车地系统!地铁网速破2.1Gbps 全车看视频不卡
全球新消息丨存储行业拐点来了:SSD等要涨价 有厂商财报明确!
首发2999元!华为MatePad Air原野绿开售:首款144Hz高刷全面屏平板
今日看点:《碟中谍7》成就系列最佳
抑郁症有多可怕 看完让人不寒而栗:李玟等明星都因它离世
天天快播:国际原子能机构:未在扎波罗热核电站发现地雷或爆炸物痕迹
即时:iPhone的无线充电 特斯拉要用到车上了
苹果以旧换新突然涨价!iPhone、Mac又升值了 最高能抵2万元
李玟生命的最后时刻:中医母亲在她头顶扎针,求西医救女儿多一分钟 当前快播
学习C++这一篇就够了(基础篇) 每日速看
一天吃透Kafka面试八股文 全球报道
2023年年中总结_世界新资讯
天天热点!看完沉默:那些我们想买 却无法得手的半导体公司
天天滚动:千元续航怪兽!荣耀X50开启预售:1399元起
在民科吧里 我找到了“中华有史以来最接近神的人”
【全球速看料】你发现没?苹果从来不提什么虚拟现实、AI:只有华为学会了!
银河麒麟才是第一国产操作系统!连续12年无敌
上单奶妈出装 快来看看
环球关注:俄媒:中国新的对外关系法意味着什么?
环球观热点:22-数码管的动态显示
数年前患上抑郁症 轻生去世!李玟轻生当天还在给粉丝发语音 多名演艺界人士悼念|天天观天下
微博崩了!歌手李玟轻生去世 姐姐发声:数年前患上抑郁症
【后端面经-计算机基础】HTTP和TCP的区别-环球最资讯