tuning_run.sh 1.7 KB
Newer Older
1 2 3
#!/bin/bash

Usage() {
4
  echo "Usage: bash tools/tuning_run.sh model_output_dir round tuning production_mode"
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
}

if [ $# -lt 4 ]; then
  Usage
  exit 1
fi

CURRENT_DIR=`dirname $0`
source ${CURRENT_DIR}/env.sh

MODEL_OUTPUT_DIR=$1
ROUND=$2
TUNING_OR_NOT=$3
PRODUCTION_MODE=$4

20
if [ x"$TARGET_ABI" = x"host" ]; then
21
  MACE_CPP_MIN_VLOG_LEVEL=$VLOG_LEVEL \
Y
yejianwu 已提交
22
  ${MODEL_OUTPUT_DIR}/mace_run \
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
      --input_shape="${INPUT_SHAPE}"\
      --output_shape="${OUTPUT_SHAPE}"\
      --input_file=${MODEL_OUTPUT_DIR}/${INPUT_FILE_NAME} \
      --output_file=${MODEL_OUTPUT_DIR}/${OUTPUT_FILE_NAME} \
      --device=${DEVICE_TYPE}   \
      --round=1 || exit 1
else
  if [[ "${TUNING_OR_NOT}" != "0" && "$PRODUCTION_MODE" != 1 ]];then
    tuning_flag=1
  else
    tuning_flag=0
  fi
  
  adb shell "mkdir -p ${PHONE_DATA_DIR}" || exit 1
  if [ "$PRODUCTION_MODE" = 0 ]; then
    adb shell "mkdir -p ${KERNEL_DIR}" || exit 1
  fi
  adb push ${MODEL_OUTPUT_DIR}/${INPUT_FILE_NAME} ${PHONE_DATA_DIR} || exit 1
Y
yejianwu 已提交
41
  adb push ${MODEL_OUTPUT_DIR}/mace_run ${PHONE_DATA_DIR} || exit 1
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
  adb push lib/hexagon/libhexagon_controller.so ${PHONE_DATA_DIR} || exit 1
  
  adb </dev/null shell \
    LD_LIBRARY_PATH=${PHONE_DATA_DIR} \
    MACE_TUNING=${tuning_flag} \
    MACE_CPP_MIN_VLOG_LEVEL=$VLOG_LEVEL \
    MACE_RUN_PARAMETER_PATH=${PHONE_DATA_DIR}/mace_run.config \
    MACE_KERNEL_PATH=$KERNEL_DIR \
    MACE_LIMIT_OPENCL_KERNEL_TIME=${LIMIT_OPENCL_KERNEL_TIME} \
    ${PHONE_DATA_DIR}/mace_run \
    --input_shape="${INPUT_SHAPE}"\
    --output_shape="${OUTPUT_SHAPE}"\
    --input_file=${PHONE_DATA_DIR}/${INPUT_FILE_NAME} \
    --output_file=${PHONE_DATA_DIR}/${OUTPUT_FILE_NAME} \
    --device=${DEVICE_TYPE}   \
    --round=$ROUND || exit 1
fi