Przemyslaw Szczepaniak | 9429af4 | 2018-09-28 17:07:24 +0100 | [diff] [blame] | 1 | #!/bin/bash |
| 2 | # |
| 3 | # Build benchmark app and run it, mimicking a user-initiated run |
| 4 | # |
| 5 | # Output is logged to a temporary folder and summarized in txt and JSON formats. |
Stefano Galarraga | 4edc2ea | 2020-03-02 15:38:02 +0000 | [diff] [blame] | 6 | # parallel-inference-stress tests produce no output except for the success or failure notification, |
| 7 | # which is not logged. |
Slava Shklyaev | e8198d4 | 2019-05-15 16:43:46 +0100 | [diff] [blame] | 8 | |
Stefano Galarraga | 013f4b3 | 2020-08-11 08:56:31 +0100 | [diff] [blame] | 9 | if [[ "$OSTYPE" == "darwin"* ]]; then |
Ohad Almagor | 0d7c9e2 | 2022-05-11 14:09:12 +0000 | [diff] [blame] | 10 | OPTS="$(getopt f:rbsm:xn: -- "$*")" |
Stefano Galarraga | 013f4b3 | 2020-08-11 08:56:31 +0100 | [diff] [blame] | 11 | else |
Ohad Almagor | 0d7c9e2 | 2022-05-11 14:09:12 +0000 | [diff] [blame] | 12 | OPTS="$(getopt -o f:rbsm:xn: -l filter-driver:,include-nnapi-reference,nnapi-reference-only,skip-build,use-nnapi-sl,filter-model,extract-nnapi-sl,nnapi-sl-vendor -- "$@")" |
Stefano Galarraga | 013f4b3 | 2020-08-11 08:56:31 +0100 | [diff] [blame] | 13 | fi |
Stefano Galarraga | 06ec72b | 2020-05-29 10:47:31 +0100 | [diff] [blame] | 14 | |
| 15 | if [ $? -ne 0 ]; then |
Stefano Galarraga | 013f4b3 | 2020-08-11 08:56:31 +0100 | [diff] [blame] | 16 | echo "Invalid arguments, accepted options are" |
| 17 | if [[ "$OSTYPE" == "darwin"* ]]; then |
| 18 | echo " -f <regex> : to run crash tests only on the drivers (ignoring nnapi-reference) matching the specified regular expression" |
| 19 | echo " -r : to include nnapi-reference in target drivers" |
| 20 | echo " -b : skip build and installation of tests" |
Stefano Galarraga | fdbb44e | 2021-10-04 17:20:17 +0100 | [diff] [blame] | 21 | echo " -s : use NNAPI Support Library drivers (embedded in the benchmark APK unless -x is specified)" |
| 22 | echo " -x : extract NNAPI Support Library drivers from the APK" |
Ohad Almagor | 0d7c9e2 | 2022-05-11 14:09:12 +0000 | [diff] [blame] | 23 | echo " -n <nnapi-sl-vendor> : Optional, specify which SL driver vendor is used (qc/mtk/arm), default: qc" |
Stefano Galarraga | 3860feb | 2021-09-22 19:13:22 +0100 | [diff] [blame] | 24 | echo " -m <regex> : to filter the models used in the tests" |
Stefano Galarraga | 013f4b3 | 2020-08-11 08:56:31 +0100 | [diff] [blame] | 25 | else |
Stefano Galarraga | 06ec72b | 2020-05-29 10:47:31 +0100 | [diff] [blame] | 26 | echo " -f <regex> | --filter-driver <regex> : to run crash tests only on the drivers (ignoring nnapi-reference) matching the specified regular expression" |
| 27 | echo " -r | --include-nnapi-reference : to include nnapi-reference in target drivers" |
| 28 | echo " --nnapi-reference-only : to run tests only vs nnapi-reference" |
Stefano Galarraga | 2583479 | 2020-06-11 19:02:03 +0100 | [diff] [blame] | 29 | echo " -b | --skip-build : skip build and installation of tests" |
Stefano Galarraga | fdbb44e | 2021-10-04 17:20:17 +0100 | [diff] [blame] | 30 | echo " -s | --use-nnapi-sl : use NNAPI Support Library drivers (embedded in the benchmark APK unless -x is specified)" |
| 31 | echo " -x | --extract-nnapi-sl : extract NNAPI Support Library drivers from the APK" |
Ohad Almagor | 0d7c9e2 | 2022-05-11 14:09:12 +0000 | [diff] [blame] | 32 | echo " -n <nnapi-sl-vendor> : Optional, specify which SL driver vendor is used (qc/mtk/arm), default: qc" |
Stefano Galarraga | 3860feb | 2021-09-22 19:13:22 +0100 | [diff] [blame] | 33 | echo " -m <regex> : to filter the models used in the tests" |
Stefano Galarraga | 013f4b3 | 2020-08-11 08:56:31 +0100 | [diff] [blame] | 34 | fi |
| 35 | exit |
Stefano Galarraga | 06ec72b | 2020-05-29 10:47:31 +0100 | [diff] [blame] | 36 | fi |
| 37 | |
| 38 | eval set -- "$OPTS" |
| 39 | |
| 40 | DRIVER_FILTER_OPT="" |
| 41 | INCLUDE_NNAPI_REF_OPT="" |
Stefano Galarraga | 2583479 | 2020-06-11 19:02:03 +0100 | [diff] [blame] | 42 | BUILD_AND_INSTALL=true |
Stefano Galarraga | 57b6e4c | 2021-09-10 15:18:12 +0100 | [diff] [blame] | 43 | NNAPI_SL_FILTER_OPT="" |
Stefano Galarraga | 3860feb | 2021-09-22 19:13:22 +0100 | [diff] [blame] | 44 | MODEL_FILTER_OPT="" |
Stefano Galarraga | 06ec72b | 2020-05-29 10:47:31 +0100 | [diff] [blame] | 45 | while [ $# -gt 0 ] ; do |
| 46 | case "$1" in |
| 47 | -f|--filter-driver) |
| 48 | DRIVER_FILTER_OPT="-e nnCrashtestDeviceFilter $2" |
| 49 | shift 2 |
| 50 | ;; |
| 51 | -r|--include-nnapi-reference) |
| 52 | INCLUDE_NNAPI_REF_OPT="-e nnCrashtestIncludeNnapiReference true" |
| 53 | shift |
| 54 | ;; |
| 55 | --nnapi-reference-only) |
| 56 | DRIVER_FILTER_OPT="-e nnCrashtestDeviceFilter no-device" |
| 57 | INCLUDE_NNAPI_REF_OPT="-e nnCrashtestIncludeNnapiReference true" |
| 58 | shift |
| 59 | ;; |
Stefano Galarraga | 3860feb | 2021-09-22 19:13:22 +0100 | [diff] [blame] | 60 | -m|--filter-model) |
| 61 | MODEL_FILTER_OPT="-e nnBenchmarkModelFilter $2" |
| 62 | shift 2 |
| 63 | ;; |
Stefano Galarraga | 2583479 | 2020-06-11 19:02:03 +0100 | [diff] [blame] | 64 | -b|--skip-build) |
| 65 | BUILD_AND_INSTALL=false |
| 66 | shift |
| 67 | ;; |
Stefano Galarraga | 57b6e4c | 2021-09-10 15:18:12 +0100 | [diff] [blame] | 68 | -s|--use-nnapi-sl) |
Stefano Galarraga | fdbb44e | 2021-10-04 17:20:17 +0100 | [diff] [blame] | 69 | NNAPI_SL_FILTER_OPT+=" -e useNnApiSupportLibrary true" |
| 70 | shift |
| 71 | ;; |
| 72 | -x|--extract-nnapi-sl) |
| 73 | NNAPI_SL_FILTER_OPT+=" -e extractNnApiSupportLibrary true" |
| 74 | shift |
| 75 | |
| 76 | echo "Creating configuration file with list of libraries" |
| 77 | mkdir sl_prebuilt/assets |
| 78 | ls sl_prebuilt/ 2>/dev/null | grep '.so' >sl_prebuilt/assets/sl_prebuilt_filelist.txt |
Stefano Galarraga | 57b6e4c | 2021-09-10 15:18:12 +0100 | [diff] [blame] | 79 | ;; |
Ohad Almagor | 0d7c9e2 | 2022-05-11 14:09:12 +0000 | [diff] [blame] | 80 | -n|--nnapi-sl-vendor) |
| 81 | NNAPI_SL_VENDOR=$2 |
| 82 | shift 2 |
| 83 | ;; |
Stefano Galarraga | 06ec72b | 2020-05-29 10:47:31 +0100 | [diff] [blame] | 84 | --) |
| 85 | shift |
| 86 | break |
| 87 | ;; |
| 88 | *) |
| 89 | echo "Unsupported arg $1" |
| 90 | exit 1 |
| 91 | esac |
| 92 | done |
| 93 | |
Slava Shklyaev | 1927d05 | 2019-07-29 12:02:54 +0100 | [diff] [blame] | 94 | MODE="${1:-scoring}" |
Stefano Galarraga | f03d573 | 2020-06-08 19:18:24 +0100 | [diff] [blame] | 95 | INSTALL_NATIVE_TESTS=false |
Stefano Galarraga | f19cd01 | 2020-06-09 18:52:17 +0100 | [diff] [blame] | 96 | CRASH_TEST_APP="NeuralNetworksApiCrashTest" |
Stefano Galarraga | 650bda5 | 2020-06-17 11:03:07 +0100 | [diff] [blame] | 97 | APP="NeuralNetworksApiBenchmark" |
Slava Shklyaev | 814f8a7 | 2019-06-20 16:34:51 +0100 | [diff] [blame] | 98 | case "$MODE" in |
| 99 | scoring) |
Slava Shklyaev | e8198d4 | 2019-05-15 16:43:46 +0100 | [diff] [blame] | 100 | CLASS=com.android.nn.benchmark.app.NNScoringTest |
| 101 | ;; |
Slava Shklyaev | 814f8a7 | 2019-06-20 16:34:51 +0100 | [diff] [blame] | 102 | inference-stress) |
| 103 | CLASS=com.android.nn.benchmark.app.NNInferenceStressTest |
| 104 | ;; |
| 105 | model-loading-stress) |
| 106 | CLASS=com.android.nn.benchmark.app.NNModelLoadingStressTest |
Slava Shklyaev | e8198d4 | 2019-05-15 16:43:46 +0100 | [diff] [blame] | 107 | ;; |
Stefano Galarraga | 4edc2ea | 2020-03-02 15:38:02 +0000 | [diff] [blame] | 108 | parallel-inference-stress) |
Stefano Galarraga | 650bda5 | 2020-06-17 11:03:07 +0100 | [diff] [blame] | 109 | CLASS=com.android.nn.crashtest.app.NNParallelCrashResistantInferenceTest |
Stefano Galarraga | f19cd01 | 2020-06-09 18:52:17 +0100 | [diff] [blame] | 110 | APP="$CRASH_TEST_APP" |
Stefano Galarraga | 4edc2ea | 2020-03-02 15:38:02 +0000 | [diff] [blame] | 111 | ;; |
| 112 | parallel-inference-stress-in-process) |
Stefano Galarraga | 650bda5 | 2020-06-17 11:03:07 +0100 | [diff] [blame] | 113 | CLASS=com.android.nn.crashtest.app.NNParallelInProcessInferenceTest |
Stefano Galarraga | f19cd01 | 2020-06-09 18:52:17 +0100 | [diff] [blame] | 114 | APP="$CRASH_TEST_APP" |
Stefano Galarraga | 4edc2ea | 2020-03-02 15:38:02 +0000 | [diff] [blame] | 115 | ;; |
Stefano Galarraga | 2a10d15 | 2020-04-24 08:32:55 +0100 | [diff] [blame] | 116 | client-early-termination-stress) |
Stefano Galarraga | 650bda5 | 2020-06-17 11:03:07 +0100 | [diff] [blame] | 117 | CLASS=com.android.nn.crashtest.app.NNClientEarlyTerminationTest |
Stefano Galarraga | f19cd01 | 2020-06-09 18:52:17 +0100 | [diff] [blame] | 118 | APP="$CRASH_TEST_APP" |
Stefano Galarraga | 2a10d15 | 2020-04-24 08:32:55 +0100 | [diff] [blame] | 119 | ;; |
Stefano Galarraga | f03d573 | 2020-06-08 19:18:24 +0100 | [diff] [blame] | 120 | multi-process-inference-stress) |
Stefano Galarraga | 650bda5 | 2020-06-17 11:03:07 +0100 | [diff] [blame] | 121 | CLASS=com.android.nn.crashtest.app.NNMultipleProcessInferenceTest |
Stefano Galarraga | f19cd01 | 2020-06-09 18:52:17 +0100 | [diff] [blame] | 122 | APP="$CRASH_TEST_APP" |
Stefano Galarraga | f03d573 | 2020-06-08 19:18:24 +0100 | [diff] [blame] | 123 | INSTALL_NATIVE_TESTS=true |
| 124 | ;; |
| 125 | multi-process-model-load-stress) |
Stefano Galarraga | 650bda5 | 2020-06-17 11:03:07 +0100 | [diff] [blame] | 126 | CLASS=com.android.nn.crashtest.app.NNMultipleProcessModelLoadTest |
Stefano Galarraga | f19cd01 | 2020-06-09 18:52:17 +0100 | [diff] [blame] | 127 | APP="$CRASH_TEST_APP" |
Stefano Galarraga | f03d573 | 2020-06-08 19:18:24 +0100 | [diff] [blame] | 128 | INSTALL_NATIVE_TESTS=true |
| 129 | ;; |
Stefano Galarraga | 965e78e | 2020-05-12 17:11:54 +0100 | [diff] [blame] | 130 | memory-mapped-model-load-stress) |
Stefano Galarraga | 650bda5 | 2020-06-17 11:03:07 +0100 | [diff] [blame] | 131 | CLASS=com.android.nn.crashtest.app.NNMemoryMappedModelCompilationTest |
Stefano Galarraga | f19cd01 | 2020-06-09 18:52:17 +0100 | [diff] [blame] | 132 | APP="$CRASH_TEST_APP" |
Stefano Galarraga | 965e78e | 2020-05-12 17:11:54 +0100 | [diff] [blame] | 133 | ;; |
Stefano Galarraga | 04f119a | 2020-05-13 19:19:32 +0100 | [diff] [blame] | 134 | model-load-random-stress) |
Stefano Galarraga | f19cd01 | 2020-06-09 18:52:17 +0100 | [diff] [blame] | 135 | APP="$CRASH_TEST_APP" |
Stefano Galarraga | 04f119a | 2020-05-13 19:19:32 +0100 | [diff] [blame] | 136 | CLASS=com.android.nn.crashtest.app.NNRandomGraphLoadTest |
| 137 | ;; |
Stefano Galarraga | f19cd01 | 2020-06-09 18:52:17 +0100 | [diff] [blame] | 138 | inference-random-stress) |
| 139 | APP="$CRASH_TEST_APP" |
| 140 | CLASS=com.android.nn.crashtest.app.NNRandomGraphExecutionTest |
| 141 | ;; |
Stefano Galarraga | 3edb25c | 2020-06-16 18:27:35 +0100 | [diff] [blame] | 142 | performance-degradation-stress) |
| 143 | APP="$CRASH_TEST_APP" |
| 144 | CLASS=com.android.nn.crashtest.app.NNPerformanceDegradationTest |
| 145 | ;; |
Slava Shklyaev | e8198d4 | 2019-05-15 16:43:46 +0100 | [diff] [blame] | 146 | *) |
| 147 | echo "Unknown execution mode: $1" |
Stefano Galarraga | f03d573 | 2020-06-08 19:18:24 +0100 | [diff] [blame] | 148 | echo "Known modes: scoring (default), inference-stress, model-loading-stress, " \ |
| 149 | "parallel-inference-stress, parallel-inference-stress-in-process, " \ |
| 150 | "client-early-termination-stress, multi-process-inference-stress, " \ |
Stefano Galarraga | 04f119a | 2020-05-13 19:19:32 +0100 | [diff] [blame] | 151 | "multi-process-model-load-stress memory-mapped-model-load-stress, " \ |
Stefano Galarraga | 3edb25c | 2020-06-16 18:27:35 +0100 | [diff] [blame] | 152 | "model-load-random-stress, inference-random-stress, performance-degradation-stress" |
Slava Shklyaev | e8198d4 | 2019-05-15 16:43:46 +0100 | [diff] [blame] | 153 | exit 1 |
| 154 | ;; |
| 155 | esac |
Przemyslaw Szczepaniak | 9429af4 | 2018-09-28 17:07:24 +0100 | [diff] [blame] | 156 | |
| 157 | if [[ -z "$ANDROID_BUILD_TOP" ]]; then |
| 158 | echo ANDROID_BUILD_TOP not set, bailing out |
| 159 | echo you must run lunch before running this script |
| 160 | exit 1 |
| 161 | fi |
| 162 | |
| 163 | set -e |
| 164 | cd $ANDROID_BUILD_TOP |
| 165 | |
Stefano Galarraga | 2583479 | 2020-06-11 19:02:03 +0100 | [diff] [blame] | 166 | if [ "$BUILD_AND_INSTALL" = true ]; then |
Stefano Galarraga | fdbb44e | 2021-10-04 17:20:17 +0100 | [diff] [blame] | 167 | if [ ! -z "$NNAPI_SL_FILTER_OPT" ]; then |
| 168 | SL_PREBUILT=test/mlts/benchmark/sl_prebuilt |
| 169 | if [ ! -n "$(ls -A $SL_PREBUILT/*.so 2>/dev/null)" ]; then |
| 170 | echo "There is no NNAPI SL binary file under $ANDROID_BUILD_TOP/$SL_PREBUILT, cannot test using NNAPI SL" |
| 171 | exit |
| 172 | fi |
| 173 | if [ ! -f "$SL_PREBUILT/Android.bp" ]; then |
| 174 | echo "================================================================" |
| 175 | echo "Enabling build of NNAPI SL libraries using template definition." |
| 176 | echo "If the definitions in $SL_PREBUILT/Android.bp don't match the libraries you copied" |
| 177 | echo " please define your own version of $SL_PREBUILT/Android.bp" |
| 178 | echo "================================================================" |
| 179 | mv $SL_PREBUILT/Android.bp.template $SL_PREBUILT/Android.bp |
| 180 | fi |
Ohad Almagor | 0d7c9e2 | 2022-05-11 14:09:12 +0000 | [diff] [blame] | 181 | if [[ -z "$NNAPI_SL_VENDOR" ]]; then |
| 182 | NNAPI_SL_VENDOR="qc" |
| 183 | fi |
| 184 | NNAPI_SL_FILTER_OPT+=" -e nnApiSupportLibraryVendor $NNAPI_SL_VENDOR" |
Stefano Galarraga | fdbb44e | 2021-10-04 17:20:17 +0100 | [diff] [blame] | 185 | fi |
| 186 | |
Stefano Galarraga | 2583479 | 2020-06-11 19:02:03 +0100 | [diff] [blame] | 187 | # Build and install benchmark app |
| 188 | TMPFILE=$(mktemp) |
| 189 | build/soong/soong_ui.bash --make-mode ${APP} 2>&1 | tee ${TMPFILE} |
| 190 | TARGET_ARCH=$(cat ${TMPFILE} | grep TARGET_ARCH= | sed -e 's/TARGET_ARCH=//') |
| 191 | if [ "${TARGET_ARCH}" = "aarch64" ]; then |
| 192 | APK_DIR=arm64 |
| 193 | else |
| 194 | APK_DIR=${TARGET_ARCH} |
| 195 | fi |
Stefano Galarraga | fdbb44e | 2021-10-04 17:20:17 +0100 | [diff] [blame] | 196 | |
| 197 | if [ ! -z "$NNAPI_SL_FILTER_OPT" ]; then |
| 198 | if [ "$(unzip -l $OUT/testcases/${APP}/${APK_DIR}/${APP}.apk | grep libnnapi_sl_driver | wc -l)" -ne 1 ]; then |
| 199 | echo "NNAPI SL Libraries are not included in the APK" \ |
| 200 | "please check the library list is included in the LOCAL_JNI_SHARED_LIBRARIES list " \ |
| 201 | "for ${APP}. Please check the value of SL_LIBS in Android.mk" |
| 202 | exit |
| 203 | fi |
| 204 | fi |
| 205 | |
Stefano Galarraga | 2583479 | 2020-06-11 19:02:03 +0100 | [diff] [blame] | 206 | if ! adb install -r $OUT/testcases/${APP}/${APK_DIR}/${APP}.apk; then |
| 207 | adb uninstall com.android.nn.benchmark.app |
| 208 | adb install -r $OUT/testcases/${APP}/${APK_DIR}/${APP}.apk |
| 209 | fi |
Przemyslaw Szczepaniak | 9429af4 | 2018-09-28 17:07:24 +0100 | [diff] [blame] | 210 | |
Stefano Galarraga | 2583479 | 2020-06-11 19:02:03 +0100 | [diff] [blame] | 211 | if [ "$INSTALL_NATIVE_TESTS" = true ]; then |
| 212 | build/soong/soong_ui.bash --make-mode nn_stress_test |
| 213 | adb push $OUT/system/bin/nn_stress_test /bin/ |
| 214 | fi |
Stefano Galarraga | f03d573 | 2020-06-08 19:18:24 +0100 | [diff] [blame] | 215 | fi |
Przemyslaw Szczepaniak | 6526a9b | 2018-11-02 13:06:11 +0000 | [diff] [blame] | 216 | |
Przemyslaw Szczepaniak | f1e9334 | 2018-10-10 14:16:53 +0100 | [diff] [blame] | 217 | # Should we figure out if we run on release device |
| 218 | if [ -z "$MLTS_RELEASE_DEVICE" ]; then |
Przemyslaw Szczepaniak | 15c1f35 | 2018-10-18 13:14:34 +0100 | [diff] [blame] | 219 | BUILD_DESCRIPTION=`adb shell getprop ro.build.description` |
Przemyslaw Szczepaniak | f1e9334 | 2018-10-10 14:16:53 +0100 | [diff] [blame] | 220 | if [[ $BUILD_DESCRIPTION =~ .*release.* ]] |
| 221 | then |
| 222 | MLTS_RELEASE_DEVICE=True |
| 223 | else |
| 224 | MLTS_RELEASE_DEVICE=False |
| 225 | fi |
| 226 | fi |
| 227 | |
Przemyslaw Szczepaniak | 6526a9b | 2018-11-02 13:06:11 +0000 | [diff] [blame] | 228 | # Pass --no-isolated-storage to am instrument? |
| 229 | BUILD_VERSION_RELEASE=`adb shell getprop ro.build.version.release` |
Stefano Galarraga | 3860feb | 2021-09-22 19:13:22 +0100 | [diff] [blame] | 230 | AM_INSTRUMENT_FLAGS="$DRIVER_FILTER_OPT $INCLUDE_NNAPI_REF_OPT $NNAPI_SL_FILTER_OPT $MODEL_FILTER_OPT" |
Przemyslaw Szczepaniak | 6526a9b | 2018-11-02 13:06:11 +0000 | [diff] [blame] | 231 | if [[ $BUILD_VERSION_RELEASE == "Q" ]]; then |
Stefano Galarraga | 06ec72b | 2020-05-29 10:47:31 +0100 | [diff] [blame] | 232 | AM_INSTRUMENT_FLAGS+=" --no-isolated-storage" |
Przemyslaw Szczepaniak | 6526a9b | 2018-11-02 13:06:11 +0000 | [diff] [blame] | 233 | fi |
| 234 | |
Stefano Galarraga | 38292a9 | 2020-06-09 16:40:19 +0100 | [diff] [blame] | 235 | if [[ "$MODE" == "scoring" ]]; then |
| 236 | if [[ "$MLTS_RELEASE_DEVICE" == "True" ]]; then |
| 237 | TEST_EXTENRAL_STORAGE="com.android.nn.benchmark.app/com.android.nn.benchmark.util.TestExternalStorageActivity" |
| 238 | while ! adb shell "am start -W $TEST_EXTENRAL_STORAGE && rm /sdcard/mlts_write_external_storage" > /dev/null 2>&1; do |
| 239 | echo "************************************************************" |
| 240 | echo "Grant External storage write permissions to MLTS to proceed!" |
| 241 | echo "************************************************************" |
| 242 | read -n 1 -r -p "Continue? (press any key)" |
| 243 | echo |
| 244 | done |
| 245 | else |
| 246 | adb root |
| 247 | adb shell "pm grant com.android.nn.benchmark.app android.permission.WRITE_EXTERNAL_STORAGE" |
| 248 | # Skip setup wizard and remount (read-write) |
| 249 | if ! adb shell test -f /data/local.prop; then |
| 250 | adb shell 'echo ro.setupwizard.mode=DISABLED > /data/local.prop' |
| 251 | adb shell 'chmod 644 /data/local.prop' |
| 252 | adb shell 'settings put global device_provisioned 1*' |
| 253 | adb shell 'settings put secure user_setup_complete 1' |
| 254 | adb disable-verity |
| 255 | adb reboot |
| 256 | sleep 5 |
| 257 | adb wait-for-usb-device root |
| 258 | adb wait-for-usb-device remount |
| 259 | sleep 5 |
| 260 | fi |
| 261 | set +e |
| 262 | # Enable menu key press through adb |
| 263 | adb shell 'echo testing > /data/local/enable_menu_key' |
| 264 | # Leave screen on (affects scheduling) |
| 265 | adb shell settings put system screen_off_timeout 86400000 |
| 266 | # Stop background apps, seem to take ~10% CPU otherwise |
| 267 | adb shell 'pm disable com.google.android.googlequicksearchbox' |
| 268 | adb shell 'pm list packages -f' | sed -e 's/.*=//' | sed 's/\r//g' | grep "com.breel.wallpapers" | while read pkg; do adb shell "pm disable $pkg"; done; |
| 269 | set -e |
Przemyslaw Szczepaniak | f1e9334 | 2018-10-10 14:16:53 +0100 | [diff] [blame] | 270 | fi |
Przemyslaw Szczepaniak | f1e9334 | 2018-10-10 14:16:53 +0100 | [diff] [blame] | 271 | fi |
| 272 | |
Przemyslaw Szczepaniak | 15c1f35 | 2018-10-18 13:14:34 +0100 | [diff] [blame] | 273 | adb shell setprop debug.nn.cpuonly 0 |
Stefano Galarraga | 4edc2ea | 2020-03-02 15:38:02 +0000 | [diff] [blame] | 274 | adb shell setprop debug.nn.vlog "''" |
Przemyslaw Szczepaniak | 9429af4 | 2018-09-28 17:07:24 +0100 | [diff] [blame] | 275 | |
Przemyslaw Szczepaniak | 9429af4 | 2018-09-28 17:07:24 +0100 | [diff] [blame] | 276 | # Menukey - make sure screen is on |
| 277 | adb shell "input keyevent 82" |
| 278 | # Show homescreen |
| 279 | adb shell wm dismiss-keyguard |
Stefano Galarraga | 38292a9 | 2020-06-09 16:40:19 +0100 | [diff] [blame] | 280 | |
| 281 | if [[ "$MODE" == "scoring" ]]; then |
| 282 | LOGDIR=$(mktemp -d)/mlts-logs |
| 283 | HOST_CSV=$LOGDIR/benchmark.csv |
| 284 | RESULT_HTML=$LOGDIR/result.html |
ohadagoogle | f45ee41 | 2023-02-02 10:13:05 +0000 | [diff] [blame] | 285 | DEVICE_CSV=/storage/emulated/0/mlts_benchmark.csv |
Stefano Galarraga | 38292a9 | 2020-06-09 16:40:19 +0100 | [diff] [blame] | 286 | |
| 287 | mkdir -p $LOGDIR |
| 288 | echo Creating logs in $LOGDIR |
| 289 | |
| 290 | # Remove old benchmark csv data |
| 291 | adb shell rm -f ${DEVICE_CSV} |
| 292 | fi |
Slava Shklyaev | e8198d4 | 2019-05-15 16:43:46 +0100 | [diff] [blame] | 293 | |
Przemyslaw Szczepaniak | 9429af4 | 2018-09-28 17:07:24 +0100 | [diff] [blame] | 294 | # Set the shell pid as a top-app and run tests |
Slava Shklyaev | e8198d4 | 2019-05-15 16:43:46 +0100 | [diff] [blame] | 295 | time adb shell "echo $$ > /dev/stune/top-app/tasks; am instrument ${AM_INSTRUMENT_FLAGS} -w -e class $CLASS com.android.nn.benchmark.app/androidx.test.runner.AndroidJUnitRunner" |
Przemyslaw Szczepaniak | 9429af4 | 2018-09-28 17:07:24 +0100 | [diff] [blame] | 296 | |
Stefano Galarraga | 38292a9 | 2020-06-09 16:40:19 +0100 | [diff] [blame] | 297 | if [[ "$MODE" == "scoring" ]]; then |
| 298 | adb pull $DEVICE_CSV $HOST_CSV |
| 299 | echo Benchmark data saved in $HOST_CSV |
| 300 | |
| 301 | $ANDROID_BUILD_TOP/test/mlts/benchmark/results/generate_result.py $HOST_CSV $RESULT_HTML |
| 302 | echo Results stored in $RESULT_HTML |
| 303 | xdg-open $RESULT_HTML |
| 304 | fi |