2017-02-02 59 views
3

,因爲我用下面的命令在Python 2.7進口tensorflow後: sess = tf.Session()Tensorflow編譯加快CPU

警告/錯誤:

tensorflow /核心/平臺/ cpu_feature_guard.cc:45 ] TensorFlow 庫未編譯爲使用SSE4.2指令,但是您的機器上可以使用這些指令,並且可以加快CPU計算速度。

2017年2月2日00:41:48.616602:W tensorflow /核心/平臺/ cpu_feature_guard.cc:45] TensorFlow 庫編譯時不使用AVX指令,但這些都是可以 你的機器上並可以加速CPU的計算。

2017年2月2日00:41:48.616614:W tensorflow /核心/平臺/ cpu_feature_guard.cc:45] TensorFlow 庫編譯時不使用AVX2指令,但這些都是可以 你的機器上並可以加速CPU的計算。

2017年2月2日00:41:48.616624:W tensorflow /核心/平臺/ cpu_feature_guard.cc:45] TensorFlow 庫編譯時不使用FMA指令,但這些都是可以 你的機器上並可以加速CPU的計算。

請幫我解決這個問題,這樣我可以使用我的機器以最佳的功率。

+0

嗨,你是如何去安裝tensorflow?使用'pip'方式還是從源代碼構建它? – Giridhur

+0

必須使用-march = native flag從源代碼構建 –

+0

@Gridhur我已經使用以下網站提供的某些指示從源代碼構建它:[link](https://alliseesolutions.wordpress.com/2016/09/08/install -gpu-tensorflow-from-sources -w-ubuntu-16-04-and-cuda-8-0-rc /) – va4az

回答

2

這些警告只是說如果您從源碼構建TensorFlow,它可以在您的機器上運行得更快。沒有解決辦法,因爲這不是問題,而是向用戶提供此信息的預期行爲。

這些CPU指令默認情況下未啓用,以提供與大多數機器的更廣泛的兼容性。

由於文檔說:

在啓動TensorFlow檢查它是否已經被編譯在CPU上提供的優化。如果不包括優化,則TensorFlow將發出警告,例如,不包括AVX,AVX2和FMA指令。

有關詳細信息,請參閱Performance Guide

+0

@ Adriano,我從源頭上構建它。 – va4az

+0

@ va4az在配置TensorFlow時,系統會提示您要啓用哪些標誌,當前如果您將其設置爲默認值,則會啓用CPU支持的指令以及TensorFlow與它們一起構建的指令。或者你沒有這些可用或者你沒有與他們一起構建。 使用'gcc -march = native -Q --help = target | grep enable'來獲得可用的優化。請參閱[這個問題](http://stackoverflow.com/questions/41293077/how-to-compile-tensorflow-with-sse4-2-and-avx-instructions)瞭解更多關於編譯這些指令的信息 – Adriano

-1

您看到的這些警告,告訴您編譯的代碼不會使用您擁有的這些指令,但不是所有的CPU。當維護人員爲存儲庫編譯代碼時,他們需要對其進行編譯,以便支持大部分CPU,這意味着他們會告訴編譯器使用特定於體系結構的指令。

如果您希望軟件包使用您的所有說明,則需要自行編譯,或者從源代碼安裝安裝。你可以找到關於如何做到這一點的文檔here,一旦你很容易從源碼編譯tensorflow,那麼你應該去閱讀performance specific instructions

但是,在一天結束時,對於真實世界的應用程序,您可能確實需要GPU。確實,這些CPU指令可以提升性能,但這與使用GPU無法比擬。