XiaoMi/mace

Can I run DSP on SDA845 board which is not Android?

Closed this issue · 2 comments

Before you open an issue, please make sure you have tried the following steps:

  1. Make sure your environment is the same with (https://mace.readthedocs.io/en/latest/installation/env_requirement.html).
  2. Have you ever read the document for your usage?
  3. Check if your issue appears in HOW-TO-DEBUG or FAQ.
  4. The form below must be filled.

System information

  • OS Platform and Distribution (e.g., Linux Ubuntu 16.04):
  • NDK version(e.g., 15c):
  • GCC version(if compiling for host, e.g., 5.4.0):
  • MACE version (Use the command: git describe --long --tags):
  • Python version(2.7):
  • Bazel version (e.g., 0.13.0):

Model deploy file (*.yml)

......

Describe the problem

I would like to run my model with DSP(hexagon) on SDA845 board which is not Android but Ubuntu.
I could build Mace successfully with aarch64_linux_gnu abi.
But when I tried to run my model with Hexagon, I met errors about MACE_ENABLE_HEXAGON and MACE_ENABLE_RPCMEM.
So I enabled those parameters but another errors appeared that there is no static library rpcmem.a.

Have you tried to run model with DSP(hexagon) for aarch64_linux_gnu abi?
Or do you have rpcmem.a library for aarch64_linux_gnu abi?

To Reproduce

Steps to reproduce the problem:

1. cd /path/to/mace
2. RUNTIME=GPU QUANTIZE=OFF bash tools/cmake/cmake-build-aarch64-linux-gnu.sh

Error information / logs

Please include the full log and/or traceback here.

LOGs

Additional context

<cmake-build-aarch64-linux-gnu.sh>
cmake -DCROSSTOOL_ROOT= /usr
-DCMAKE_TOOLCHAIN_FILE=./cmake/toolchains/aarch64-linux-gnu.cmake
-DCMAKE_BUILD_TYPE=Release
-DMACE_ENABLE_NEON=ON
-DMACE_ENABLE_QUANTIZE=${MACE_ENABLE_QUANTIZE}
-DMACE_ENABLE_OPENCL=${MACE_ENABLE_OPENCL}
-DMACE_ENABLE_BFLOAT16=${DMACE_ENABLE_BFLOAT16}
-DMACE_ENABLE_OPT_SIZE=ON
-DMACE_ENABLE_OBFUSCATE=ON
-DMACE_ENABLE_TESTS=ON
-DMACE_ENABLE_BENCHMARKS=ON
-DMACE_ENABLE_HEXAGON_DSP=ON
-DMACE_ENABLE_RPCMEM=ON
-DMACE_ENABLE_CODE_MODE=${MACE_ENABLE_CODE_MODE}
-DCMAKE_INSTALL_PREFIX=install
../../..
make -j$(nproc) VERBOSE=1 && make install

Thanks

Sorry, we don't plan to support hexagon for aarch64_linux_gnu and we don't have rpcmem.a library for aarch64_linux_gnu abi. If you want to try, the rpcmem source code is from Hexagon SDK 3.5.