使用所需的优化标志重新构建 Tensorflow

Cha*_*kov 6 tensorflow

并提前感谢您的考虑,

我刚刚使用以下过程安装了 tensorflow(在一台已经安装了 Ubuntu 16.04 和 CUDA 8.0 的新机器上):

最初,我使用--copt=-march=native. 我收到了消息

W tensorflow/core/platform/cpu_feature_guard.cc:45] TensorFlow 库并未编译为使用 SSE3 指令,但这些指令可在您的机器上使用,并且可以加速 CPU 计算。

W tensorflow/core/platform/cpu_feature_guard.cc:45] TensorFlow 库未编译为使用 SSE4.1 指令,但这些指令可在您的机器上使用,并且可以加速 CPU 计算。

W tensorflow/core/platform/cpu_feature_guard.cc:45] TensorFlow 库未编译为使用 SSE4.2 指令,但这些指令可在您的机器上使用,并且可以加速 CPU 计算。

W tensorflow/core/platform/cpu_feature_guard.cc:45] TensorFlow 库没有被编译为使用 AVX 指令,但这些在您的机器上可用并且可以加速 CPU 计算。

W tensorflow/core/platform/cpu_feature_guard.cc:45] TensorFlow 库并未编译为使用 AVX2 指令,但这些指令可在您的机器上使用,并且可以加速 CPU 计算。

W tensorflow/core/platform/cpu_feature_guard.cc:45] TensorFlow 库没有被编译为使用 FMA 指令,但这些在您的机器上可用并且可以加速 CPU 计算。

因此,为了解决这个问题,我搜索了解决方案并使用了以下如何使用 SSE4.2 和 AVX 指令编译 Tensorflow的答案

通过使用 nVidia 的上述程序,从

bazel build -c opt --copt=-mavx --copt=-mavx2 --copt=-mfma --copt=-mfpmath=both --copt=-msse4.2 --config=cuda -k //tensorflow/tools/pip_package:build_pip_package
Run Code Online (Sandbox Code Playgroud)

但我仍然收到与上述相同的消息。我觉得好像我犯了一个非常简单的错误,有什么想法吗?

谢谢!

Adr*_*ano 5

在 SIMD 指令优化可用 (1.0r) 之前,按照 NVIDIA 说明将 TensorFlow 存储库重置为较旧的提交:

git reset --hard 70de76e

此提交可追溯到此功能尚未实现时的先前版本,因此它实际上按预期工作。

解决方案是遵循官方 TensorFlow 文档

对于未来的情况,始终建议在寻求第三方解决方案之前使用官方资源,因为它们可能更有帮助,官方资源更可靠且维护得更好。

请注意,由于上述原因,在配置期间不会提示您希望使用哪些 CPU 指令来构建 TF,因此您无法使用它们进行构建。

Please specify optimization flags to use during compilation when bazel option "--config=opt" is specified [Default is -march=native]:

相应地遵循官方文档,它将起作用。如果您有任何后续问题,请随时提出,或者如果您遇到任何问题,请在 Github 上提出问题 :)