MNN icon indicating copy to clipboard operation
MNN copied to clipboard

create session failed when forwardType is Vulkan with version 3.1.0 release spend 10-15 seconds after create failed with that type

Open balefashidu opened this issue 8 months ago • 6 comments

你好我这边发现在最新的 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版本没有这个问题

balefashidu avatar Apr 23 '25 06:04 balefashidu

在3.0.0 版本上没有发现这个问题 create session 可以正常工作 (至少不会 耗时与报错)

balefashidu avatar Apr 23 '25 06:04 balefashidu

numberThread 设成 1 试下(关闭 autotuning)

jxt1234 avatar Apr 23 '25 07:04 jxt1234

numberThread 设成 1 试下(关闭 autotuning)

我们为了维持之前的配置不懂所以回滚到了3.0.0没有出现这个问题请问这个是什么原因导致的?3.0.0整体更可靠么?vulkan api的表现会比之前版本更好么比如2.6.0.我们此次更换Forwardtype的初衷是希望能更快的推理&&或者更小的内存抖动请问我是否有更好的选择还是需要全部使用cpu? 我们的应用场景是复杂的包含了音视频处理、编解码、rtc业务 绑定 再加上模型使用整体的cpu负载、内存使用、电池波动都是很大的。发热也比较严重

balefashidu avatar Apr 25 '25 07:04 balefashidu

  1. 这个原因是 3.1 对 vulkan 后端做了优化,引入 autotuning 以提升性能,对应地增加了初始化时间,可以预先生成 cache file 来降低后续的初始化时间。此外,如果导致了 crash 可以附上模型我们看一下。
  2. 3.0.0 相比 2.6.0 vulkan 应该是修了一些 bug ,没做性能优化。
  3. 如果有发热等问题,建议都改成 numThread = 1 ,CPU 也不用多线程

jxt1234 avatar Apr 27 '25 08:04 jxt1234

  1. 这个原因是 3.1 对 vulkan 后端做了优化,引入 autotuning 以提升性能,对应地增加了初始化时间,可以预先生成 cache file 来降低后续的初始化时间。此外,如果导致了 crash 可以附上模型我们看一下。
  2. 3.0.0 相比 2.6.0 vulkan 应该是修了一些 bug ,没做性能优化。
  3. 如果有发热等问题,建议都改成 numThread = 1 ,CPU 也不用多线程

感谢耐心回复 请问有比较完整的 mnn api文档么本人需要学习c++和python的mnn调用

balefashidu avatar May 16 '25 13:05 balefashidu

这里还有一个 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文件里是有的 请问这是什么原因造成的

balefashidu avatar May 16 '25 14:05 balefashidu

  1. 这个原因是 3.1 对 vulkan 后端做了优化,引入 autotuning 以提升性能,对应地增加了初始化时间,可以预先生成 cache file 来降低后续的初始化时间。此外,如果导致了 crash 可以附上模型我们看一下。
  2. 3.0.0 相比 2.6.0 vulkan 应该是修了一些 bug ,没做性能优化。
  3. 如果有发热等问题,建议都改成 numThread = 1 ,CPU 也不用多线程

感谢耐心回复 请问有比较完整的 mnn api文档么本人需要学习c++和python的mnn调用

可以参考最近加的一个文档:https://mnn-docs.readthedocs.io/en/latest/start/python.html#id6

jxt1234 avatar Jul 08 '25 09:07 jxt1234

这里还有一个 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 不兼容导致的

jxt1234 avatar Jul 08 '25 09:07 jxt1234

Marking as stale. No activity in 60 days.

github-actions[bot] avatar Sep 06 '25 09:09 github-actions[bot]