MegEngine 使用小技巧:如何做 MegCC 的模型性能评测|当前快播
2023-06-14 18:33:04 博客园

MegCC是一个深度学习模型编译器,具有以下特点:

MegCC 支持了基础的 Benchmark 模块用于测试各类模型的推理性能,获取推理时各个 Kernel 的性能数据,分析模型性能瓶颈。


(资料图片仅供参考)

如何使用 MegCC 基准测试

介绍

MegCC Benchmark 是一个简单的工具,可以在 MegCC 中获取不同模型的基准测试结果,文件结构如下所示:

├── clean.sh├── CMakeLists.txt├── main.cpp├── model│   ├── model_arm.json│   ├── model_riscv.json│   ├── model_x86.json│   └── request.txt├── python│   ├── example.py│   ├── format.sh│   └── src│       ├── benchmark.py│       └── models.py├── README.md├── src│   ├── benchmark.h│   ├── build_config.h.in│   ├── CCbenchmark.cpp│   ├── CCbenchmark.h│   ├── MGEbenchmark.cpp│   └── MGEbenchmark.h└── tools    ├── cc_analysis.py    └── inference_visual.py

在 src 中,它是一个 c++ 应用程序,用于在不同平台上运行基准测试结果。在 python 中,包含了模型转换,其他相关准备工作和基准测试示例,并给出了一些可用来分析基准测试结果工具脚本

支持模型

mobilenetv2、resnet18、efficientnetb0 shufflenetv2 vgg16

要求

mgeconvert > v.1.0.2onnx==1.11.0torch==1.10.0cmake >=3.15.2clangninjatorchvision==0.11.1`

mgeconvert 可以通过以下命令安装:

git clone https://github.com/MegEngine/mgeconvert.gitcd mgeconvertgit checkout masterpython3 -m pip install . --user --install-option="--targets=onnx"

获取模型并运行基准示例

cd megcc/benchmarkexport MEGCC_MGB_TO_TINYNN_PATH=python3  python/example.py

example 会从 torchvision 下载对应模型并转换为 onnx, onnx 模型通过 mgeconvert 以及mgb-to-tiynn 转换为 megcc 模型

如果你想在其他平台上运行,请参考示例在 BenchmarkRunner 中添加你新的 run_platform_xxx 函数,示例给出了一个ssh远程设备测试模板

分析megcc日志

example.py 运行结束后,会在 benchmark 目录下生成 output 目录,里面包含了模型的推理 log 以及 profile log,这些 log 可以用相关分析脚本可视化进行进一步的分析利用

生成的 log 示例如下:

output/├── megcc-x86-efficientnetb0-0-log-local.txt├── megcc-x86-efficientnetb0-3-log-local.txt├── megcc-x86-mobilenetv2-0-log-local.txt├── megcc-x86-mobilenetv2-3-log-local.txt├── megcc-x86-resnet18-0-log-local.txt├── megcc-x86-resnet18-3-log-local.txt├── megcc-x86-resnet50-0-log-local.txt├── megcc-x86-resnet50-3-log-local.txt├── megcc-x86-shufflenetv2-0-log-local.txt├── megcc-x86-shufflenetv2-3-log-local.txt├── megcc-x86-vgg11-0-log-local.txt├── megcc-x86-vgg11-3-log-local.txt├── megcc-x86-vgg16-0-log-local.txt└── megcc-x86-vgg16-3-log-local.txt

0 代表只测速的 log, 3 代表 profile 的 log

注意:需安装 matplotlib

可视化不同模型的推理结果

benchmark 下tools/inference_visual.py工具可以用于分析测速日志,获取各个模型推理的性能对照,用法如下:

python3 tools/inference_visual.py output -o figure_dir 

运行完后会在 figure_dir 目录下生成如下所示的性能对照图:

可视化不同内核在不同模型中的分析结果

benchmark 下tools/cc_analysis.py工具可以用于分析profile日志,获取各个模型推理时前10个最耗时的kernel 耗时占比饼图,用法如下:

python3 tools/cc_analysis.py output -o figure_dir

运行完后相关饼图也会在 figure_dir 目录下生成, 示例如下:

更多 MegEngine 信息获取,您可以:查看文档、 深度学习框架 MegEngine 官网和 GitHub 项目,或加入 MegEngine 用户交流 QQ 群:1029741705

https://wiki.megvii-inc.com/pages/viewpage.action?pageId=444979800

热门推荐

文章排行

  1. 2023-06-14MegEngine 使用小技巧:如何做 MegCC 的模型性能评测|当前快播
  2. 2023-06-14牙齿酸敏感怎么处理_牙齿敏感的原因和处理方法 速讯
  3. 2023-06-14兰州市第一人民医院核心业务系统数据库运维项目成交公告
  4. 2023-06-14天安门前面的柱子的简笔画_天安门前面的柱子叫什么
  5. 2023-06-14每日热议!买房时 开发商说的送车位 现在变相要收费。 业主怎么维权 好像房管局也
  6. 2023-06-14凤县:党员干部下沉地头抢收抢晒保归仓 速递
  7. 2023-06-14焦点信息:AMD发新品股价下跌、英伟达股价上扬,国内芯片厂商如何突围?
  8. 2023-06-14港股异动 | 创科实业(00669)再涨超4% 公司此前反驳沽空报告 大和称不会影响与家得宝合作关系
  9. 2023-06-14世界今头条!e5300超频法教程(e5300 超频)
  10. 2023-06-14家长拜托老师多费心的句子
  11. 2023-06-14“大反攻”!两大万亿赛道火了 CPO概念股持续走强
  12. 2023-06-14江苏检验检疫局纺织工业产品检测中心_关于江苏检验检疫局纺织工业产品检测中心简述 天天新动态
  13. 2023-06-14今日热门!农村房屋拆迁纠纷如何处理
  14. 2023-06-14半月谈 | 驻村“战术板”,写满振兴策-每日快播
  15. 2023-06-14【全球报资讯】奇正藏药:6月13日融资买入259.07万元,融资融券余额1.07亿元
  16. 2023-06-14生鲜水果卖爆,瑞幸竟成咖啡赛道最大黑马?
  17. 2023-06-14P站进不去是什么情况_p站进不去
  18. 2023-06-14唐小幽(唐小悠)
  19. 2023-06-14明天,北方高温范围将达到近期最大_即时看
  20. 2023-06-14尼日利亚中部发生沉船事故至少103人死亡_天天即时看