You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
2.7 KiB
76 lines
2.7 KiB
#!/bin/bash
|
|
|
|
# This script build and run DumpIntermediateTensors activity
|
|
# The results will be pulled to /tmp/intermediate by default.
|
|
# Usage
|
|
# ./test/mlts/benchmark/tools/build_and_dump_intermediate.sh -o /tmp -r intermediate_test -p -m fssd_100_8bit_gray_v1,fssd_100_8bit_v1,fssd_25_8bit_gray_v1,fssd_25_8bit_v1
|
|
|
|
if [[ -z "$ANDROID_BUILD_TOP" ]]; then
|
|
echo ANDROID_BUILD_TOP not set, bailing out
|
|
echo you must run lunch before running this script
|
|
exit 1
|
|
fi
|
|
|
|
# Default output directory: /tmp/intermediate_currentdate
|
|
INTERMEDIATE_OUTPUT_DIR="/tmp"
|
|
CURRENTDATE=`date +"%m%d%y"`
|
|
RENAME="intermediate_$CURRENTDATE"
|
|
BUILD_MODE=true
|
|
RUN_PYTHON=false
|
|
MODEL_LIST=""
|
|
|
|
while getopts 'o:r:m:nph' flag; do
|
|
case "${flag}" in
|
|
o) INTERMEDIATE_OUTPUT_DIR="${OPTARG}" ;;
|
|
r) RENAME="${OPTARG}" ;;
|
|
m) MODEL_LIST="modelName ${OPTARG}" ;;
|
|
n) BUILD_MODE=false ;;
|
|
p) RUN_PYTHON=true ;;
|
|
h)
|
|
echo "Optional flags:"
|
|
echo " -h Display this help message."
|
|
echo " -o <output_dir> Set destination directory for the output folder."
|
|
echo " -r <output_name> Name of the output folder."
|
|
echo " -m <model_list> A list of target model names separated by comma(,) e.g. asr_float,tts_float."
|
|
echo " -n If set, skipping build and installation to save time."
|
|
echo " -p If set, run Python script to generate visualization html."
|
|
exit 0
|
|
;;
|
|
*)
|
|
error "Unexpected option ${flag}, please run with -h to see the options"
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
cd $ANDROID_BUILD_TOP
|
|
|
|
if [[ "$BUILD_MODE" == true ]]; then
|
|
# Build and install benchmark app
|
|
build/soong/soong_ui.bash --make-mode NeuralNetworksApiBenchmark
|
|
if ! adb install -r $OUT/testcases/NeuralNetworksApiBenchmark/arm64/NeuralNetworksApiBenchmark.apk; then
|
|
adb uninstall com.android.nn.benchmark.app
|
|
adb install -r $OUT/testcases/NeuralNetworksApiBenchmark/arm64/NeuralNetworksApiBenchmark.apk
|
|
fi
|
|
fi
|
|
|
|
# Default to run all public models in DumpIntermediateTensors
|
|
adb shell am start -n com.android.nn.benchmark.app/com.android.nn.benchmark.util.DumpIntermediateTensors \
|
|
--es "$MODEL_LIST" inputAssetIndex 0 &&
|
|
# Wait for the files to finish writing.
|
|
# TODO(veralin): find a better way to wait, maybe some sort of callback
|
|
sleep 13 &&
|
|
|
|
mkdir -p $INTERMEDIATE_OUTPUT_DIR &&
|
|
cd $INTERMEDIATE_OUTPUT_DIR &&
|
|
rm -rf intermediate &&
|
|
adb pull /data/data/com.android.nn.benchmark.app/files/intermediate/ &&
|
|
rsync -a --delete intermediate/ $RENAME/ &&
|
|
echo "Results pulled to $INTERMEDIATE_OUTPUT_DIR/$RENAME"
|
|
|
|
if [[ "$RUN_PYTHON" == true ]]; then
|
|
cd $ANDROID_BUILD_TOP &&
|
|
python test/mlts/benchmark/tools/tensor_utils.py $ANDROID_BUILD_TOP $INTERMEDIATE_OUTPUT_DIR/$RENAME
|
|
fi
|
|
|
|
exit |