编译的安卓的OpenCL版本的so放到手机上运行加载失败
Created by: meteorasd555
之前用的paddlemobile安卓的CPU版本so集成到项目中,现想使用GPU版本,发生了异常:
我的集成步骤如下: 参照 https://github.com/PaddlePaddle/paddle-mobile/blob/develop/doc/development_android_GPU.md 1:获取最新develop版本 (Commits on Mar 22, 2019) 1:打开GPU_CL宏,以及WITH_LOGGING帮助调试 2:build.sh打开 使用PLATFORM="arm-v8a" 3:修改src/io/jni/paddle_mobile_jni.cpp开头<paddle_mobile::PaddleMobile<paddle_mobile::CPU> -> <paddle_mobile::PaddleMobile<paddle_mobile::GPU_CL> 4: 编译通过拿到build/release目录产出的amrv8 下的libpaddle-mobile.so 5:将so和PML.java放入一个android工程,将model和param放入sd卡目录中 6:调用PML.loadCombined(String modelPath, String paramPath)报错,报错内容如下:
2019-03-26 14:46:15.303 19573-19643/com.baidu.ai.edge.demo I/paddle_mobile LOG built on Mar 26 2019 14:23:28: loadCombined invoked
2019-03-26 14:46:18.883 19573-19643/com.baidu.ai.edge.demo E/paddle_mobile LOG built on Mar 26 2019 14:23:28: jni got an PaddleMobileException! paddle mobile C++ Exception:
| Custom Exception
| [in file] : /Volumes/Teclast_S20/github/paddle-mobile/paddle-mobile/src/framework/cl/cl_image.h
| [on line] : 218
| [detail] : create image 2d error
PS:恢复第3步中的<paddle_mobile::PaddleMobile<paddle_mobile::CPU>能成功loadCombined,并且predictImage也调用成功。