create session failed when forwardType is Vulkan with version 3.1.0 release spend 10-15 seconds after create failed with that type
你好我这边发现在最新的 3.1.0 版本上 当选择 推 MNNNetInstance.Config 的 forwardType 为vulkan的时候 首次 初始化需要的时间大概要10-15s在之前的2.6版本中没有发现这个问题 我没有观测到任何错误日志 主要耗时发生在MNNNetInstance 的 createSession 方法 具体信息如下 app=5e7b1937167edd24050001f8&cp=gzip&cver=1735614866&de=1&os=android&sd=KgCBTyak7zL6wgBst6AC5Q&seq=17453865852499903&sver=1735614866&tm=1745386585&type=patracepv&um_sdk_ver=1.5.2&ver=2.11.0&sign=96f84a32ab7f21790af5f847beb0799b 2025-04-23 13:36:25.255 6562-6562 DATAN com.situvision.ergolife I # In so constructor, Datan Hello 2025-04-23 13:36:25.255 6562-6562 vulkan com.situvision.ergolife D searching for layers in '/data/app/~~Y_cB7Xc-u1IaQRKM3oyetw==/com.situvision.ergolife-bI5HHjPM50zc8GSoetJOwQ==/lib/arm64' 2025-04-23 13:36:25.255 6562-14802 efs.px.api com.situvision.ergolife I Upload file, url is https://errlog.umeng.com/perf_upload 2025-04-23 13:36:25.255 6562-6562 vulkan com.situvision.ergolife D searching for layers in '/data/app/~~Y_cB7Xc-u1IaQRKM3oyetw==/com.situvision.ergolife-bI5HHjPM50zc8GSoetJOwQ==/base.apk!/lib/arm64-v8a' 2025-04-23 13:36:25.256 6562-6562 linker com.situvision.ergolife E library "/system/lib64/libiGraphicsCore.huawei.so" ("/system/lib64/libiGraphicsCore.huawei.so") needed or dlopened by "/apex/com.android.art/lib64/libnativeloader.so" is not accessible for the namespace: [name="classloader-namespace", ld_library_paths="", default_library_paths="/data/app/~~Y_cB7Xc-u1IaQRKM3oyetw==/com.situvision.ergolife-bI5HHjPM50zc8GSoetJOwQ==/lib/arm64:/data/app/~~Y_cB7Xc-u1IaQRKM3oyetw==/com.situvision.ergolife-bI5HHjPM50zc8GSoetJOwQ==/base.apk!/lib/arm64-v8a", permitted_paths="/data:/mnt/expand:/data/data/com.situvision.ergolife"] 2025-04-23 13:36:25.256 6562-6562 vulkan com.situvision.ergolife E failed to load layer library '/system/lib64/libiGraphicsCore.huawei.so': dlopen failed: library "/system/lib64/libiGraphicsCore.huawei.so" needed or dlopened by "/apex/com.android.art/lib64/libnativeloader.so" is not accessible for the namespace "classloader-namespace" 2025-04-23 13:36:25.270 6562-6562 BASE com.situvision.ergolife W # SW CTX's size 144 2025-04-23 13:36:25.271 6562-6562 BASE com.situvision.ergolife W # del softq direct 2025-04-23 13:36:25.272 6562-6562 BASE com.situvision.ergolife W # FreeSoftQ 2025-04-23 13:36:25.272 6562-15019 BASE com.situvision.ergolife W # backend exit 2025-04-23 13:36:25.272 6562-6562 BASE com.situvision.ergolife W # del softq 2025-04-23 13:36:25.279 6562-6562 BASE com.situvision.ergolife W # SW CTX's size 144 2025-04-23 13:36:25.281 6562-6562 BASE com.situvision.ergol
section:global_head,kv,1.0,linebreak
ver:2.11.0
ps:com.situvision.ergolife
pid:6562
stime:1745386574216
type:patrace
pkg:com.situvision.ergolife
vcode:9
uid:2e3d2d60-b223-45a0-b08f-fc15645c3b06
wid:2e3d2d60-b223-45a0-b08f-fc15645c3b06
w_tm:1745386586
appid:5e7b1937167edd24050001f8
ctime:1745386586
sdk_ver:1.3.9.umeng
--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
section:device_info,kv,1.0,linebreak
fr:android
dsp_w:1260
rom:12
build_model:ALN-AL00
um_access:wifi
model:aln-al00
sdk:31
tzone:Asia/Shanghai
lang:zh
net:wifi
brand:huawei
dsp_h:2590
um_network_type:0
--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
section:custom_info,kv,1.0,linebreak
others_OS:harmony
um_app_carrier:
um_app_channel:dev
um_crash_sdk_version:1.5.2
um_umid_header:971d0730151add4c4da7985e86f5a032od
um_os:android
um_app_provider:_adhoc
um_app_puid:1234325
--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
section:custom_info,kv,1.0,linebreak
bserial:null
bsver:null
crver:2.1.155.umeng
--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
section:stack,text,1.0,linebreak
main 5 RUNNABLE
at com.situvision.openai.sdk.MNNNetNative.nativeCreateSession(Native Method)
at com.situvision.openai.sdk.MNNNetInstance.createSession(MNNNetInstance.java:158)
at com.situvision.openai.external.STBaseMnnHelper.<init>(STBaseMnnHelper.java:72)
at com.situvision.openai.external.STMnnLicenseHelper.<init>(STMnnLicenseHelper.java:47)
at com.situvision.openai.external.STMnnLicenseHelper.init(STMnnLicenseHelper.java:53)
at com.situvision.module_base.mnn.STOpenAiMnnHelperManager.initOtherHelper(STOpenAiMnnHelperManager.java:285)
at com.situvision.module_base.mnn.STOpenAiMnnHelperManager.access$200(STOpenAiMnnHelperManager.java:45)
at com.situvision.module_base.mnn.STOpenAiMnnHelperManager$1.onSuccess(STOpenAiMnnHelperManager.java:174)
at com.situvision.openai.external.STMnnClearlyHelper$$ExternalSyntheticLambda0.run(Unknown Source:2)
at android.os.Handler.handleCallback(Handler.java:966)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loopOnce(Looper.java:205)
at android.os.Looper.loop(Looper.java:293)
at android.app.ActivityThread.loopProcess(ActivityThread.java:9998)
at android.app.ActivityThread.main(ActivityThread.java:9987)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:586)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1240)
请问是需要在子线程操作么?之前的2.6.0版本没有这个问题
在3.0.0 版本上没有发现这个问题 create session 可以正常工作 (至少不会 耗时与报错)
numberThread 设成 1 试下(关闭 autotuning)
numberThread 设成 1 试下(关闭 autotuning)
我们为了维持之前的配置不懂所以回滚到了3.0.0没有出现这个问题请问这个是什么原因导致的?3.0.0整体更可靠么?vulkan api的表现会比之前版本更好么比如2.6.0.我们此次更换Forwardtype的初衷是希望能更快的推理&&或者更小的内存抖动请问我是否有更好的选择还是需要全部使用cpu? 我们的应用场景是复杂的包含了音视频处理、编解码、rtc业务 绑定 再加上模型使用整体的cpu负载、内存使用、电池波动都是很大的。发热也比较严重
- 这个原因是 3.1 对 vulkan 后端做了优化,引入 autotuning 以提升性能,对应地增加了初始化时间,可以预先生成 cache file 来降低后续的初始化时间。此外,如果导致了 crash 可以附上模型我们看一下。
- 3.0.0 相比 2.6.0 vulkan 应该是修了一些 bug ,没做性能优化。
- 如果有发热等问题,建议都改成 numThread = 1 ,CPU 也不用多线程
- 这个原因是 3.1 对 vulkan 后端做了优化,引入 autotuning 以提升性能,对应地增加了初始化时间,可以预先生成 cache file 来降低后续的初始化时间。此外,如果导致了 crash 可以附上模型我们看一下。
- 3.0.0 相比 2.6.0 vulkan 应该是修了一些 bug ,没做性能优化。
- 如果有发热等问题,建议都改成 numThread = 1 ,CPU 也不用多线程
感谢耐心回复 请问有比较完整的 mnn api文档么本人需要学习c++和python的mnn调用
这里还有一个 share库兼容的问题 更换了 咱们的库以后 我这边初始化其他 SDK报错
2025-05-16 22:11:11.001 17553-17641 System.err com.situvision.ergolife W android.content.res.Resources$NotFoundException: String resource ID #0x0 2025-05-16 22:11:19.117 17127-17127 QarthLog com.situvision.ergolife I [PatchStore] createDisableExceptionQarthFile 2025-05-16 22:11:19.120 17127-17127 AndroidRuntime com.situvision.ergolife E FATAL EXCEPTION: main Process: com.situvision.ergolife, PID: 17127 java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "_Unwind_Resume" referenced by 但是实际上这个方法我看在.so文件里是有的 请问这是什么原因造成的
- 这个原因是 3.1 对 vulkan 后端做了优化,引入 autotuning 以提升性能,对应地增加了初始化时间,可以预先生成 cache file 来降低后续的初始化时间。此外,如果导致了 crash 可以附上模型我们看一下。
- 3.0.0 相比 2.6.0 vulkan 应该是修了一些 bug ,没做性能优化。
- 如果有发热等问题,建议都改成 numThread = 1 ,CPU 也不用多线程
感谢耐心回复 请问有比较完整的 mnn api文档么本人需要学习c++和python的mnn调用
可以参考最近加的一个文档:https://mnn-docs.readthedocs.io/en/latest/start/python.html#id6
这里还有一个 share库兼容的问题 更换了 咱们的库以后 我这边初始化其他 SDK报错
2025-05-16 22:11:11.001 17553-17641 System.err com.situvision.ergolife W android.content.res.Resources$NotFoundException: String resource ID #0x0 2025-05-16 22:11:19.117 17127-17127 QarthLog com.situvision.ergolife I [PatchStore] createDisableExceptionQarthFile 2025-05-16 22:11:19.120 17127-17127 AndroidRuntime com.situvision.ergolife E FATAL EXCEPTION: main Process: com.situvision.ergolife, PID: 17127 java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "_Unwind_Resume" referenced by 但是实际上这个方法我看在.so文件里是有的 请问这是什么原因造成的
看着是 c++std 不兼容导致的
Marking as stale. No activity in 60 days.