您的位置:首页 > 运维架构

Compute library compile

2017-05-18 10:16 831 查看

Android(NDK) build

gsc@X250:~/Downloads$ cd /opt/android-ndk-r14b/
gsc@X250:/opt/android-ndk-r14b$ ls
build         ndk-build    ndk-gdb    ndk-which  prebuilt         shader-tools  source.properties  sysroot
CHANGELOG.md  ndk-depends  ndk-stack  platforms  python-packages  simpleperf    sources            toolchains


gsc@X250:/opt/android-ndk-r14b/build/tools$ sudo ./make_standalone_toolchain.py --arch arm --install-dir /opt/arm-linux-androideabi-4.9 --stl gnustl
WARNING:__main__:Defaulting to target API 9 (minimum supported target for arm)

gsc@X250:/opt/android-ndk-r14b/build/tools$ sudo ./make_standalone_toolchain.py --arch arm64 --install-dir /opt/aarch64-linux-androideabi-4.9 --stl gnustl
WARNING:__main__:Defaulting to target API 21 (minimum supported target for arm64)


gsc@X250:~/ComputeLibrary$ CXX=clang++ CC=clang scons Werror=1 -j8 debug=1 neon=1 opencl=0 os=android arch=armv7a
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...


question

/opt/arm-linux-androideabi-4.9/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld: error: cannot find -lOpenCL


This is because the library is platform dependent, so for example if we want to use it in one of qualcomm platform.

gsc@X250:/media/gsc//8074_XXX$ find ./ -name *OpenCL.so
./ap/out/target/product/msm8974/symbols/system/vendor/lib/libOpenCL.so
./ap/out/target/product/msm8974/system/vendor/lib/libOpenCL.so
./ap/out/target/product/msm8974/obj/SHARED_LIBRARIES/libOpenCL_intermediates/PACKED/libOpenCL.so
./ap/out/target/product/msm8974/obj/SHARED_LIBRARIES/libOpenCL_intermediates/LINKED/libOpenCL.so
./ap/out/target/product/msm8974/obj/lib/libOpenCL.so


we just copy and compile it

cp ./ap/out/target/product/msm8974/system/vendor/lib/libOpenCL.so ~/ComputeLibrary/build/arm_compute/
##support both neon and OpenCL
CXX=clang++ CC=clang scons Werror=1 -j8 debug=1 neon=1 opencl=1 os=android arch=armv7a




test

push 32-bit system files

adb push neon_convolution /data/local/tmp/
adb push cl_convolution /data/local/tmp/
adb shell chmod 777 -R /data/local/tmp/


run

adb shell /data/local/tmp/neon_convolution
adb shell /data/local/tmp/cl_convolution
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ARM ndk neon opencl