2016-07-23 20 views
16

Ich habe Tensorflow (GPU) unter Linux Ubuntu 16.04 erfolgreich installiert und ein paar kleine Änderungen vorgenommen, damit es mit der neuen Ubuntu LTS Version funktioniert.Wie kann ich Tensorflow auf einer GPU mit der Fähigkeit 2.0 laufen lassen?

Allerdings dachte ich (wer weiß warum), dass meine GPU die Mindestanforderung einer Rechenleistung von mehr als 3,5 erfüllte. Das war nicht der Fall, da meine GeForce 820M nur 2,1 hat. Gibt es eine Möglichkeit, die Tensorflow-GPU-Version mit meiner GPU zu betreiben?

Ich stelle diese Frage, da es anscheinend keine Möglichkeit gab, die Tensorflow-GPU-Version auf Ubuntu 16.04 zu machen, aber durch die Suche im Internet fand ich heraus, dass das nicht der Fall war und ich machte es fast geschafft, wäre es nicht so unbefriedigt Anforderung. Jetzt frage ich mich, ob dieses Problem mit der GPU-Compute-Funktion behoben werden könnte.

+0

Ich schaute diese GPU und es scheint sehr schwach. Wenn ich Sie wäre, würde ich nur CPU Tensorflow verwenden, da ich nicht glaube, dass es einen großen Leistungsunterschied geben wird. Vielleicht sogar schneller. – chasep255

+0

@ chasep255 Ich konnte mxnet auf GPU (Python) verwenden. Es lief ein bisschen schneller. Ja, der Unterschied ist nicht so groß, aber wenn man viele Epochen macht, kann auch ein kleiner Unterschied helfen. Wenn das Anpassen des Pakets an meine Maschine nicht viel Aufwand erfordert, denke ich, dass ich es versuchen könnte. – mickkk

+0

@mickkk Ich bemerkte, dass der Tensorflow auch Opencl unterstützt ... Nicht sicher, ob dies als Alternative verwendet werden kann. Ich werde versuchen, es jetzt so zu bauen. Meldet sich zurück, wenn es in Ordnung ist. –

Antwort

9

Die GPU-Version von Tensorflow requires compute capability 3.0 or higher (and uses cuDNN) für den Zugriff auf die GPU. Von here

TensorFlow GPU-Unterstützung erfordert eine GPU-Karte mit NVidia Compute Capability> = 3.0.

cuDNN also requires a GPU of cc3.0 or higher:

cuDNN auf Windows, Linux und MacOS-Systeme mit Pascal, Kepler, Maxwell, Tegra K1 oder Tegra X1 GPUs unterstützt wird.

  • Kepler = cc3.x
  • Maxwell = cc5.x
  • Pascal = cc6.x
  • TK1 = cc3.2
  • TX1 = cc5.3

Fermi-GPUs (cc2.0, cc2.1) werden von cuDNN nicht unterstützt.

Ältere GPUs (z. B. Rechenfähigkeit 1.x) werden von cuDNN ebenfalls nicht unterstützt.

Beachten Sie, dass es war nie entweder eine Version von cuDNN oder eine beliebige Version von TF, die NVIDIA GPUs offiziell unterstützt weniger als cc3.0. Die ursprüngliche Version von cuDNN begann mit cc3.0-GPUs, und die ursprüngliche Version von TF begann mit der Anforderung von cc3.0 GPUs.

+0

Jetzt frage ich mich, warum ich mxnet auf GPU mit cuDNN obwohl laufen konnte ... Im Prinzip konnten Sie nicht sogar Tensorflow GPU auf dem letzten Ubuntu LTS installieren. – mickkk

+0

cuDNN funktioniert nicht auf einer cc2.1 GPU. Vielleicht hat mxnet einen gpu-fähigen Pfad, der cuDNN nicht benötigt. Dies scheint hier der Fall zu sein (http://mxnet.readthedocs.io/en/latest/how_to/build.html). Beachten Sie, dass die GPU-Unterstützung für cc2.0 und höher beansprucht wird, aber dass "CUDNN zur ** Beschleunigung ** der GPU-Berechnung" verwendet wird. –

6

Sep.2017 Update: Keine Möglichkeit, das ohne Probleme und Schmerzen zu tun. Ich habe alle Möglichkeiten ausprobiert und sogar einen Trick angewendet, um es zu erzwingen, aber schließlich musste ich aufgeben. Wenn Sie mit Tensorflow ernst sind, dann gehen Sie einfach weiter und kaufen 3,0 compute Fähigkeit GPU.

Dies ist ein Trick tensorflow Run auf 2.0 Rechenkapazität GPU (nicht offiziell) zu zwingen:

  1. Suchen Sie die Datei in Lib/site-packages/tensorflow/Python/_pywrap_tensorflow_internal.pyd (orLib/site-packages/Tensorfluss/python/_pywrap_tensorflow.PYD)
  2. Öffnen Sie sie mit Notepad ++ oder etwas ähnliches

  3. Suche nach dem ersten Auftreten von 3\.5.*5\.2 regex

  4. Sie sehen die 3.0 vor 3.5 * 5.2, es

bis 2,0 ändern

Ich habe wie oben geändert und kann einfache Berechnungen mit GPU, aber stecken bleiben mit seltsamen und unbekannten Problemen bei dem Versuch mit praktischen Projekten (diese Projekte laufen gut mit 3.0 compute capability GPU)

+5

Ich rate dringend, dies nicht zu tun. Nachdem ich diesen Trick auf meinem Laptop mit GeForce 800M-Ergebnissen umgesetzt habe, war das nicht korrekt. –

+1

Ja, es ist traurig, das herauszufinden. Meine GPU funktioniert auch nicht korrekt mit einem komplexen Modell (seltsame Fehler), während sie mit demselben Modell (gleicher Code) reibungslos mit GPU 3.0 laufen kann. –

+2

Vielen Dank, dass Sie die Probleme in Ihrem Experiment oben gemeldet haben. Es hilft mir, es einfach gehen zu lassen und zu verstehen, dass ich eine neue GPU bekommen muss, wenn ich TF laufen lassen will. :) @TinLuu, bitte bedenke, dass du deine Antwort so redest, dass sie Probleme aufzeigt, so dass andere, die diese Kommentare überspringen könnten, auch nicht auf diese Weise gehen! – mayank