MNN icon indicating copy to clipboard operation
MNN copied to clipboard

MNN在Android11环境下基于OpenCL运行报错

Open Small-Sagittarius opened this issue 1 year ago • 8 comments

demo工程代码

mInstance = MNNNetInstance.createFromFile(absolutePath)
LogUtil.e(TAG, "mInstance:[$mInstance]")
// create session with config
mSession = mInstance?.createSession(MNNNetInstance.Config().apply {
    forwardType = MNNForwardType.FORWARD_OPENCL.type
})
LogUtil.e(TAG, "mSession:[$mSession]")

// get input tensor
mInputTensor = mSession?.getInput()
LogUtil.e(TAG, "mInputTensor:[$mInputTensor]")

异常日志

2023-05-24 11:41:18.915 10551-11073 E/MainActivity: mInstance:[com.gxatek.cockpit.demo.mnn.MNNNetInstance@e4bf7fa]
2023-05-24 11:41:18.916 10551-11073 I/MNNJNI: The device support i8sdot:1, support fp16:1, support i8mm: 0
2023-05-24 11:41:18.930 10551-11073 E/Adreno-CB: <clGetPlatformIDs:2606>: Fatal: Failed to open libCB from libOpenCL
2023-05-24 11:41:18.930 10551-11073 I/MNNJNI: CL ERROR CODE : -30, info:getPlatform 
2023-05-24 11:41:18.930 10551-11073 I/MNNJNI: Can't Find type=3 backend, use 0 instead
2023-05-24 11:41:18.932 10551-11073 E/Adreno-CB: <clGetPlatformIDs:2606>: Fatal: Failed to open libCB from libOpenCL
2023-05-24 11:41:18.932 10551-11073 I/MNNJNI: CL ERROR CODE : -30, info:getPlatform 
2023-05-24 11:41:18.932 10551-11073 I/MNNJNI: Can't Find type=3 backend, use 0 instead
2023-05-24 11:41:18.947 10551-11073 E/MainActivity: mSession:[com.gxatek.cockpit.demo.mnn.MNNNetInstance$Session@142f1ab]
2023-05-24 11:41:18.948 10551-11073 E/MainActivity: mInputTensor:[com.gxatek.cockpit.demo.mnn.MNNNetInstance$Session$Tensor@4653008]

Small-Sagittarius avatar May 24 '23 09:05 Small-Sagittarius

E/Adreno-CB: clGetPlatformIDs:2606: Fatal: Failed to open libCB from libOpenCL

这个是系统的 opencl 库无效,具体是什么机器?

jxt1234 avatar May 26 '23 08:05 jxt1234

设备是车载OS定制系统,我有尝试手动导入外网下载的libOpenCL库至system/vendor/lib64下进行覆盖,但依旧提示上述错误

Small-Sagittarius avatar May 26 '23 09:05 Small-Sagittarius

@Small-Sagittarius 这个问题解决了吗

yiguanxian avatar Dec 01 '23 15:12 yiguanxian

这个问题在cpp的demo上我看是没问题的,感觉是java这一层哪里调用的问题

yiguanxian avatar Dec 05 '23 16:12 yiguanxian

这个问题在cpp的demo上我看是没问题的,感觉是java这一层哪里调用的问题

@yiguanxian 我猜测与车载使用的高通芯片有关,和安卓系统无关。我在高通的Adreno 640型号的GPU上运行就会遇到该问题,而在Adreno 610、Adreno 619和Adreno 690型号的GPU上运行就没有该问题了。Google上针对该现象也有其他型号的GPU遇到,如Adreno 615,附链接:https://developer.qualcomm.com/forum/qdn-forums/software/qualcomm-neural-processing-sdk/66730

Small-Sagittarius avatar Jan 02 '24 12:01 Small-Sagittarius

这个问题在cpp的demo上我看是没问题的,感觉是java这一层哪里调用的问题

可以参考上面的链接里的策略来绕过该问题,但我缺失相关的代码经验,所以无法推进该问题的解决。

Small-Sagittarius avatar Jan 02 '24 12:01 Small-Sagittarius

可以尝试使用vulkan来调用GPU

yiguanxian avatar Mar 02 '24 07:03 yiguanxian

Marking as stale. No activity in 60 days.

github-actions[bot] avatar May 01 '24 09:05 github-actions[bot]