ncnn
ncnn copied to clipboard
相同环境下,用20220420版本,在安卓端(arm64)推理结果全部异常,但用20210720及往下版本是正常的
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
ndk r16 应该不支持 armv8.2 fp16,建议更新新版的ndk,或者 -DNCNN_ARM82=OFF 编译
ndk r16 应该不支持 armv8.2 fp16,建议更新新版的ndk,或者
-DNCNN_ARM82=OFF编译
项目没法升级NDK,我试试关掉NCNN_ARM82先,这样推理速度会下降吗?
ndk r16 应该不支持 armv8.2 fp16,建议更新新版的ndk,或者
-DNCNN_ARM82=OFF编译 NCNN_ARM82关掉以后结果还是错乱的,还有其他方案吗?
另外建议重新用新版NCNN导出一下模型,因为中间有过一次不兼容的算子升级
另外建议重新用新版NCNN导出一下模型,因为中间有过一次不兼容的算子升级
用最新的试了下,检测结果还是异常,还有其他办法吗
另外建议重新用新版NCNN导出一下模型,因为中间有过一次不兼容的算子升级
用最新的试了下,检测结果还是异常,还有其他办法吗
-DNCNN_OPENMP=OFF 编译试试?我发现 ndk-r16b 的 libomp 底层实现有问题。。。得想办法绕过编译器bug了。。
另外建议重新用新版NCNN导出一下模型,因为中间有过一次不兼容的算子升级
用最新的试了下,检测结果还是异常,还有其他办法吗
-DNCNN_OPENMP=OFF编译试试?我发现 ndk-r16b 的 libomp 底层实现有问题。。。得想办法绕过编译器bug了。。
openmp一直是关的
用最新的 git 版本 + ndk-r16b + 附件中的模型测试,armv7 armv8 在手机上效果都正常