All of lore.kernel.org
 help / color / mirror / Atom feed
* [thud/master] [PATCH 2/3 v2] tensorflow-lite: add scripts for benchmarking
@ 2019-11-13 17:51 Hongmei Gou
  0 siblings, 0 replies; only message in thread
From: Hongmei Gou @ 2019-11-13 17:51 UTC (permalink / raw)
  To: meta-arago; +Cc: Hongmei Gou

Signed-off-by: Hongmei Gou <a0271529@ti.com>
---
v2 changes:
Remove proxy option when running wget. Instead, prompt user to set up
proxy before running the scripts if wget fails.

 .../tensorflow-lite/files/tflite-benchmark.sh | 59 +++++++++++++++++++
 .../tensorflow-lite/tensorflow-lite_1.15.bb   |  6 +-
 2 files changed, 64 insertions(+), 1 deletion(-)
 create mode 100644 meta-arago-extras/recipes-support/tensorflow-lite/files/tflite-benchmark.sh

diff --git a/meta-arago-extras/recipes-support/tensorflow-lite/files/tflite-benchmark.sh b/meta-arago-extras/recipes-support/tensorflow-lite/files/tflite-benchmark.sh
new file mode 100644
index 00000000..868b6c08
--- /dev/null
+++ b/meta-arago-extras/recipes-support/tensorflow-lite/files/tflite-benchmark.sh
@@ -0,0 +1,59 @@
+#!/bin/sh
+
+#list of model packages
+declare -a model_list=(
+"http://storage.googleapis.com/download.tensorflow.org/models/mobilenet_v1_2018_08_02/mobilenet_v1_1.0_224_quant.tgz"
+"http://storage.googleapis.com/download.tensorflow.org/models/tflite_11_05_08/mobilenet_v2_1.0_224_quant.tgz"
+"http://storage.googleapis.com/download.tensorflow.org/models/inception_v1_224_quant_20181026.tgz"
+"http://storage.googleapis.com/download.tensorflow.org/models/inception_v2_224_quant_20181026.tgz"
+"http://storage.googleapis.com/download.tensorflow.org/models/tflite_11_05_08/inception_v3_quant.tgz"
+"http://storage.googleapis.com/download.tensorflow.org/models/inception_v4_299_quant_20181026.tgz"
+"http://storage.googleapis.com/download.tensorflow.org/models/tflite/coco_ssd_mobilenet_v1_1.0_quant_2018_06_29.zip"
+)
+
+# create a new directory to host and unpack the models
+rm -rf ~/tflite-benchmark
+mkdir ~/tflite-benchmark
+
+# Set maximal number of threads to the number of arm cores
+max_num_threads=`nproc`
+
+# TFLite install dir on filesystem
+tflite_install_dir=$(find /usr/share -maxdepth 1 -type d -name "tensorflow-lite*")
+
+for model_link in "${model_list[@]}"
+do
+  # download the model package to modeldir
+  modelpkg="${model_link##*/}"
+  modeldir="${modelpkg%.*}"
+
+  mkdir ~/tflite-benchmark/$modeldir
+  cd ~/tflite-benchmark/$modeldir
+
+  echo "Downloading $modelpkg..."
+  wget "$model_link"
+  if [[ $? -ne 0 ]]; then
+    echo "wget failed. Set up http proxy as needed before running the scripts!"
+    exit 1
+  fi
+
+  # unpack the model package
+  if [[ $modelpkg =~ \.tgz$ ]]; then
+    tar -xzvf $modelpkg
+  fi
+  if [[ $modelpkg =~ \.zip$ ]]; then
+    unzip $modelpkg
+  fi
+
+  # run benchmark for the model
+  for model in *.tflite; do
+    for num_threads in $( seq 1 $max_num_threads )
+      do
+        echo "Running benchmark_model for $model with $num_threads thread(s)..."
+        $tflite_install_dir/examples/benchmark_model --graph=${model} --num_threads=$num_threads --enable_op_profiling=true > ${modeldir}_thread_${num_threads}.log
+        cat ${modeldir}_thread_${num_threads}.log | grep Timings
+      done
+  done
+done
+
+echo "Benchmarking completed!"
diff --git a/meta-arago-extras/recipes-support/tensorflow-lite/tensorflow-lite_1.15.bb b/meta-arago-extras/recipes-support/tensorflow-lite/tensorflow-lite_1.15.bb
index c676177b..aade3a1d 100644
--- a/meta-arago-extras/recipes-support/tensorflow-lite/tensorflow-lite_1.15.bb
+++ b/meta-arago-extras/recipes-support/tensorflow-lite/tensorflow-lite_1.15.bb
@@ -33,6 +33,7 @@ SRC_URI = "git://github.com/tensorflow/tensorflow.git;branch=r${PV};protocol=htt
     http://download.tensorflow.org/models/mobilenet_v1_2018_08_02/mobilenet_v1_1.0_224_quant.tgz;name=mobilenet_v1_quant;subdir=${WORKDIR}/model;destsuffix=model \
     file://apply-modification-for-tflite-${PV}-to-eigen.patch \
     file://0001-Makefile-add-label_image-example-${PV}.patch \
+    file://tflite-benchmark.sh \
     file://tensorflow-lite.pc.in"
 
 SRC_URI[mobilenet_v1_quant.md5sum] = "36af340c00e60291931cb30ce32d4e86"
@@ -40,7 +41,7 @@ SRC_URI[mobilenet_v1_quant.sha256sum] = "d32432d28673a936b2d6281ab0600c71cf7226d
 
 SRCREV = "590d6eef7e91a6a7392c8ffffb7b58f2e0c8bc6b"
 
-PR = "r1"
+PR = "r2"
 
 S = "${WORKDIR}/git"
 
@@ -128,6 +129,9 @@ do_install() {
     install -m 0644 ${S}/tensorflow/lite/examples/label_image/testdata/grace_hopper.bmp ${D}${datadir}/${PN}-${PV}/examples
     install -m 0644 ${S}/tensorflow/lite/java/ovic/src/testdata/labels.txt ${D}${datadir}/${PN}-${PV}/examples
     install -m 0644 ${WORKDIR}/model/mobilenet_v1_1.0_224_quant.tflite ${D}${datadir}/${PN}-${PV}/examples
+    # install scripts for benchmarking
+    install -d ${D}${bindir}
+    install -m 0755 ${WORKDIR}/tflite-benchmark.sh ${D}/${bindir}
 }
 
 PACKAGES += "${PN}-examples"
-- 
2.17.1



^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2019-11-13 17:56 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-13 17:51 [thud/master] [PATCH 2/3 v2] tensorflow-lite: add scripts for benchmarking Hongmei Gou

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.