MegEngine / MegCC

MegCC是一个运行时超轻量,高效,移植简单的深度学习模型编译器
Apache License 2.0
474 stars 56 forks source link

MegCC中添加Benchmarker #9

Closed chenqy4933 closed 1 year ago

chenqy4933 commented 2 years ago

MegCC的一大优势是可以获得极致的最小二进制文件大小,和一定的性能优势,但目前整个工程中只有一个yolox的example,缺少一个Benchmarker来测试一些传统模型的使用MegCC运行之后的性能。

TODO:添加一个对经典模型进行Benchmarker的工具,经典模型包括:

xxr3376 commented 2 years ago

typo: Benchmarker -> Benchmark

zchrissirhcz commented 1 year ago

XiaoMI 11 运行耗时

按 MegCC 的 yolox_example 在小米11上运行了推理, 未做代码修改, 单张图耗时是 574 ms 的样子(感觉不太符合预期, 印象中 yolox 很快)

build_arm64/install/bin/yolox_test: 1 file pushed, 0 skipped. 200.9 MB/s (4556688 bytes in 0.022s)
dog.jpg: 1 file pushed, 0 skipped. 106.7 MB/s (163759 bytes in 0.001s)
kernel_yolox_s_arm/yolox_s.tiny: 1 file pushed, 0 skipped. 41.7 MB/s (36007184 bytes in 0.824s)
1 = 0.92085 at 109.87 124.95 473.38 x 337.73
16 = 0.86038 at 130.45 202.16 190.11 x 345.95
7 = 0.62931 at 467.53 74.00 228.78 x 96.66
every iter use time: 574.460999ms
save output to my_out.jpg

对于 MegEngine 不太熟悉, 跑了一下 ncnn example 里的 yolox 推理, 在同一台手机上大概是 88ms:

# https://github.com/Tencent/ncnn/blob/master/examples/yolox.cpp
ncnn-yolox: took  88.977 ms
1 = 0.94841 at 125.62 119.55 434.34 x 302.63
16 = 0.91150 at 133.94 222.37 176.22 x 325.38
7 = 0.63394 at 464.03 76.89 228.93 x 94.88
2 = 0.55018 at 466.44 73.77 224.07 x 100.70
58 = 0.42597 at 683.98 110.99 32.67 x 42.73
imshow save image to image.png
waitKey stub
chenqy4933 commented 1 year ago

@zchrissirhcz 可能模型不一样,我们用的是yolox的大模型