Tensorflow编译加速CPU

4
在Python 2.7中导入TensorFlow后,使用以下命令:sess = tf.Session() 警告/错误:

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

2017-02-02 00:41:48.616602: W tensorflow/core/platform/cpu_feature_guard.cc:45] TensorFlow库未编译为使用AVX指令,但这些指令在您的计算机上可用,可以加速CPU计算。

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

2017-02-02 00:41:48.616624: W tensorflow/core/platform/cpu_feature_guard.cc:45] TensorFlow库未编译为使用FMA指令,但这些指令在您的计算机上可用,可以加速CPU计算。

请帮助我修复此问题,以便我能够充分发挥我的计算机性能。

你好,你是如何安装tensorflow的?使用了pip方式还是从源代码构建的? - Giridhur
必须使用-march=native标志从源代码构建。 - Yaroslav Bulatov
@Gridhur 我是根据以下网站提供的一些指导,从源代码构建了它:链接 - va4az
1
可能是如何使用SSE4.2和AVX指令编译Tensorflow?的重复问题。 - Tai Christian
2个回答

2
这些警告只是在说,如果您从源代码构建TensorFlow,则可以使其在您的计算机上运行得更快。这不是问题,而是旨在向用户提供此信息的预期行为。
这些CPU指令默认未启用,以提供与大多数计算机的广泛兼容性。
正如文档所述:
“TensorFlow在启动时检查是否已使用CPU上可用的优化进行编译。如果没有包含优化,则TensorFlow将发出警告,例如未包括AVX、AVX2和FMA指令。”
有关所有详细信息,请参阅性能指南

@Adriano,我已经从源代码构建了它。 - va4az
@va4az 当你配置TensorFlow时,会提示你想启用哪些标志,如果你让它保持默认值,它将启用CPU支持的指令,并使用它们构建TensorFlow。或者你没有这些可用,或者你没有使用它们进行构建。 使用gcc -march=native -Q --help=target | grep enable获取可用的优化选项。有关使用这些指令进行编译的更多信息,请参见此问题 - Adriano

0

你看到的这些警告是在告诉你编译后的代码没有使用你所拥有的指令,但并不是所有的CPU都是这样。当维护者为存储库编译代码时,他们需要编译支持大多数CPU的代码,这意味着他们要告诉编译器使用特定于架构的指令。

如果你想让软件包使用你拥有的所有指令,你需要自己编译它,或者所谓的从源代码安装。你可以在这里找到如何操作的文档,一旦你熟悉了如何从源代码编译tensorflow,那么你应该去阅读性能特定的指令

然而,说到底,对于实际应用来说,你可能真的需要一个GPU。虽然这些CPU指令可以给你带来一点性能提升,但这与使用GPU相比还是无法相提并论的。


然而,说到实际应用,你可能真的需要一个GPU。但对于推理来说通常相反。 - Michael Ramos

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接