如何为 android arm64_v8a 构建 tensorflow benchmark_model?

How to build tensorflow benchmark_model for android arm64_v8a?

我在 Tensorflow 1.8 文件夹中使用以下命令

bazel build -c opt --cxxopt='--std=c++11' \
//tensorflow/tools/benchmark:benchmark_model \
--crosstool_top=//external:android/crosstool \
--host_crosstool_top=@bazel_tools//tools/cpp:toolchain \
--cpu=arm64-v8a --verbose_failures

它给我错误:

ERROR: No default_toolchain found for cpu 'arm64-v8a'. Valid cpus are: [
  k8,
  local,
  armeabi-v7a,
  x64_windows,
  x64_windows_msvc,
  x64_windows_msys,
  s390x,
  ios_x86_64,
]
INFO: Elapsed time: 0.315s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (0 packages loaded)

Ubuntu 16.04,Bazel 0.14.1,Tensorflow 1.8

这是因为 Android NDK 尚未在 root WORKSPACE file. Download the Android NDK 中配置,将以下行添加到 WORKSPACE:

android_ndk_repository(
    name="androidndk",
    path="<PATH_TO_NDK>",
)

我明白了。使用 bazel 0.10.1、SDK API 级别 27、NDK 15、构建工具 27.0.3、tensorflow 1.8。

第一个运行

./configure

然后

bazel build --config=monolithic --cxxopt=--std=c++11 //tensorflow/tools/benchmark:benchmark_model --config=android_arm64 --cpu=arm64-v8a --fat_apk_cpu=arm64-v8a