我正在使用tensorflow(没有GPU支持),而且我看到的性能与预期相比有相当大的影响。所以,我认为是时候关注这些警告了:
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations.
我看到有些人声称他们已经接近速度提高了10倍,并按照这些说明进行构建。
我在这方面发现的说明似乎与旧版本的TF(v <1.0)有关。我想知道是否有人能指出我使用更新版本的tf构建正确的bazel命令?
按照此处的说明在Mac OSX上安装python3:https://www.tensorflow.org/install/install_sources并为CUDA支持选择“否”。
并使用bazel命令:
bazel build --linkopt='-lrt' -c opt --copt=-march=native --copt=-mavx --copt=-msse4.2 --copt=-msse4.1 //tensorflow/tools/pip_package:build_pip_package
然而,这导致许多页面的更改/错误...主要是形式:
target '//tensorflow/contrib/learn:learn' depends on deprecated target '//tensorflow/contrib/session_bundle:exporter': Use SavedModel Builder instead.
和
external/protobuf/python/google/protobuf/pyext/message_factory.cc:78:28: warning: ISO C++11 does not allow conversion from string literal to 'char *' [-Wwritable-strings]
修改
我会注意到,我只看到从源头开始建立速度的边际增长。
答案 0 :(得分:1)
如评论中所述,这些警告不会阻止构建TensorFlow。
关于使用bazel构建TensorFlow的命令,如果在配置期间设置了-march=native
,则无需显式添加其他优化标志,因为TensorFlow已经使用CPU架构中提供的所有SIMD指令进行编译。
成功配置默认为您的体系结构(-march=native
)的优化后,构建TF的命令是:
bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package
如果您碰巧选择了特定的标志,则需要添加它们,例如:
bazel build -c opt --copt=-mavx --copt=-mavx2 --copt=-mfma //tensorflow/tools/pip_package:build_pip_package