Compute library compile

来源:互联网 发布:手机淘宝我的个人尺码 编辑:程序博客网 时间:2024/06/08 04:34

Android(NDK) build

gsc@X250:~/Downloads$ cd /opt/android-ndk-r14b/gsc@X250:/opt/android-ndk-r14b$ lsbuild         ndk-build    ndk-gdb    ndk-which  prebuilt         shader-tools  source.properties  sysrootCHANGELOG.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 gnustlWARNING:__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 gnustlWARNING:__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=armv7ascons: 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 OpenCLCXX=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_convolutionadb shell /data/local/tmp/cl_convolution
原创粉丝点击