From 5586b9bebadf78b167267cd529554e6e562f5f0d Mon Sep 17 00:00:00 2001 From: Bin Li Date: Tue, 2 Apr 2019 10:18:32 +0800 Subject: [PATCH] Support arm64-v8a for Hexagon DSP --- docs/user_guide/basic_usage.rst | 2 ++ mace/BUILD.bazel | 1 - third_party/hta/{BUILD => BUILD.bazel} | 0 third_party/nnlib/BUILD.bazel | 13 ++++++++++++- third_party/nnlib/arm64-v8a/libcdsprpc.so | Bin 0 -> 7136 bytes .../nnlib/arm64-v8a/libhexagon_controller.so | Bin 0 -> 29800 bytes .../nnlib/armeabi-v7a/libhexagon_controller.so | Bin 0 -> 20268 bytes third_party/nnlib/libhexagon_controller.so | Bin 20156 -> 0 bytes tools/build-standalone-lib.sh | 15 +++++++++++++-- tools/device.py | 7 +++++-- tools/sh_commands.py | 3 ++- 11 files changed, 34 insertions(+), 7 deletions(-) rename third_party/hta/{BUILD => BUILD.bazel} (100%) create mode 100755 third_party/nnlib/arm64-v8a/libcdsprpc.so create mode 100755 third_party/nnlib/arm64-v8a/libhexagon_controller.so create mode 100755 third_party/nnlib/armeabi-v7a/libhexagon_controller.so delete mode 100755 third_party/nnlib/libhexagon_controller.so diff --git a/docs/user_guide/basic_usage.rst b/docs/user_guide/basic_usage.rst index 051dc709..da7e1598 100644 --- a/docs/user_guide/basic_usage.rst +++ b/docs/user_guide/basic_usage.rst @@ -50,6 +50,8 @@ Here we use the mobilenet-v2 model as an example. .. note:: + - This step can be skipped if you just want to run a model using ``tools/converter.py``, such as commands in step 5. + - 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. diff --git a/mace/BUILD.bazel b/mace/BUILD.bazel index ef1c338d..f9af9abe 100644 --- a/mace/BUILD.bazel +++ b/mace/BUILD.bazel @@ -73,7 +73,6 @@ config_setting( }, values = { "crosstool_top": "//external:android/crosstool", - "cpu": "armeabi-v7a", }, visibility = ["//visibility:public"], ) diff --git a/third_party/hta/BUILD b/third_party/hta/BUILD.bazel similarity index 100% rename from third_party/hta/BUILD rename to third_party/hta/BUILD.bazel diff --git a/third_party/nnlib/BUILD.bazel b/third_party/nnlib/BUILD.bazel index 4ac0be0e..7fc7b13b 100644 --- a/third_party/nnlib/BUILD.bazel +++ b/third_party/nnlib/BUILD.bazel @@ -4,9 +4,20 @@ licenses(["notice"]) exports_files(["license.txt"]) +load( + "//mace:mace.bzl", + "if_android_armv7", + "if_android_arm64", +) + cc_library( name = "libhexagon", - srcs = ["libhexagon_controller.so"], + srcs = if_android_armv7([ + "armeabi-v7a/libhexagon_controller.so", + ]) + if_android_arm64([ + "arm64-v8a/libcdsprpc.so", + "arm64-v8a/libhexagon_controller.so", + ]), hdrs = [ "hexagon_nn.h", "ops.h", diff --git a/third_party/nnlib/arm64-v8a/libcdsprpc.so b/third_party/nnlib/arm64-v8a/libcdsprpc.so new file mode 100755 index 0000000000000000000000000000000000000000..57de01f4887197b0b510f395f828289d74597069 GIT binary patch literal 7136 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 literal 0 HcmV?d00001 diff --git a/third_party/nnlib/armeabi-v7a/libhexagon_controller.so b/third_party/nnlib/armeabi-v7a/libhexagon_controller.so new file mode 100755 index 0000000000000000000000000000000000000000..0df48bcc7cf83c99ec90afeb42a78448a2c2db7c GIT binary patch literal 20268 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 literal 0 HcmV?d00001 diff --git a/third_party/nnlib/libhexagon_controller.so b/third_party/nnlib/libhexagon_controller.so deleted file mode 100755 index 553f202633c399937fdf6c4e82e08e30ee98f141..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20156 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 diff --git a/tools/build-standalone-lib.sh b/tools/build-standalone-lib.sh index fcb5c288..5d35e541 100755 --- a/tools/build-standalone-lib.sh +++ b/tools/build-standalone-lib.sh @@ -17,6 +17,7 @@ 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/cpu_gpu_dsp mkdir -p $LIB_DIR/arm64-v8a/cpu_gpu rm -rf $LIB_DIR/linux-x86-64 @@ -34,7 +35,12 @@ mkdir -p $LIB_DIR/aarch64_linux_gnu/cpu_gpu 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 --define quantize=true --cpu=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/ +cp third_party/nnlib/armeabi-v7a/*so $LIB_DIR/armeabi-v7a/cpu_gpu_dsp/ + +echo "build shared lib for arm64-v8a + 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 --define quantize=true --cpu=arm64-v8a +cp bazel-bin/mace/libmace/libmace.so $LIB_DIR/arm64-v8a/cpu_gpu_dsp/ +cp third_party/nnlib/arm64-v8a/*so $LIB_DIR/arm64-v8a/cpu_gpu_dsp/ 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 --define quantize=true --cpu=armeabi-v7a @@ -62,7 +68,12 @@ fi echo "build static lib for armeabi-v7a + cpu_gpu_dsp" bazel build --config android --config optimization mace/libmace:libmace_static --config symbol_hidden --define neon=true --define openmp=true --define opencl=true --define hexagon=true --define quantize=true --cpu=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/ +cp third_party/nnlib/armeabi-v7a/*so $LIB_DIR/armeabi-v7a/cpu_gpu_dsp/ + +echo "build static lib for arm64-v8a + cpu_gpu_dsp" +bazel build --config android --config optimization mace/libmace:libmace_static --config symbol_hidden --define neon=true --define openmp=true --define opencl=true --define hexagon=true --define quantize=true --cpu=arm64-v8a +cp bazel-genfiles/mace/libmace/libmace.a $LIB_DIR/arm64-v8a/cpu_gpu_dsp/ +cp third_party/nnlib/arm64-v8a/*so $LIB_DIR/arm64-v8a/cpu_gpu_dsp/ echo "build static lib for armeabi-v7a + cpu_gpu" bazel build --config android --config optimization mace/libmace:libmace_static --config symbol_hidden --define neon=true --define openmp=true --define opencl=true --define quantize=true --cpu=armeabi-v7a diff --git a/tools/device.py b/tools/device.py index 0ff868f4..76beb055 100644 --- a/tools/device.py +++ b/tools/device.py @@ -270,8 +270,11 @@ class DeviceWrapper: if os.path.exists(opencl_parameter_file): self.push(opencl_parameter_file, self.data_dir) - self.push("third_party/nnlib/libhexagon_controller.so", - self.data_dir) + if self.system == SystemType.android \ + and device_type == common.DeviceType.HEXAGON: + self.push( + "third_party/nnlib/%s/libhexagon_controller.so" % abi, + self.data_dir) mace_model_phone_path = "" if model_graph_format == ModelFormat.file: diff --git a/tools/sh_commands.py b/tools/sh_commands.py index be3066b8..02b8ffba 100644 --- a/tools/sh_commands.py +++ b/tools/sh_commands.py @@ -902,7 +902,8 @@ def build_run_throughput_test(abi, adb_push("codegen/models/%s/%s.data" % dsp_model_tag, phone_data_dir, serialno) - adb_push("third_party/nnlib/libhexagon_controller.so", + + adb_push("third_party/nnlib/%s/libhexagon_controller.so" % abi, phone_data_dir, serialno) -- GitLab