From 2dfaaedd8ddf83a04ee2d9c1699a0d04a60209f7 Mon Sep 17 00:00:00 2001 From: wuchenghui Date: Thu, 8 Mar 2018 17:09:12 +0800 Subject: [PATCH] CPU+GPU+DSP full throughput benchmark --- build_run_throughput_test.sh | 73 ++++++++++++++++++++++++++++++++++++ mace_tools.py | 21 ++++++++++- 2 files changed, 92 insertions(+), 2 deletions(-) create mode 100644 build_run_throughput_test.sh diff --git a/build_run_throughput_test.sh b/build_run_throughput_test.sh new file mode 100644 index 00000000..e87e2ff8 --- /dev/null +++ b/build_run_throughput_test.sh @@ -0,0 +1,73 @@ +#!/bin/bash + +Usage() { + echo "Usage: bash tools/build_run_throughput_test.sh run_seconds merged_lib_file model_input_dir" +} + +if [ $# -lt 1 ]; then + Usage + exit 1 +fi + +RUN_SECONDS=$1 +MERGED_LIB_FILE=$2 +MODEL_INPUT_DIR=$3 + +CURRENT_DIR=`dirname $0` +source ${CURRENT_DIR}/env.sh + + +if [ "$CPU_MODEL_TAG" != '' ]; then + CPU_MODEL_TAG_BUILD_FLAGS="--copt=-DMACE_CPU_MODEL_TAG=${CPU_MODEL_TAG}" +fi + +if [ "$GPU_MODEL_TAG" != '' ]; then + GPU_MODEL_TAG_BUILD_FLAGS="--copt=-DMACE_GPU_MODEL_TAG=${GPU_MODEL_TAG}" +fi + +if [ "$DSP_MODEL_TAG" != '' ]; then + DSP_MODEL_TAG_BUILD_FLAGS="--copt=-DMACE_DSP_MODEL_TAG=${DSP_MODEL_TAG}" +fi + +cp $MERGED_LIB_FILE benchmark/libmace_merged.a + +bazel build --verbose_failures -c opt --strip always benchmark:model_throughput_test \ + --crosstool_top=//external:android/crosstool \ + --host_crosstool_top=@bazel_tools//tools/cpp:toolchain \ + --cpu=${TARGET_ABI} \ + --copt="-std=c++11" \ + --copt="-D_GLIBCXX_USE_C99_MATH_TR1" \ + --copt="-Werror=return-type" \ + ${CPU_MODEL_TAG_BUILD_FLAGS} \ + ${GPU_MODEL_TAG_BUILD_FLAGS} \ + ${DSP_MODEL_TAG_BUILD_FLAGS} \ + --define openmp=true \ + --copt="-O3" || exit 1 + +rm benchmark/libmace_merged.a + +adb shell "mkdir -p ${PHONE_DATA_DIR}" || exit 1 + +adb push ${MODEL_INPUT_DIR}/${INPUT_FILE_NAME} ${PHONE_DATA_DIR} || exit 1 +adb push bazel-bin/benchmark/model_throughput_test ${PHONE_DATA_DIR} || exit 1 +if [ "$EMBED_MODEL_DATA" = 0 ]; then + adb push codegen/models/${CPU_MODEL_TAG}/${CPU_MODEL_TAG}.data ${PHONE_DATA_DIR} || exit 1 + adb push codegen/models/${GPU_MODEL_TAG}/${GPU_MODEL_TAG}.data ${PHONE_DATA_DIR} || exit 1 + adb push codegen/models/${DSP_MODEL_TAG}/${DSP_MODEL_TAG}.data ${PHONE_DATA_DIR} || exit 1 +fi +adb push lib/hexagon/libhexagon_controller.so ${PHONE_DATA_DIR} || exit 1 + +adb