huawei-noah / bolt

Bolt is a deep learning library with high performance and heterogeneous flexibility.
https://huawei-noah.github.io/bolt/
MIT License
910 stars 158 forks source link

benchmark issue #90

Open yy6163773 opened 2 years ago

yy6163773 commented 2 years ago

对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 commented 2 years ago

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

peyer commented 2 years ago

@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 commented 2 years ago

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

peyer commented 2 years ago

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

chillingche commented 2 years ago

嗷嗷,我也是看到知乎上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 commented 2 years ago

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

yy6163773 commented 2 years ago

可尝试使用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 commented 2 years ago

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