在/tensorflow/contrib/lite/build_def.bzl中,代码指定要使用的优化标志:
def tflite_copts():
"""Defines compile time flags."""
copts = [
"-DFARMHASH_NO_CXX_STRING",
] + select({
str(Label("//tensorflow:android_arm64")): [
"-std=c++11",
"-O3",
],
str(Label("//tensorflow:android_arm")): [
"-mfpu=neon",
"-mfloat-abi=softfp",
"-std=c++11",
"-O3",
],
当使用下面的bazel命令为armeabi-v7a构建.so文件时,在select的第二部分中删除了“ -mfpu = neon”时,速度上显然存在差异。
bazel build --cxxopt='--std=c++11'
//tensorflow/contrib/lite/java:tensorflowlite \
--crosstool_top=//external:android/crosstool \
--host_crosstool_top=@bazel_tools//tools/cpp:toolchain \
--cpu=armeabi-v7a
但是,当构建arm64-v8a时,我认为使用的标志将是select的第一部分中指定的标志,即“ -std = c ++ 11”和“ -O3”。为什么没有指定“ -mfpu = neon”?我尝试添加它,但速度没有差别。
我如何控制是否对arm64-v8a使用氖气?