load_and_run
for arm64-v8acd $MEGENGINE_HOME
./scripts/cmake-build/cross_build_android_arm_inference.sh -a arm64-v8a -r
After successfully built, load_and_run should be in $MEGENGINE_HOME/build_dir/android/arm64-v8a/Release/install/bin
cd $MACE_HOME
RUNTIME=GPU bash tools/cmake/cmake-build-arm64-v8a.sh
cp -r $MACE_HOME/build/cmake-build/arm64-v8a/install $MEGENGINE_HOME/sdk/c-opr-loaders/mace/arm64-v8a
SDK_PATH=/path/to/mace-sdk make
If SDK_PATH
is not set, by default it's ./arm64-v8a
You can run with debug mode(by adding DEBUG=1
to make command), which will show more running information
python3 dump_model.py path/to/resnet_50.pb path/to/resnet_50.data path/to/resnet_50.mdl path/to/resnet_50.yml
*.pb
file denotes the model structure, *.data
denotes the model parameters
Check here to learn how to write yml files for MACE
First of all, send all files to the executed device:
MGB_MACE_RUNTIME=GPU MGB_MACE_OPENCL_PATH=/path/to/opencl MGB_MACE_LOADER_FORMAT=NCHW /path/to/load_and_run /path/to/resnet_50.mdl --c-opr-lib /path/to/libmace_loader.so
RUNTIME candidates:
Running with GPU runtime on android needs opencl library, one can set MGB_MACE_OPENCL_PATH
by using environment variable
We mainly use NCHW data format, if you have NHWC model, use environment MGB_MACE_LOADER_FORMAT=NHWC
For CPU runtime, default running thread is 1, could be specified with MGB_MACE_NR_THREADS=n
if you want to run with HEXAGON runtime, more efforts should be made, please check here.