Tensorflow编译加速CPU

时间:2017-02-02 08:47:37

标签: tensorflow

我在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计算。

请帮我解决这个问题,以便我可以以最佳的方式使用我的机器。

2 个答案:

答案 0 :(得分:2)

这些警告只是说如果你从源代码构建TensorFlow,它可以在你的机器上运行得更快。没有解决方案,因为它不是问题,而是用于向用户提供此信息的预期行为。

默认情况下,这些CPU指令未启用,以提供与大多数计算机更广泛的兼容性。

正如文档所说:

  

TensorFlow检查启动时是否已使用CPU上可用的优化进行编译。如果未包含优化,TensorFlow将发出警告,例如不包括AVX,AVX2和FMA指令。

有关详细信息,请参阅Performance Guide

答案 1 :(得分:0)

您看到的这些警告告诉您编译的代码不使用您拥有的这些说明,但不会使用所有CPU。当维护者编译存储库的代码时,他们需要编译它以便它支持大多数CPU,这意味着它们告诉编译器使用特定于体系结构的指令。

如果您希望程序包使用您拥有的所有指令,则需要自行编译,或者称为从源代码安装。您可以找到有关如何执行此操作的文档here,一旦您从源代码编译tensorflow,您就应该阅读performance specific instructions

然而,在一天结束时,对于真实世界的应用程序,您可能真的需要GPU。确实,这些CPU指令会为您带来一些性能提升,但这与使用GPU无法相提并论。