提交 5586b9be 编写于 作者: B Bin Li

Support arm64-v8a for Hexagon DSP

上级 808a1557
......@@ -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.
......
......@@ -73,7 +73,6 @@ config_setting(
},
values = {
"crosstool_top": "//external:android/crosstool",
"cpu": "armeabi-v7a",
},
visibility = ["//visibility:public"],
)
......
......@@ -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",
......
......@@ -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
......
......@@ -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:
......
......@@ -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)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册