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
手机端高用vulkan失败,不是代码问题,也找到了库文件,也不是库文件的问题,ncnn可以正常使用vulkan #2841
Comments
|
非常感谢。 |
|
提示说 |
系统显示是有vulkan库的,版本是1.1.0,里面的接口函数大概340个,其中包含
|
@jxt1234
2.9.0版是否已经修复这个问题了呢? |
1、Linux下作实验,首先
MNN_SEP_BUILD=OFF
,将MNN_USE_SYSTEM_LIB=ON
时编译时提示找不到vulkan
;将MNN_USE_SYSTEM_LIB=OFF
时,创建runtime
时发现使用的是cpu
后端,在main函数里使用dlopen也还是不行。系统安装了libvulkan-dev后就能切换到vulkan后端了,但是耗比使用cpu,4个核多三倍,gpu是rtx2070。2、Arm64下,android自带了
libvulkan.so verion=1.1.0
(记得在哪里看到MNN使用的是更高级版本),运行时能找到系统的libvulkan.so在/system/lib64/
下,但创建runtime
时报出段错误,提示说vkGetDeviceQueue
函数调用出现问题。改用MNN_USE_SYSTEM_LIB=OFF
,MNN_SEP_BUILD=OFF
,执行时出错日志一模一样,还是去找库,还是找到了,还是这个函数调用出现段错误。3、linux下使用了多种测试工具(MNNV2Basic,testMNNFromOnnx,GetMNNInfo)测试了模型转换,运算效率。值得一提的是,测试的时候也会依赖libvulkan,平均耗时比使用时快了几倍,大约比cpu还快一倍,也就是比编译出来(执行前后自己添加了时间戳)快大约8~10倍,也许是库的版本是DEBUG版的原因吧。不知道哪里能看到gpu执行时不支持的算子列表,没这个心里不踏实。
4、反复读了FAQ以及一些Issues,感觉能用的方法都用了,不能确定所述含义的地放就遍历地试,结果还是没用上手机端的gpu。希望大神能不吝指教一二。
在此先表示感谢!
所以,到底怎么加载自带的vulkan,是复制到andoid并覆盖系统自带的libvulkan.so吗?哪里能确定所使用的模型中算子在所用后台上是否支持?当前arm上找到了vulkan却报错是因为版本太低还是硬件不支持呢?
The text was updated successfully, but these errors were encountered: