首页 > 其他分享 >MegEngine 使用小技巧:如何做 MegCC 的模型性能评测

MegEngine 使用小技巧:如何做 MegCC 的模型性能评测

时间:2023-06-14 18:11:26浏览次数:48  
标签:log megcc x86 py MegCC MegEngine txt local 评测

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

  • 极轻量级运行时:只在二进制文件中保留所需的计算内核。例如,MobileNet v1 的81KB运行时间
  • 高性能:每个操作都经过专家精心优化
  • 便携:只生成计算代码,易于在 Linux、Android、TEE、BareMetal 上编译和使用
  • Low Memory Usage while Boot Instantly:模型优化和内存规划在编译时生成。获得最先进的内存使用率,并且在推理过程中不花费额外的 CPU

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.2
onnx==1.11.0
torch==1.10.0
cmake >=3.15.2
clang
ninja
torchvision==0.11.1`

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


git clone https://github.com/MegEngine/mgeconvert.git
cd mgeconvert
git checkout master
python3 -m pip install . --user --install-option="--targets=onnx"

获取模型并运行基准示例

cd megcc/benchmark
export MEGCC_MGB_TO_TINYNN_PATH=<your_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 目录下生成如下所示的性能对照图:

1.png

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

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

python3 tools/cc_analysis.py output -o figure_dir

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

2.png

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

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

标签:log,megcc,x86,py,MegCC,MegEngine,txt,local,评测
From: https://www.cnblogs.com/megengine/p/17481030.html

相关文章

  • 百度视频质量评测的实践之路
    视频编解码技术日新月异,新的编解码技术赋予视频业务新的应用场景和新的用户视听体验。同时,视频作为带宽消耗大户,如何在视听体验和视频带宽之间取得最优的平衡是一个永恒的话题。视频质量评测主要用来回答:体验是否改善、带宽是否合理等问题。然而,在实际中,受限于各种因素,视频质量评测......
  • hydro安装独立评测机
    因为暑假OJ会迎来大量用户注册使用,多评测机显得非常重要,如何安装多评测机就是我的燃眉之急。经过一番摸索,终于搞定了。参考文档1.在阿里云新购买一个服务器,在新服务器中输入以下命令一键安装.<(curlhttps://hydro.ac/setup.sh)--judge2.安装好后,进行评测设置。在目录~/.co......
  • 浪潮信息联合中国信通院发布《绿色算力白皮书》,推出业界首个服务器碳排放评测标准
    5月30日,浪潮信息“智算 开新局·创新机”全国巡展济南站开幕。会上,浪潮信息与中国信息通信研究院(以下简称中国信通院)联合发布了《绿色算力白皮书》(以下简称《白皮书》),对绿色算力的内涵和关键技术、政策背景、必要性、标准与评测方法、发展趋势和建议等予以全面阐释。这是业界首个......
  • MegEngine 使用小技巧:如何解读 MegCC 编译模型几个阶段 Pass 的作用
    MegCC 是一个真真实实的深度学习模型编译器,具备极其轻量的Runtime二进制体积,高性能,方便移植,极低内存使用以及快启动等核心特点。用户可在MLIR上进行计算图优化,内存规划,最后通过预先写好的code模版进行代码生成。MegCC中主要的PassMGBToKernelPass:这个Pass主要将MGB......
  • CleanMyMacX VS 腾讯柠檬,mac清理谁更谁更优秀?一次全面的对比评测
    本文参考资料:https://blog.csdn.net/weixin_55412152/article/details/130935370不是说macOS尽管用就可以了吗,怎么也需要清理?当然需要,只要是电脑系统,随着使用时间的变长,磁盘空间都会产生一些搞不清楚的、乱七八糟的东西。要是用户没有清理Mac电脑的需求,市场上也不会有那么多款Ma......
  • 战神CDN评测(十)
    在上一期我们评测了战神CDN的响应头配置功能战神CDN评测(九)现在我们评测它们的证书功能,点击下面的链接可以查看它们产品具体的文档。战神CDN-证书管理战神CDN产品提供的证书功能,通过配置证书,可以提高网站的安全性、提高网站的可信度,提高SEO排名,配置证书后用户可以通过https协议......
  • 战神CDN评测(十一)
    在上一期我们评测了战神CDN的响应头配置功能战神CDN评测(十)现在我们评测它们的证书功能,点击下面的链接可以查看它们产品具体的文档。战神CDN-HTTPS配置战神CDN产品提供的HTTPS功能,通过配置,可以提高网站的安全性、用户信任度和搜索引擎排名,符合合规要求,避免浏览器的安全警告,是一......
  • 战神CDN评测(九)
    在上一期我们评测了战神CDN的请求方式黑白名单功能战神CDN评测(八)现在我们评测它们的响应头配置功能,点击下面的链接可以查看它们产品具体的文档。战神CDN-响应头配置战神CDN产品提供的响应头配置功能,通过配置响应头信息,可以有效地控制浏览器对静态资源的缓存、安全性和性能优化,......
  • 《花雕学AI》语言+想象+人工智能=图像魔法:微软 Bing 图像魔法师的功能、价值和评测
    你有没有想过,如果你能够用语言来创造图像,那该有多么神奇和有趣?你有没有想过,如果你能够看到你想象中的图像,那该有多么震撼和美妙?现在,这一切都可以实现了,因为微软Bing图像魔法师来了!微软Bing图像魔法师是一款能够根据用户的描述生成图像的人工智能产品,它可以让你的语言变成视觉,......
  • linux最全网络监控命令梳理及评测
    linux最全网络监控命令梳理及评测文章目录linux最全网络监控命令梳理及评测1iptraf2nload3iftop4dstat5nethogs6bmon7更多工具列表8评测小结9参考链接1iptraf通过iptraf观察流量效果非常直观,如下所示是cenos安装的命令:yuminstalliptraf安装成功后,可以通过如下命令查......