From 4521ecf82f4ea474e1e9afb337cb2fbfacb92ef8 Mon Sep 17 00:00:00 2001 From: yejianwu Date: Thu, 19 Jul 2018 17:15:00 +0800 Subject: [PATCH] update generic library outputs and android demo --- docs/user_guide/basic_usage.rst | 7 +++++++ mace/examples/android/build.sh | 25 +++++++++++++++++++------ tools/build-standalone-lib.sh | 33 +++++++++++++++++++++------------ 3 files changed, 47 insertions(+), 18 deletions(-) diff --git a/docs/user_guide/basic_usage.rst b/docs/user_guide/basic_usage.rst index 84df881f..3da9126b 100644 --- a/docs/user_guide/basic_usage.rst +++ b/docs/user_guide/basic_usage.rst @@ -47,6 +47,13 @@ Here we use the mobilenet-v2 model as an example. bash tools/build-standalone-lib.sh + .. note:: + + - Libraries in ``builds/lib/armeabi-v7a/cpu_gpu/`` means it can run on ``cpu`` or ``gpu`` devices. + + - The results in ``builds/lib/armeabi-v7a/cpu_gpu_dsp/`` need HVX supported. + + 4. Convert the pre-trained mobilenet-v2 model to MACE format model. .. code:: sh diff --git a/mace/examples/android/build.sh b/mace/examples/android/build.sh index 46a6e4c2..1cfb6129 100755 --- a/mace/examples/android/build.sh +++ b/mace/examples/android/build.sh @@ -4,13 +4,26 @@ set -e -u -o pipefail pushd ../../../ -python tools/converter.py convert --config=mace/examples/android/mobilenet.yml -cp -rf builds/mobilenet/include mace/examples/android/macelibrary/src/main/cpp/ -cp -rf builds/mobilenet/model mace/examples/android/macelibrary/src/main/cpp/ +TARGET_ABI=arm64-v8a +LIBRARY_DIR=mace/examples/android/macelibrary/src/main/cpp/ +INCLUDE_DIR=$LIBRARY_DIR/include/mace/public/ +LIBMACE_DIR=$LIBRARY_DIR/lib/$TARGET_ABI/ -bash tools/build-standalone-lib.sh -cp -rf builds/include mace/examples/android/macelibrary/src/main/cpp/ -cp -rf builds/lib mace/examples/android/macelibrary/src/main/cpp/ +rm -rf $LIBRARY_DIR/include/ +mkdir -p $INCLUDE_DIR + +rm -rf $LIBRARY_DIR/lib/ +mkdir -p $LIBMACE_DIR + +rm -rf $LIBRARY_DIR/model/ + +python tools/converter.py convert --config=mace/examples/android/mobilenet.yml --target_abis=$TARGET_ABI +cp -rf builds/mobilenet/include/mace/public/*.h $INCLUDE_DIR +cp -rf builds/mobilenet/model $LIBRARY_DIR + +bazel build --config android --config optimization mace/libmace:libmace_static --define neon=true --define openmp=true --define opencl=true --cpu=$TARGET_ABI +cp -rf mace/public/*.h $INCLUDE_DIR +cp -rf bazel-genfiles/mace/libmace/libmace.a $LIBMACE_DIR popd diff --git a/tools/build-standalone-lib.sh b/tools/build-standalone-lib.sh index 2c2b739c..59f0b8d8 100755 --- a/tools/build-standalone-lib.sh +++ b/tools/build-standalone-lib.sh @@ -13,23 +13,28 @@ cp mace/public/*.h $INCLUDE_DIR/ # make directories rm -rf $LIB_DIR/armeabi-v7a -mkdir -p $LIB_DIR/armeabi-v7a +mkdir -p $LIB_DIR/armeabi-v7a/cpu_gpu_dsp +mkdir -p $LIB_DIR/armeabi-v7a/cpu_gpu rm -rf $LIB_DIR/arm64-v8a -mkdir -p $LIB_DIR/arm64-v8a +mkdir -p $LIB_DIR/arm64-v8a/cpu_gpu rm -rf $LIB_DIR/linux-x86-64 mkdir -p $LIB_DIR/linux-x86-64 # build shared libraries -echo "build shared lib for armeabi-v7a" +echo "build shared lib for armeabi-v7a + cpu_gpu_dsp" bazel build --config android --config optimization mace/libmace:libmace_dynamic --define neon=true --define openmp=true --define opencl=true --define hexagon=true --cpu=armeabi-v7a -cp bazel-bin/mace/libmace/libmace.so $LIB_DIR/armeabi-v7a/ -cp third_party/nnlib/*so $LIB_DIR/armeabi-v7a/ +cp bazel-bin/mace/libmace/libmace.so $LIB_DIR/armeabi-v7a/cpu_gpu_dsp/ +cp third_party/nnlib/*so $LIB_DIR/armeabi-v7a/cpu_gpu_dsp/ -echo "build shared lib for arm64-v8a" +echo "build shared lib for armeabi-v7a + cpu_gpu" +bazel build --config android --config optimization mace/libmace:libmace_dynamic --define neon=true --define openmp=true --define opencl=true --cpu=armeabi-v7a +cp bazel-bin/mace/libmace/libmace.so $LIB_DIR/armeabi-v7a/cpu_gpu/ + +echo "build shared lib for arm64-v8a + cpu_gpu" bazel build --config android --config optimization mace/libmace:libmace_dynamic --define neon=true --define openmp=true --define opencl=true --cpu=arm64-v8a -cp bazel-bin/mace/libmace/libmace.so $LIB_DIR/arm64-v8a/ +cp bazel-bin/mace/libmace/libmace.so $LIB_DIR/arm64-v8a/cpu_gpu/ if [[ "$OSTYPE" != "darwin"* ]];then echo "build shared lib for linux-x86-64" @@ -38,14 +43,18 @@ if [[ "$OSTYPE" != "darwin"* ]];then fi # build static libraries -echo "build static lib for armeabi-v7a" +echo "build static lib for armeabi-v7a + cpu_gpu_dsp" bazel build --config android --config optimization mace/libmace:libmace_static --define neon=true --define openmp=true --define opencl=true --define hexagon=true --cpu=armeabi-v7a -cp bazel-genfiles/mace/libmace/libmace.a $LIB_DIR/armeabi-v7a/ -cp third_party/nnlib/*so $LIB_DIR/armeabi-v7a/ +cp bazel-genfiles/mace/libmace/libmace.a $LIB_DIR/armeabi-v7a/cpu_gpu_dsp/ +cp third_party/nnlib/*so $LIB_DIR/armeabi-v7a/cpu_gpu_dsp/ + +echo "build static lib for armeabi-v7a + cpu_gpu" +bazel build --config android --config optimization mace/libmace:libmace_static --define neon=true --define openmp=true --define opencl=true --cpu=armeabi-v7a +cp bazel-genfiles/mace/libmace/libmace.a $LIB_DIR/armeabi-v7a/cpu_gpu/ -echo "build static lib for arm64-v8a" +echo "build static lib for arm64-v8a + cpu_gpu" bazel build --config android --config optimization mace/libmace:libmace_static --define neon=true --define openmp=true --define opencl=true --cpu=arm64-v8a -cp bazel-genfiles/mace/libmace/libmace.a $LIB_DIR/arm64-v8a/ +cp bazel-genfiles/mace/libmace/libmace.a $LIB_DIR/arm64-v8a/cpu_gpu/ if [[ "$OSTYPE" != "darwin"* ]];then echo "build static lib for linux-x86-64" -- GitLab