从源代码构建tensorflow以使用SSE3和SSE4

时间:2017-04-22 15:56:32

标签: tensorflow

每当我使用tensorflow时,它会显示消息“TensorFlow库未编译为使用SSE3指令,但这些指令在您的计算机上可用并且可以加速CPU计算”和2个类似的消息。 所以我决定从源代码构建tensorflow来摆脱这些消息。我在Debian上使用python 3.5,并按照https://www.tensorflow.org/install/install_sources上的说明操作(仅CPU,没有GPU)。 它在构建期间询问构建是否应该是它正在进行构建的机器,我选择了它,它包含-march = native在某些编译器选项中。 一切似乎都有效,但是当我运行python3来测试构建时,它仍然会给出关于“TensorFlow库未编译为使用SSE3指令,但这些指令可用......”等消息。如何进行构建使用它运行的硬件?

1 个答案:

答案 0 :(得分:1)

有类似的问题,而且大部分答案都是错误的。他们说有必要在构建中指定“--copt = -msse4.1 --copt = -msse4.2”等选项;事实并非如此。使用默认选项“-march = native”,GNU编译器将使用SSE4.1和SSE4.2指令(如果可用)。

真正的问题是,如果你从源构建tensorflow,在用pip安装默认构建之后,pip将不会用新构建替换旧构建。一切似乎都有效,但您的旧版本仍保留在〜/ .local下的目录中。 解决方案只是用pip卸载旧的tensorflow('pip uninstall tensorflow'或'pip3 uninstall tensorflow'),然后从源重建。如果你已经完成了构建,并想知道为什么似乎没有任何改变,你不需要重复构建,但可以只执行最后几步(https://www.tensorflow.org/install/install_sources),即bazel-bin / tensorflow / tools / pip_package / build_pip_package / tmp / tensorflow_pkg,然后是pip install。