Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

benchmark issue #90

Open
yy6163773 opened this issue Jan 26, 2022 · 8 comments
Open

benchmark issue #90

yy6163773 opened this issue Jan 26, 2022 · 8 comments

Comments

@yy6163773
Copy link

对bolt进行了benchmark测试,install 阶段也关闭了 profile功能,只看模型总耗时,发现达不到文章里提到的性能,不知道是我哪里用错了,请帮忙看一下
如图所示
WXWorkCapture_16431661593291
文章里提到对squeezent1.1在高通888 half情况下耗时为3.949ms,我在小米11 高通888实测fp16case耗时为avg_time:7.443091ms/data;
为了验证,我实际测试了一下 https://github.com/huawei-noah/bolt/blob/master/docs/USER_HANDBOOK.md中提到的 resnet50这个网络,利用X2BOLT工具,我的命令如下./benchmark -a GPU -w 10 -l 10 -m ResNet-50_f16.bolt
WXWorkCapture_16431838464497
高通888fp16耗时情况为
Benchmark Result:
Output Tensor prob desc: dt:DT_F16 memFormat:DF_NCHW stride(1000,1,1) offset(0,0,0) data: 0.000166 0.000330 0.000063 0.000110 0.000000 0.000508 0.000000 0.000000 sum: 0.992770
total_time:305.839355ms(loops=10)
avg_time:30.583936ms/data
min_time:29.903076ms/data
max_time:31.020020ms/data
请问一下,这里的平均耗时30.58ms性能是否正常,能否share一下 resnet50的性能耗时情况,或者提供一下resnet50_v2的模型文件(官方文章为25ms左右),交叉验证一下。

@yunfanxiao
Copy link
Contributor

可尝试使用taskset绑定测试程序到CPU大核调度,对小模型CPU调度和驱动开销无法被GPU kernel耗时掩盖,影响会比较明显

@peyer
Copy link

peyer commented Jan 28, 2022

@yunfanxiao 我也是在小米11上,测试了高通官方最新的adreno_opencl_ml_sdk_v2.1.zip,小米11上调用clQueryMLInterfaceVersionsQCOM接口会返回CL_OUT_OF_HOST_MEMORY的报错,但是高通官方说660以上是支持cl_qcom_ml_ops扩展的,请教一下bolt是怎么测试出adreno_opencl_ml_sdk的性能的

@yunfanxiao
Copy link
Contributor

bolt目前没有集成qcom的ml sdk,这个问题可以去qcom官方问下

@peyer
Copy link

peyer commented Jan 30, 2022

嗷嗷,我也是看到知乎上bolt的一个大佬提及qcom的adreno_opencl_ml_sdk实测性能可以达到1.5T,所以想请教怎么解决
image

@chillingche
Copy link

嗷嗷,我也是看到知乎上bolt的一个大佬提及qcom的adreno_opencl_ml_sdk实测性能可以达到1.5T,所以想请教怎么解决 image

qcom adreno clml sdk接口虽然集成在libOpenCL.so,但是它依赖的vendor库默认没有开放权限给第三方app,第三方开发者调用时会返回-6,相应的,logcat中也会发现selinux audit日志。如果有root过的888或者8Gen1设备,可以setenforce 0测试。

@peyer
Copy link

peyer commented Feb 7, 2022

@chillingche 多谢,得找个root的设备试试;权限问题的话是手机厂商没有开放是吧,虽然高通开放了

@yy6163773
Copy link
Author

yy6163773 commented Feb 9, 2022

可尝试使用taskset绑定测试程序到CPU大核调度,对小模型CPU调度和驱动开销无法被GPU kernel耗时掩盖,影响会比较明显

@yunfanxiao 在小米11 888上进行cpu绑定尝试 taskset -a 70 ./benchmark -a GPU -w 10 -l 10 -m ResNet-50_f16.bolt 这样平均耗时从30ms 降低到27ms,可是这与文章里的 25ms还有一定的差距,请问还有什么是需要注意的

@LeiDanw
Copy link

LeiDanw commented Apr 22, 2022

@peyer 我也遇到了一样的问题,请问下你root手机了吗?这个问题解决了吗

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants