ncnn icon indicating copy to clipboard operation
ncnn copied to clipboard

相同环境下,用20220420版本,在安卓端(arm64)推理结果全部异常,但用20210720及往下版本是正常的

Open 865315255 opened this issue 3 years ago • 8 comments

20220420版本的cmake log如下:

-- CMAKE_TOOLCHAIN_FILE = /Users/linjunwu01/Library/Android/sdk/ndk/16.1.4479499/build/cmake/android.toolchain.cmake -- CMAKE_INSTALL_PREFIX = /Users/linjunwu01/baidu/iov-sz/perception/build/android-arm64-v8a-Release/install -- NCNN_VERSION_STRING = 1.0.20220705 NCNN_DISABLE_RTTI=OFF NCNN_DISABLE_EXCEPTION=OFF -- Performing Test NCNN_COMPILER_SUPPORT_ARM82_FP16 -- Performing Test NCNN_COMPILER_SUPPORT_ARM82_FP16 - Success -- Performing Test NCNN_COMPILER_SUPPORT_ARM82_FP16_DOTPROD -- Performing Test NCNN_COMPILER_SUPPORT_ARM82_FP16_DOTPROD - Failed CMake Warning at third_party/ncnn/CMakeLists.txt:165 (message): The compiler does not support armv8.2 dotprod. NCNN_ARM82DOT will be OFF. NCNN_ARM82=ON -- Target arch: arm

20210720版本的cmake log如下: -- CMAKE_TOOLCHAIN_FILE = /Users/linjunwu01/Library/Android/sdk/ndk/16.1.4479499/build/cmake/android.toolchain.cmake -- CMAKE_INSTALL_PREFIX = /Users/linjunwu01/baidu/iov-sz/perception/build/android-arm64-v8a-Release/install -- NCNN_VERSION_STRING = 1.0.20220705 NCNN_DISABLE_RTTI=OFF NCNN_DISABLE_EXCEPTION=OFF -- Performing Test NCNN_COMPILER_SUPPORT_ARM82_FP16 -- Performing Test NCNN_COMPILER_SUPPORT_ARM82_FP16 - Success -- Performing Test NCNN_COMPILER_SUPPORT_ARM82_FP16_DOTPROD -- Performing Test NCNN_COMPILER_SUPPORT_ARM82_FP16_DOTPROD - Failed CMake Warning at third_party/ncnn/CMakeLists.txt:144 (message): The compiler does not support armv8.2 dotprod. NCNN_ARM82DOT will be OFF. NCNN_ARM82=ON -- Target arch: arm

两个版本的cmake开关几乎一致,用的模型是nanodet,但在安卓端推理时,20220420版本结果错乱,有可能是什么原因呢? NDK版本是16,比较低,有没影响? nanodet_model_best.param.zip

865315255 avatar Jul 05 '22 08:07 865315255

ndk r16 应该不支持 armv8.2 fp16,建议更新新版的ndk,或者 -DNCNN_ARM82=OFF 编译

nihui avatar Jul 05 '22 08:07 nihui

ndk r16 应该不支持 armv8.2 fp16,建议更新新版的ndk,或者 -DNCNN_ARM82=OFF 编译

项目没法升级NDK,我试试关掉NCNN_ARM82先,这样推理速度会下降吗?

865315255 avatar Jul 05 '22 09:07 865315255

ndk r16 应该不支持 armv8.2 fp16,建议更新新版的ndk,或者 -DNCNN_ARM82=OFF 编译 NCNN_ARM82关掉以后结果还是错乱的,还有其他方案吗?

865315255 avatar Jul 05 '22 09:07 865315255

另外建议重新用新版NCNN导出一下模型,因为中间有过一次不兼容的算子升级

wzyforgit avatar Jul 06 '22 00:07 wzyforgit

另外建议重新用新版NCNN导出一下模型,因为中间有过一次不兼容的算子升级

用最新的试了下,检测结果还是异常,还有其他办法吗

865315255 avatar Jul 06 '22 09:07 865315255

另外建议重新用新版NCNN导出一下模型,因为中间有过一次不兼容的算子升级

用最新的试了下,检测结果还是异常,还有其他办法吗

-DNCNN_OPENMP=OFF 编译试试?我发现 ndk-r16b 的 libomp 底层实现有问题。。。得想办法绕过编译器bug了。。

nihui avatar Jul 06 '22 14:07 nihui

另外建议重新用新版NCNN导出一下模型,因为中间有过一次不兼容的算子升级

用最新的试了下,检测结果还是异常,还有其他办法吗

-DNCNN_OPENMP=OFF 编译试试?我发现 ndk-r16b 的 libomp 底层实现有问题。。。得想办法绕过编译器bug了。。

openmp一直是关的

865315255 avatar Jul 07 '22 02:07 865315255

用最新的 git 版本 + ndk-r16b + 附件中的模型测试,armv7 armv8 在手机上效果都正常

nihui avatar Jul 12 '22 07:07 nihui