2017-02-02 11 views
3

Wie ich verwende den folgenden Befehl nach tensorflow in Python 2.7 importieren: sess = tf.Session()Tensorflow Compilation Beschleunigung CPU

Warnungen/Fehler:

tensorflow/core/platform/cpu_feature_guard.cc: 45 ] Die TensorFlow -Bibliothek wurde nicht kompiliert, um SSE4.2-Anweisungen zu verwenden, aber diese sind auf Ihrem Computer verfügbar und könnten CPU-Berechnungen beschleunigen.

2017.02.02 00: 41: 48,616602: W tensorflow/core/platform/cpu_feature_guard.cc: 45] Die TensorFlow Bibliothek wurde nicht verwenden AVX Anweisungen kompiliert, aber diese sind auf Ihrem Rechner und könnte CPU-Berechnungen beschleunigen.

2017.02.02 00: 41: 48,616614: W tensorflow/core/platform/cpu_feature_guard.cc: 45] Die TensorFlow Bibliothek wurde nicht verwenden AVX2 Anweisungen kompiliert, aber diese sind auf Ihrem Rechner und könnte CPU-Berechnungen beschleunigen.

2017.02.02 00: 41: 48,616624: W tensorflow/core/platform/cpu_feature_guard.cc: 45] Die TensorFlow Bibliothek wurde nicht verwenden FMA Anweisungen kompiliert, aber diese sind auf Ihrem Rechner und könnte CPU-Berechnungen beschleunigen.

Bitte helfen Sie mir, dies zu beheben, damit ich meine Maschine optimal nutzen kann.

+0

Hallo, wie ging es dir bei der Installation von Tensorflow? Verwenden Sie den 'Pip' Weg oder haben Sie ihn aus der Quelle erstellt? – Giridhur

+0

Muss aus der Quelle mit -march = native flag erstellt werden –

+0

@Gridhur Ich hatte es aus der Quelle mit einigen Anweisungen auf den folgenden Websites erstellt: [link] (https://alliseesolutions.wordpress.com/2016/09/08/install -gpu-tensorflow-from-sources-w-ubuntu-16-04-und-cuda-8-0-rc /) – va4az

Antwort

2

Diese Warnungen sagen nur, wenn Sie TensorFlow aus der Quelle bauen, kann es schneller auf Ihrem Computer laufen. Es gibt keine Lösung, da es sich nicht um ein Problem handelt, sondern um ein beabsichtigtes Verhalten, um diese Informationen den Benutzern zur Verfügung zu stellen.

Diese CPU-Befehle wurden standardmäßig nicht aktiviert, um eine breitere Kompatibilität mit den meisten Computern zu gewährleisten.

Wie die Dokumentation sagt:

TensorFlow prüft beim Start, ob es mit den Optimierungen auf der CPU kompiliert wurde. Wenn die Optimierungen nicht enthalten sind, gibt TensorFlow Warnungen aus, z. AVX-, AVX2- und FMA-Anweisungen sind nicht enthalten.

Für alle Details hierzu siehe die Performance Guide.

+0

@ Adriano, ich hatte es aus der Quelle gebaut. – va4az

+0

@ va4az Bei der Konfiguration von TensorFlow wurden Sie gefragt, welche Flags Sie aktivieren möchten. Wenn Sie den Standardwert beibehalten, werden die Befehle aktiviert, die Ihre CPU unterstützt, und TensorFlow erstellt diese Befehle. Oder Sie haben diese nicht verfügbar oder Sie haben nicht mit ihnen gebaut. Verwenden Sie 'gcc -march = native -Q --help = target | grep aktivieren, um die Optimierungen verfügbar zu machen. Siehe [diese Frage] (http://stackoverflow.com/questions/41293077/how-to-compile-tensorflow-with-sse4-2-and-avx-instructions) für weitere Informationen zum Kompilieren mit diesen Anweisungen – Adriano

-1

Diese Warnungen, die Sie sehen, sagen Ihnen, dass der kompilierte Code nicht diese Anweisungen verwendet, die Sie haben, aber nicht alle CPUs da draußen. Wenn Betreuer Codes für Repositorys kompilieren, müssen sie sie so kompilieren, dass sie die Mehrheit der CPUs dort draußen unterstützen, was bedeutet, dass sie den Compiler anweisen, architekturspezifische Anweisungen zu verwenden.

Wenn Sie möchten, dass das Paket alle Anweisungen verwendet, die Sie haben, müssen Sie es selbst kompilieren, oder wie es von der Quelle installieren heißt. Sie können Dokumentation darüber finden, wie man das macht, here, und sobald Sie sich bequem kompilieren tensorflow aus der Quelle, dann sollten Sie gehen und lesen Sie die performance specific instructions.

Aber am Ende des Tages, für realworld-Anwendungen benötigen Sie wirklich eine GPU.Es ist richtig, dass diese CPU-Anweisungen ein bisschen Leistungssteigerung bringen, aber das ist nicht vergleichbar mit der Verwendung einer GPU.

Verwandte Themen