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

时间:2017-04-09 20:06:47

标签: tensorflow

并提前感谢您的考虑,

我刚刚使用以下procedure安装了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计算。

因此,为了解决这个问题,我搜索了解决方案并使用了以下答案 How to compile Tensorflow with SSE4.2 and AVX instructions?

从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

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

谢谢!

1 个答案:

答案 0 :(得分:4)

通过遵循NVIDIA指令,您可以在SIMD指令优化可用(1.0r)之前将TensorFlow存储库重置为较旧的提交:

git reset --hard 70de76e

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

解决方案是遵循official TensorFlow documentation

对于未来情况,建议在联系第三方解决方案之前使用官方资源,因为它们可能会有所帮助,官方资源更可靠,维护更好。

请注意,在配置过程中,由于上述原因,您不会提示要使用哪种CPU指令,因此,您无法使用它们进行构建。

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

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