Tensorflow: Wunder 3.0?

Erstellt am 9. Nov. 2015  ·  101Kommentare  ·  Quelle: tensorflow/tensorflow

Gibt es Pläne, Cuda Compute Capability 3.0 zu unterstützen?

Hilfreichster Kommentar

Wenn Sie den neuesten TensorFlow-Code zum Erstellen für Cuda 3.0-Geräte synchronisieren, können Sie Folgendes tun. Die offizielle Dokumentation wird in Kürze aktualisiert. Aber so sieht es aus:

$ TF_UNOFFICIAL_SETTING=1 ./konfigurieren

... Gleich wie die offiziellen Einstellungen oben

WARNUNG: Sie konfigurieren inoffizielle Einstellungen in TensorFlow. Weil einige
Externe Bibliotheken sind nicht abwärtskompatibel, diese Einstellungen sind weitgehend
ungetestet und nicht unterstützt.

Bitte geben Sie eine Liste der durch Kommas getrennten Cuda-Rechenfunktionen an, die Sie verwenden möchten
bauen mit. Die Rechenleistung Ihres Geräts finden Sie unter:
https://developer.nvidia.com/cuda-gpus.
Bitte beachten Sie, dass jede zusätzliche Rechenkapazität erheblich zunimmt
Ihre Bauzeit und Binärgröße. [Standard ist: "3.5,5.2"]: 3.0

Einrichten von Cuda umfassen
Cuda lib64 einrichten
Cuda bin einrichten
Einrichten von Cuda nvvm
Konfiguration abgeschlossen

Alle 101 Kommentare

Offiziell werden Cuda Compute Capability 3.5 und 5.2 unterstützt. Sie können versuchen, andere Rechenfunktionen zu aktivieren, indem Sie das Build-Skript ändern:

https://github.com/tensorflow/tensorflow/blob/master/third_party/gpus/crosstool/clang/bin/crosstool_wrapper_driver_is_not_gcc#L236

Danke! Werde es ausprobieren und hier berichten.

Dies wird noch nicht offiziell unterstützt. Wenn Sie Cuda 3.0 jedoch lokal aktivieren möchten, müssen Sie hier die zusätzlichen Stellen ändern:

https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/common_runtime/gpu/gpu_device.cc#L610
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/common_runtime/gpu/gpu_device.cc#L629
Wobei das kleinere GPU-Gerät ignoriert wird.

Der offizielle Support wird schließlich in einer anderen Form kommen, in der wir sicherstellen, dass der Fix in allen verschiedenen Rechenumgebungen funktioniert.

Ich habe die Änderungen an den obigen Zeilen vorgenommen und konnte das grundlegende Beispiel auf der Seite "Erste Schritte" kompilieren und ausführen: http://tensorflow.org/get_started/os_setup.md#try_your_first_tensorflow_program - es hat sich nicht über gpu beschwert, aber es habe auch nicht gemeldet, die gpu zu verwenden.

Wie kann ich bei den nächsten Schritten helfen?

infojunkie@, könnten Sie Ihren Schritt posten und das Protokoll hochladen?

Wenn Sie diesem Beispiel folgen würden:

bazel build -c opt --config=cuda //tensorflow/cc:tutorials_example_trainer
bazel-bin/tensorflow/cc/tutorials_example_trainer --use_gpu

Wenn Sie die folgende Zeile sehen, wird das GPU-Logikgerät erstellt:

TensorFlow-Gerät erstellen (/gpu:0) -> (Gerät: ..., Name: ..., PCI-Bus-ID: ...)

Wenn Sie absolut sicher sein wollen, dass GPU verwendet wurde, setzen Sie CUDA_PROFILE=1 und aktivieren Sie den Cuda-Profiler. Wenn die Cuda-Profiler-Protokolle generiert wurden, war dies ein sicheres Zeichen dafür, dass eine GPU verwendet wurde.

http://docs.nvidia.com/cuda/profiler-users-guide/#command -line-profiler-control

Ich habe folgendes Protokoll:

I tensorflow/core/common_runtime/local_device.cc:25] Local device intra op parallelism threads: 8
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:888] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
I tensorflow/core/common_runtime/gpu/gpu_init.cc:88] Found device 0 with properties: 
name: GeForce GT 750M
major: 3 minor: 0 memoryClockRate (GHz) 0.967
pciBusID 0000:02:00.0
Total memory: 2.00GiB
Free memory: 896.49MiB
I tensorflow/core/common_runtime/gpu/gpu_init.cc:112] DMA: 0 
I tensorflow/core/common_runtime/gpu/gpu_init.cc:122] 0:   Y 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:643] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GT 750M, pci bus id: 0000:02:00.0)
I tensorflow/core/common_runtime/gpu/gpu_device.cc:643] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GT 750M, pci bus id: 0000:02:00.0)
I tensorflow/core/common_runtime/gpu/gpu_device.cc:643] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GT 750M, pci bus id: 0000:02:00.0)
I tensorflow/core/common_runtime/gpu/gpu_device.cc:643] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GT 750M, pci bus id: 0000:02:00.0)
I tensorflow/core/common_runtime/gpu/gpu_device.cc:643] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GT 750M, pci bus id: 0000:02:00.0)
I tensorflow/core/common_runtime/gpu/gpu_device.cc:643] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GT 750M, pci bus id: 0000:02:00.0)
I tensorflow/core/common_runtime/gpu/gpu_region_allocator.cc:47] Setting region size to 730324992
I tensorflow/core/common_runtime/gpu/gpu_device.cc:643] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GT 750M, pci bus id: 0000:02:00.0)
I tensorflow/core/common_runtime/gpu/gpu_device.cc:643] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GT 750M, pci bus id: 0000:02:00.0)
I tensorflow/core/common_runtime/gpu/gpu_device.cc:643] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GT 750M, pci bus id: 0000:02:00.0)
I tensorflow/core/common_runtime/gpu/gpu_device.cc:643] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GT 750M, pci bus id: 0000:02:00.0)
I tensorflow/core/common_runtime/local_session.cc:45] Local session inter op parallelism threads: 8

Ich denke, es bedeutet, dass die GPU gefunden und verwendet wurde. Ich kann den CUDA-Profiler ausprobieren, wenn Sie ihn für nützlich halten.

Bitte priorisieren Sie dieses Problem. Es blockiert die GPU-Nutzung sowohl auf OSX als auch auf AWS K520 und für viele Menschen ist dies die einzige verfügbare Umgebung.
Danke!

Nicht die netteste Lösung, aber kommentieren Sie einfach die Überprüfung der Cuda-Rechenversion in _gpu_device.c_ Zeile 610 bis 616 aus, kompilieren Sie sie neu, und die Amazon g2-GPU-Beschleunigung scheint gut zu funktionieren:

example

Als Referenz ist hier mein sehr primitiver Patch für die Arbeit mit Cuda 3.0: https://gist.github.com/infojunkie/cb6d1a4e8bf674c6e38e

@infojunkie Ich habe Ihren Fix angewendet, aber ich habe viele Nans in der Berechnungsausgabe:

$ bazel-bin/tensorflow/cc/tutorials_example_trainer --use_gpu
000006/000003 lambda =     -nan x = [0.000000 0.000000] y = [0.000000 0.000000]
000004/000003 lambda = 2.000027 x = [79795.101562 -39896.468750] y = [159592.375000 -79795.101562]
000005/000006 lambda = 2.000054 x = [39896.468750 -19947.152344] y = [79795.101562 -39896.468750]
000001/000007 lambda =     -nan x = [0.000000 0.000000] y = [0.000000 0.000000]
000002/000003 lambda =     -nan x = [0.000000 0.000000] y = [0.000000 0.000000]
000009/000008 lambda =     -nan x = [0.000000 0.000000] y = [0.000000 0.000000]
000004/000004 lambda =     -nan x = [0.000000 0.000000] y = [0.000000 0.000000]
000001/000005 lambda =     -nan x = [0.000000 0.000000] y = [0.000000 0.000000]
000006/000007 lambda =     -nan x = [0.000000 0.000000] y = [0.000000 0.000000]
000003/000006 lambda =     -nan x = [0.000000 0.000000] y = [0.000000 0.000000]
000006/000006 lambda =     -nan x = [0.000000 0.000000] y = [0.000000 0.000000]

@markusdr , das ist sehr seltsam. Könnten Sie die vollständigen Schritte zum Erstellen der Binärdatei posten?

Könnte, mit welcher GPU und welchem ​​Betriebssystem Sie arbeiten? Verwenden Sie Cuda 7.0 und Cudnn 6.5 V2?

Nur +1, um dieses Problem auf AWS so schnell wie möglich zu beheben. Wir haben keine anderen GPU-Karten für unsere Forschung.

Hallo, ich bin mir nicht sicher, ob dies ein separates Problem ist, aber ich versuche, mit einer CUDA 3.0-GPU (Geforce 660 Ti) zu bauen, und erhalte viele Fehler mit --config=cuda. Siehe die angehängte Datei unten. Es scheint nichts mit den oben empfohlenen Änderungen zu tun zu haben. Mir ist aufgefallen, dass versucht wird, eine temporäre compute_52.cpp1.ii-Datei zu kompilieren, die die falsche Version für meine GPU wäre.

Ich bin auf Ubuntu 15.10. Ich habe die host_config.h in den Cuda-Includes geändert, um die Versionsprüfung auf gcc zu entfernen. Ich verwende Cuda 7.0 und cuDNN 6.5 v2 wie empfohlen, obwohl ich auch neuere Versionen installiert habe.

cuda_build_fail.txt

Ja, ich habe Cuda 7.0 und Cudnn 6.5 auf einer EC2 g2.2xlarge-Instance mit diesem AIM verwendet:
cuda_7 - ami-12fd8178
ubuntu 14.04, gcc 4.8, cuda 7.0, atlas und opencv.
Zum Erstellen habe ich die Anweisungen auf tensorflow.org befolgt.

Es sieht so aus, als ob wir eine API-Inkompatibilität zwischen Compute Capability v3 und Compute Capability v3.5 sehen; Nach dem Patch-Fix von Infojunkie bin ich auf dieses Problem gestoßen

I tensorflow/core/common_runtime/gpu/gpu_device.cc:643] Erstellen des TensorFlow-Geräts (/gpu:0) -> (Gerät: 0, Name: Quadro K2100M, PCI-Bus-ID: 0000:01:00.0)
I tensorflow/core/common_runtime/local_session.cc:45] Lokale Sitzungs-Interop-Parallelismus-Threads: 8
F tensorflow/stream_executor/cuda/cuda_blas.cc:229] Prüfung fehlgeschlagen: f != nullptr _cublasCreate_v2 konnte nicht in cuBLAS DSO gefunden werden_; dlerror: bazel-bin/tensorflow/cc/tutorials_example_trainer: undefiniertes Symbol: cublasCreate_v2

Ich laufe auf Ubuntu 15.04, gcc 4.9.2, CUDA Toolkit 7.5, cuDNN 6.5;

+1 für die Unterstützung von Compute Capability v3

ist cublas installiert? und wo wird verlinkt
ls -lah /usr/local/cuda/lib64/libcublas.so ?

@allanzelener , welche Betriebssystem- und GCC-Versionen haben Sie? Ihre Fehler scheinen von inkompatiblen C++-Compilern zu stammen.

Es wird empfohlen, Ubuntu 14.04 und GCC 4.8 mit TensorFlow zu verwenden.

@vsrikarunyan , es ist besser, wie empfohlen CUDA Toolkit 7.0 zu verwenden. Sie können ein älteres CUDA-Toolkit zusammen mit Ihrem neueren Toolkit installieren. Richten Sie einfach TensorFlow „configure“ und vielleicht LD_LIBRARY_PATH auf CUDA 7.0, wenn Sie TensorFlow ausführen.

@avostryakov , @infojunkies früher Patch sollte auf AWS funktionieren.

https://gist.github.com/infojunkie/cb6d1a4e8bf674c6e38e

Ein offizieller Patch arbeitet sich durch die Pipeline. Es würde eine Konfigurationsoption verfügbar machen, mit der Sie Ihr Computeziel auswählen können. Aber darunter macht es ähnliche Änderungen. Ich habe es auf AWS g2 ausprobiert und festgestellt, dass es funktionieren würde, nachdem ich den NVIDIA-Treiber vollständig deinstalliert und den neuesten GPU-Treiber von NVIDIA neu installiert habe.

Auch hier ist die empfohlene Einstellung für AWS an dieser Stelle die folgende.
Ubuntu 14.04, GCC 4.8, CUDA-Toolkit 7.0 und CUDNN 6.5. Für die letzten beiden ist es in Ordnung, sie zu installieren, ohne Ihre vorhandene Installation anderer Versionen zu beeinträchtigen. Auch die offiziell empfohlenen Versionen für die letzten beiden könnten sich bald ändern.

Ich habe den gleichen Patch auf eine g2.2xlarge-Instanz angewendet und das gleiche Ergebnis wie @markusdr erhalten ... ein Haufen Omas.

@zheng-xq Ja, ich verwende Ubuntu 15.10 und habe GCC 5.2.1 verwendet. Das Problem war der Compiler. Ich konnte nicht herausfinden, wie ich den Compiler mit Bazel ändern kann, aber es scheint funktioniert zu haben, einfach gcc-4.8 zu installieren und update-alternatives zu verwenden, um die Symlinks in usr/bin zu ändern. (Weitere Informationen: http://askubuntu.com/questions/26498/choose-gcc-and-g-version). Danke für die Hilfe, bei weiteren Problemen melde ich mich wieder.

Ich habe dies auf einer g2.2xlarge-Instanz zum Laufen gebracht und das Trainingsbeispiel zum Laufen gebracht und mit dem nvidia-smi-Tool überprüft, ob die GPU aktiv war, aber beim Ausführen von mnists convolutional.py ging ihr der Speicher aus. Ich vermute, dass dies nur mit der Stapelgröße und der Tatsache zu tun hat, dass die AWS-GPUs nicht viel Speicher haben, wollte das aber nur rauswerfen, um sicherzustellen, dass es richtig klingt. Zur Verdeutlichung habe ich Folgendes ausgeführt, und es lief etwa 15 Minuten lang, und dann ging der Speicher aus.

python tensorflow/models/image/mnist/convolutional.py

@nbenhaim , was musstest du tun, damit es funktioniert?

@markusdr , @jbencook , das NAN ist ziemlich beunruhigend. Ich lief das gleiche Ding selbst, und hatte keine Probleme.

Wenn Sie die empfohlene Softwareeinstellung verwenden: Ubuntu 14.04, GCC 4.8, Cuda 7.0 und Cudnn 6.5, dann ist meine nächste Vermutung der Cuda-Treiber. Könnten Sie den neuesten Cuda-Treiber deinstallieren und neu installieren?

Dies ist die Sequenz, die ich auf AWS ausprobiert habe, Ihre Laufleistung kann variieren:

sudo apt-get remove --purge "nvidia*"
wget http://us.download.nvidia.com/XFree86/Linux-x86_64/352.55/NVIDIA-Linux-x86_64-352.55.run
sudo ./NVIDIA-Linux-x86_64-352.55.run --accept-license --no-x-check --no-recursion

Danke, dass du @zheng-xq nachgefragt hast – ich werde es heute versuchen.

Ein weiteres +1 für die Unterstützung von GPUs vor 3.5, als jemand anderes, dessen einzige realistische Option für das Training mit echten Daten AWS-GPU-Instanzen sind.

Selbst für lokale Tests stellt sich heraus, dass die GPU meines (neuen Entwickler-)Laptops 3.5 nicht unterstützt :-(

@anjishnu Ich habe gerade den Patch von @infojunkie https://gist.github.com/infojunkie/cb6d1a4e8bf674c6e38e befolgt, nachdem ich eine Neuinstallation durchgeführt und gemäß den Anweisungen erstellt habe.

Ein paar Kommentare: Auf dem von mir verwendeten AMI war das NVIDIA cuda Toolkit 6.5 installiert. Als ich also dem Link in der Tensorflow-Erste-Schritte-Anleitung folgte, lud ich die 7.0 .run-Datei für Ubuntu 14.04 herunter, aktualisierte den Treiber und installierte cuda 7.0 in /usr/local/cuda-7.0 ohne einen Symlink zu /usr/local/cuda zu erstellen, da ich bereits 6.5 installiert hatte und es nicht beenden wollte

Dann habe ich beim Erstellen einfach den richtigen Speicherort von cuda 7.0 angegeben. Eine verwirrende Sache ist, dass das Tutorial Sie beim Erstellen der Python-Bibliothek nicht daran erinnert, --config=cuda anzugeben, aber Sie müssen dies tun, wenn Sie möchten, dass die Python-Bibliothek gpu verwendet

@markusdr , @jbencook , ich habe auch einen NaN und alle möglichen durcheinandergebrachten Werte bekommen, als ich den Patch ursprünglich angewendet habe, aber was es behoben hat, war eine "Bazel-Bereinigung" und ein Neuaufbau von Grund auf neu, nachdem ich die in @infojunkie beschriebenen vorgeschlagenen Änderungen vorgenommen hatte 's Patch. Hast du das versucht?

Interessant ... nein, ich hatte noch keine Gelegenheit. Haben Sie versucht, CNN aus dem Handbuch „Erste Schritte“ auszuführen?

python tensorflow/models/image/mnist/convolutional.py

Bin gespannt, ob das richtig funktioniert hat.

@jbencook Wie ich bereits erwähnt habe, scheint convolutional.py korrekt zu laufen, aber nach etwa 15 Minuten stürzt es aufgrund von Speichermangel ab, aber die Ausgabe sieht korrekt aus und ich habe das Tool von nvidia-smi verwendet, um zu überprüfen, ob es tatsächlich auf der GPU läuft und es ist. Ich vermute, dass dies an der Stapelgröße liegt ... ich weiß, dass die gpus auf ec2 nicht so viel Speicher haben, aber ich bin mir im Moment wirklich nicht sicher, warum der Speicher knapp wird

Dem convolutional.py-Beispiel ging auch für mich auf einer GeForce GTX 780 Ti der GPU-Speicher aus.

Ich konnte es nach vielen Schmerzen auf AWS installieren. Siehe https://gist.github.com/erikbern/78ba519b97b440e10640 – Ich habe auch ein AMI erstellt: ami-cf5028a5 (in der Region Virginia)

Es funktioniert auf g2.2xlarge und g2.8xlarge und erkennt die Geräte korrekt (1 bzw. 4). Ich sehe jedoch keine Beschleunigung der 4 GPU-Karten auf dem g2.8xlarge. Beide Maschinen verarbeiten etwa 330 Beispiele/Sek., indem sie das CIFAR 10-Beispiel mit mehreren GPUs ausführen. Auch sehr ähnliche Leistung beim MNIST-Faltungsbeispiel. Es stürzt auch nach etwa 15 Minuten mit "Out of GPU memory, see memory state dump above" ab, wie einige andere oben erwähnt haben

Ich habe das CIFAR-Beispiel etwa eine Stunde lang laufen lassen und es scheint bisher ganz gut zu laufen

Wenn Sie den neuesten TensorFlow-Code zum Erstellen für Cuda 3.0-Geräte synchronisieren, können Sie Folgendes tun. Die offizielle Dokumentation wird in Kürze aktualisiert. Aber so sieht es aus:

$ TF_UNOFFICIAL_SETTING=1 ./konfigurieren

... Gleich wie die offiziellen Einstellungen oben

WARNUNG: Sie konfigurieren inoffizielle Einstellungen in TensorFlow. Weil einige
Externe Bibliotheken sind nicht abwärtskompatibel, diese Einstellungen sind weitgehend
ungetestet und nicht unterstützt.

Bitte geben Sie eine Liste der durch Kommas getrennten Cuda-Rechenfunktionen an, die Sie verwenden möchten
bauen mit. Die Rechenleistung Ihres Geräts finden Sie unter:
https://developer.nvidia.com/cuda-gpus.
Bitte beachten Sie, dass jede zusätzliche Rechenkapazität erheblich zunimmt
Ihre Bauzeit und Binärgröße. [Standard ist: "3.5,5.2"]: 3.0

Einrichten von Cuda umfassen
Cuda lib64 einrichten
Cuda bin einrichten
Einrichten von Cuda nvvm
Konfiguration abgeschlossen

@nbenhaim @markusdr

Das Problem mit nicht genügend Arbeitsspeicher kann darauf zurückzuführen sein, dass convolutional.py die Auswertung für den gesamten Testdatensatz (10000) durchführt. Es passiert, nachdem das Training beendet ist, als letzter Schritt:

https://github.com/tensorflow/tensorflow/blob/master/tensorflow/models/image/mnist/convolutional.py#L266

Können Sie versuchen, train_data und test_labels in Scheiben zu schneiden, damit sie kleiner werden?

Ich kann bestätigen, dass mit dem Installationsskript von @erikbern und dem neuesten TensorFlow-Master-Zweig das cifar10_multi_gpu_train.py wie erwartet auf der GPU funktioniert:

step 100, loss = 4.49 (330.8 examples/sec; 0.387 sec/batch)

Obwohl diese Zeile jetzt aufgrund der Codeänderungen unterbrochen wird.

Auch wenn ich 1000 Testproben nehme, funktioniert das Beispiel convolutional.py auch.

BEARBEITEN: Das Beispiel bazel-bin/tensorflow/cc/tutorials_example_trainer --use_gpu funktioniert auch, ohne mir ein paar Nans zu geben.

Ich bestätige, dass der neueste Build die Angabe der Compute-Fähigkeit über unterstützt
$ TF_UNOFFICIAL_SETTING=1 ./configure
ohne dass ein Patch erforderlich ist. Danke!

Ich denke, dieses Problem kann geschlossen werden, es sei denn, jemand trifft auf eine tatsächliche Funktion, die für Cuda < 3.5 fehlschlägt.

Lassen Sie mich das zurücknehmen :-) Das ./configure -Skript modifiziert den Quellcode, indem es die relevanten Zeilen mit den handspezifizierten Cuda-Versionen ändert. Dann meldet git nicht festgeschriebene Änderungen und es wird sehr schwierig, mit dieser Codebasis zu arbeiten, ohne die Änderung rückgängig zu machen, git pull zu ändern und neu zu konfigurieren, ganz zu schweigen von Beiträgen.

Ein besserer Ansatz wäre, diese Versionseinstellungen aus einer Konfigurationsdatei zu lesen.

ErikBern oben und sein AMI arbeiten für cifar für mich - ami-cf5028a5

Erhalten von ~ 320 Samples pro Sekunde im Vergleich zu meiner i7-Windows-Box auf Docker, die ~ 105 Samples pro Sekunde für cifar10_train.py erhält

@infojunkie : ja, das ist nicht ideal (@zheng-xq und ich habe das während der Überprüfung ein wenig besprochen!).

Wir werden versuchen, uns einen besseren Weg auszudenken, um dies zu handhaben, obwohl wir die Möglichkeit beibehalten möchten, dass die Filterung des Laufzeitgeräts mit der Art und Weise, wie die Binärdatei erstellt wurde, synchron ist (daher müssen wir den Quellcode sowohl für die Kompilierung als auch für Laufzeit). Andernfalls erhalten Benutzer schwer zu debuggende Fehler.

Wir werden weiterhin daran arbeiten, dies einfacher zu machen, aber hoffentlich ermöglicht dies einige Fortschritte für Sie.

@vrv : Ja, ich kann meine Arbeit mit diesen Korrekturen definitiv fortsetzen. Danke für die Unterstützung!

Nur neugierig, da c4.4xlarge mit 16 vCpus etwa 0,88 pro Stunde im Vergleich zur GPU-Instanz mit 0,65 pro Stunde kostet, wäre es nicht besser, mehrere CPUs als GPUs zu verwenden?

@timshephard Ich bezweifle es, aber Sie können gerne einige Benchmarks ausführen – Sie können mein AMI (ami-cf5028a5) auf einem c4.4xlarge installieren und cifar10_train.py ausführen

Tatsächlich hat das g2.2xlarge neben der GPU 8 CPUs. Werde das versuchen.

Multi-Thread-CPU wird unterstützt, aber wenn Sie wirklich trainieren möchten,
GPU 4 Life, bis sie die verteilte Implementierung freigeben

Am Donnerstag, 12. November 2015 um 16:53 Uhr, Erik Bernhardsson < [email protected]

schrieb:

@timshephard https://github.com/timshephard Ich bezweifle es, aber fühlen Sie sich frei
um einige Benchmarks auszuführen – Sie können mein AMI (ami-cf5028a5) auf einem installieren
c4.4xlarge und führen Sie cifar10_train.py aus


Antworten Sie direkt auf diese E-Mail oder zeigen Sie sie auf GitHub an
https://github.com/tensorflow/tensorflow/issues/25#issuecomment -156274039
.

Ich habe nur eine 3-fache Geschwindigkeit für die Amazon-GPU über meine Windows-CPU im Docker erhalten. Schön, aber das war nur 1 meiner Kerne. Alle 4 Kerne auf meiner Windows-Box könnten wahrscheinlich eine Amazon-GPU schlagen.

das ist interessant, denn mit caffe habe ich keine wirklichen Benchmarks gemacht,
aber das Training im CPU-Modus ist schrecklich, wie eine Größenordnung oder mehr
Unterschied. Vielleicht ist TF im CPU-Modus besser optimiert - würde mich nicht überraschen
mich.

Am Donnerstag, 12. November 2015 um 17:01 Uhr, timshephard [email protected]
schrieb:

Ich habe nur eine 3-fache Geschwindigkeit für die Amazon-GPU über meine Windows-CPU erhalten
Docker. Schön, aber das war nur 1 meiner Kerne. Alles für 4 Kerne auf meinem
Windows Box könnte wahrscheinlich eine Amazon-GPU schlagen.


Antworten Sie direkt auf diese E-Mail oder zeigen Sie sie auf GitHub an
https://github.com/tensorflow/tensorflow/issues/25#issuecomment -156275410
.

Bitte beachten Sie, dass das cifar10-Tutorial so wie es ist nicht als Benchmark gedacht ist. Es soll einige verschiedene Funktionen wie Schoner und Zusammenfassung zeigen. In seiner jetzigen Form wird es sogar mit GPU CPU-begrenzt sein. Beim Benchmarking muss man vorsichtiger sein und nur die wesentlichen Features verwenden.

Könnte nur sein, dass Amazon-GPUs aus irgendeinem Grund langsam sind https://www.reddit.com/r/MachineLearning/comments/305me5/slow_gpu_performance_on_amazon_g22xlarge/
Interessanter Bericht: "Ein g2.2xlarge ist ein heruntergetakteter GK104 (797 MHz), das wäre 1/4 der Geschwindigkeit des kürzlich veröffentlichten TitanX und 2,7x langsamer als eine GTX 980."

fwiw, Abruf 2015-11-13 00:38:05.472034: Schritt 20, Verlust = 4,64 (362,5 Beispiele/s; 0,353 s/Batch)
jetzt mit 7 cpus und cifar10_multi_gpu_train.py. Ich habe alle Gerätereferenzen von GPU auf CPU geändert, falls das Sinn macht.

okay, seltsam. 2015-11-13 00:43:56.914273: Schritt 10, Verlust = 4,65 (347,4 Beispiele/s; 0,368 s/Batch) und Verwendung von 2 CPUs, also ist hier eindeutig etwas fehlgeschlagen. Muss die GPU immer noch verwenden. Interessant, dass es etwas schneller verarbeitet wird als die einzelne GPU-Version des Skripts.

auch mit erikberns anleitung komme ich noch hin

AssertionError: Model diverged with loss = NaN when I try cifar_train.py and this when running mnist/convolutional.py

Epoche 1.63
Minibatch-Verlust: nan, Lernrate: nan
Minibatch-Fehler: 90,6 %
Validierungsfehler: 90,4 %
Epoche 1.75
Minibatch-Verlust: nan, Lernrate: 0,000000
Minibatch-Fehler: 92,2 %
Validierungsfehler: 90,4 %
Epoche 1.86
Minibatch-Verlust: nan, Lernrate: 0,000000

Ich habe es auf GPU auf AWS laufen lassen, aber wie die anderen bekomme ich unscheinbare Geschwindigkeiten.

Ich konnte das Beispiel convolutional.py ausführen, ohne dass mir der Arbeitsspeicher ausging, nachdem ich die von @zheng-xq vorgeschlagene Korrektur zum Festlegen der Option beim Ausführen von configure verwendet hatte

Das von @erikbern bereitgestellte Installationsskript funktioniert ab Commit 9c3043ff3bf31a6a81810b4ce9e87ef936f1f529 nicht mehr

Der letzte Commit hat diesen Fehler eingeführt, @keveman hat hier bereits eine Notiz zum Commit gemacht:
https://github.com/tensorflow/tensorflow/commit/9c3043ff3bf31a6a81810b4ce9e87ef936f1f529#diff -1a60d717df0f558f55ec004e6af5c7deL25

Hallo! Ich habe ein Problem mit der Kompilierung von Tensorflow mit GTX 670. Ich laufe

TF_UNOFFICIAL_SETTING=1 ./configure
bazel build -c opt --config=cuda //tensorflow/cc:tutorials_example_trainer

Ich habe einen Fehler:

INFO: Found 1 target...
INFO: From Compiling tensorflow/core/kernels/bias_op_gpu.cu.cc:
tensorflow/core/kernels/bias_op_gpu.cu.cc(40): error: identifier "__ldg" is undefined
          detected during:
            instantiation of "void tensorflow::functor::BiasOpCustomKernel(int, const T *, const T *, int, int, T *) [with T=float]" 
(57): here
            instantiation of "void tensorflow::functor::Bias<tensorflow::GPUDevice, T, Dims>::operator()(const tensorflow::functor::Bias<tensorflow::GPUDevice, T, Dims>::Device &, tensorflow::TTypes<T, Dims, Eigen::DenseIndex>::ConstTensor, tensorflow::TTypes<T, 1, Eigen::DenseIndex>::ConstVec, tensorflow::TTypes<T, Dims, Eigen::DenseIndex>::Tensor) [with T=float, Dims=2]" 
(69): here

tensorflow/core/kernels/bias_op_gpu.cu.cc(40): error: identifier "__ldg" is undefined
          detected during:
            instantiation of "void tensorflow::functor::BiasOpCustomKernel(int, const T *, const T *, int, int, T *) [with T=double]" 
(57): here
            instantiation of "void tensorflow::functor::Bias<tensorflow::GPUDevice, T, Dims>::operator()(const tensorflow::functor::Bias<tensorflow::GPUDevice, T, Dims>::Device &, tensorflow::TTypes<T, Dims, Eigen::DenseIndex>::ConstTensor, tensorflow::TTypes<T, 1, Eigen::DenseIndex>::ConstVec, tensorflow::TTypes<T, Dims, Eigen::DenseIndex>::Tensor) [with T=double, Dims=2]" 
(69): here

2 errors detected in the compilation of "/tmp/tmpxft_000067dd_00000000-7_bias_op_gpu.cu.cpp1.ii".
ERROR: /home/piotr/tensorflow/tensorflow/tensorflow/core/BUILD:248:1: output 'tensorflow/core/_objs/gpu_kernels/tensorflow/core/kernels/bias_op_gpu.cu.o' was not created.
ERROR: /home/piotr/tensorflow/tensorflow/tensorflow/core/BUILD:248:1: not all outputs were created.
Target //tensorflow/cc:tutorials_example_trainer failed to build

Informationen zu meiner Karte aus NVIDIA-Beispielen deviceQuery:

Device 0: "GeForce GTX 670"
  CUDA Driver Version / Runtime Version          7.5 / 7.0
  CUDA Capability Major/Minor version number:    3.0
  Total amount of global memory:                 2046 MBytes (2145235968 bytes)
  ( 7) Multiprocessors, (192) CUDA Cores/MP:     1344 CUDA Cores
  GPU Max Clock rate:                            980 MHz (0.98 GHz)
  Memory Clock rate:                             3004 Mhz
  Memory Bus Width:                              256-bit
  L2 Cache Size:                                 524288 bytes
  Maximum Texture Dimension Size (x,y,z)         1D=(65536), 2D=(65536, 65536), 3D=(4096, 4096, 4096)
  Maximum Layered 1D Texture Size, (num) layers  1D=(16384), 2048 layers
  Maximum Layered 2D Texture Size, (num) layers  2D=(16384, 16384), 2048 layers
  Total amount of constant memory:               65536 bytes
  Total amount of shared memory per block:       49152 bytes
  Total number of registers available per block: 65536
  Warp size:                                     32
  Maximum number of threads per multiprocessor:  2048
  Maximum number of threads per block:           1024
  Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
  Max dimension size of a grid size    (x,y,z): (2147483647, 65535, 65535)
  Maximum memory pitch:                          2147483647 bytes
  Texture alignment:                             512 bytes
  Concurrent copy and kernel execution:          Yes with 1 copy engine(s)
  Run time limit on kernels:                     Yes
  Integrated GPU sharing Host Memory:            No
  Support host page-locked memory mapping:       Yes
  Alignment requirement for Surfaces:            Yes
  Device has ECC support:                        Disabled
  Device supports Unified Addressing (UVA):      Yes
  Device PCI Domain ID / Bus ID / location ID:   0 / 1 / 0
  Compute Mode:
     < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 7.5, CUDA Runtime Version = 7.0, NumDevs = 1, Device0 = GeForce GTX 670

Irgendwelche Ideen, warum es nicht funktioniert?
Danke!

Das __ldg-Primitive existiert nur für 3.5+, denke ich. Wir haben einen internen Fix, um beides zu unterstützen, den wir versuchen werden, bald herauszubringen.

Siehe https://github.com/tensorflow/tensorflow/issues/320 für weitere Details

Danke! Das Hinzufügen von Fix aus #320 hat mir geholfen, ich kann kompilieren (mit vielen Warnungen) und ausführen

bazel-bin/tensorflow/cc/tutorials_example_trainer --use_gpu

Wenn ich Beispiele ausführe:

tensorflow/models/image/mnist$ python convolutional.py 

Ich werde gewarnt:

Ignoring gpu device (device: 0, name: GeForce GTX 670, pci bus id: 0000:01:00.0) with Cuda compute capability 3.0. The minimum required Cuda capability is 3.5.

Wie aktiviere ich die GPU in Beispielen aus Tensorflow/Models/Images?

@erikbern
Haben Sie mehrere GPU-Probleme bei Amazon festgestellt? Ich verwende auch mehrere GPU-Instanzen von CIFAR, sehe aber keine Beschleunigung.

Hier ist der GPU-Auslastungsstatus, es scheint, als ob alle GPUs verwendet werden, aber sie tun nichts.

+------------------------------------------------------------- -----+
| NVIDIA-SMI 346.46 Treiberversion: 346.46 |
|-------------------------------+----------------- -----+----------------------+
| GPU-Name Persistenz-M| Bus-ID Anz.A | Flüchtig Unkorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Speichernutzung | GPU-Dienstprogramm Compute M. |
|=============================+================= =====+======================|
| 0 GITTER K520 Aus | 0000:00:03.0 Aus | Nicht zutreffend |
| N/A 54C P0 55W / 125W | 3832 MiB / 4095 MiB | 37 % Standard |
+-------------------------------+---------------- -----+----------------------+
| 1 GITTER K520 Aus | 0000:00:04.0 Aus | Nicht zutreffend |
| N/A 42C P0 42W / 125W | 3796 MiB / 4095 MiB | 0 % Standard |
+-------------------------------+---------------- -----+----------------------+
| 2 GITTER K520 Aus | 0000:00:05.0 Aus | Nicht zutreffend |
| N/A 46C P0 43 W / 125 W | 3796 MiB / 4095 MiB | 0 % Standard |
+-------------------------------+---------------- -----+----------------------+
| 3 GITTER K520 Aus | 0000:00:06.0 Aus | Nicht zutreffend |
| N/A 43C P0 41W / 125W | 3796 MiB / 4095 MiB | 0 % Standard |
+-------------------------------+---------------- -----+----------------------+

+------------------------------------------------------------- ----------------------------+
| Prozesse: GPU-Speicher |
| GPU-PID-Typ Prozessname Verwendung |
|============================================== ===========================|
| 0 60160 C Python 3819 MiB |
| 1 60160 C Python 3783 MiB |
| 2 60160 C Python 3783 MiB |
| 3 60160 C Python 3783 MiB |
+------------------------------------------------------------- ----------------------------+

@mhejrati Laut einem Kommentar auf https://news.ycombinator.com/item?id=10555692 scheint es, als ob Sie es in AWS nicht tun können:

Die Xen-Virtualisierung deaktiviert P2P-Kopien, ergo GPUs haben das, was wir einen „Fehler bei der Kommunikation und einige GPUs, die Sie einfach nicht erreichen können (ohne die CPU zu durchlaufen), haben“.

Ich bin mir nicht sicher, wie vertrauenswürdig HN-Kommentare sind, aber das ist alles, was ich bisher weiß

@erikbern @mhejrati Ich bin mir nicht sicher, ob bestimmte Eigenschaften von Xen ein Problem darstellen. P2P-Kopien scheinen nicht notwendig zu sein, da die CPU weiterhin jeder GPU Arbeit zuweisen kann, ohne dass GPUs miteinander kommunizieren müssen. Es ist immer noch seltsam, dass alle GPUs auf der Instanz in diesem halb ausgelasteten Zustand zu sein scheinen, aber die Arbeit ohne Fehler fortgesetzt wird.

Ich werde diesen Fehler schließen. Bitte öffnen Sie ein neues mit einem genaueren Titel, wenn einige Probleme hier ungelöst bleiben.

Bedeutet das, dass die letzte Version von Tensorflow auf Amazon g2-Instances ohne Hacks funktioniert? Und bedeutet das, dass dort mehr als eine GPU funktioniert?

Ich bin mir nicht sicher, ob wir TF_UNOFFICIAL_* "kein Hack" nennen sollten, aber ja, es _sollte_ funktionieren. Wenn dies nicht der Fall ist, hat es wahrscheinlich nichts mit Cuda 3.0 an sich zu tun, und wir sollten einen spezifischeren Fehler haben.

Und ist es möglich, Code auf zwei oder mehr GPUs auf einer Amazon-Instanz auszuführen? Zum Beispiel Datenparallelität zum Trainieren eines Modells wie im CIFAR-Beispiel. Mehrere Leute nur 5 Kommentare über diesem Kommentar schrieben, dass es nicht möglich sei.

Ich weiß nicht. Aber wenn das immer noch ein Problem mit 0.6.0 ist, sollte es ein Fehler sein, nur ein spezifischerer bezüglich mehrerer GPUs.

Ich verwende 0.6.0 auf Ubuntu und kann nicht mehr als eine GPU verwenden. Die GPU-Auslastung auf einer GPU ist immer 0.

Nur als Referenz, das Mieten eines K40 oder K80 ist nicht wirklich unerschwinglich teuer. Amazon hat sie nicht, aber einige der Optionen auf http://www.nvidia.com/object/gpu-cloud-computing-services.html . (Einige für nur 3 $ / Std.)

Theano und Torch haben keinerlei Probleme mit Compute 3.0. Können wir davon ausgehen, dass TensorFlow bald Compute 3.0 unterstützt?

Oder fügen Sie zumindest die Möglichkeit hinzu, die Einschränkung zu überschreiben, ohne neu kompilieren zu müssen.

@Dringite , Sie können Cuda 3.0 wie folgt aktivieren:

TF_UNOFFICIAL_SETTING=1 ./konfigurieren

Funktional sollte es sein. Und wenn dies nicht der Fall ist, können Sie ein weiteres Problem melden, um es zu verfolgen.

Die Tensorflow-Installationsanleitung enthält jetzt auch einen Fix für cuda 3.0

Am Mittwoch, den 10. Februar 2016 um 14:37 Uhr schrieb zheng-xq [email protected] :

@Dringite https://github.com/Dringite , Sie können Cuda 3.0 mit aktivieren
die folgende:

TF_UNOFFICIAL_SETTING=1 ./konfigurieren

Funktional sollte es sein. Und wenn nicht, können Sie gerne einen neuen einreichen
Ausgabe, um es zu verfolgen.


Antworten Sie direkt auf diese E-Mail oder zeigen Sie sie auf GitHub an
https://github.com/tensorflow/tensorflow/issues/25#issuecomment -182610763
.

Ich denke, die aktuelle Anleitung funktioniert nicht für GPUs - der Test gibt Nans zurück, wie zuvor berichtet.
Insbesondere müssen Sie dies noch tun:
TF_UNOFFICIAL_SETTING=1 ./konfigurieren

Ich kann die Installationsanleitung mit einem Fix für cuda 3.0 nicht finden, könnte mich jemand darauf hinweisen? VIELEN DANK!

printf "\ny\n7.5\n\n\n\n3.0\n" | ./konfigurieren

7.5 ist die cuda-Version, 3.0 ist die Compute-Version.

Immer noch keine Leistungsverbesserung für mehrere GPUs bei Amazon (CUDA = 7,5, cudnn = 4,0, Compute = 3,0) im Vergleich zu einer einzelnen GPU.

jemand erfolgreich auf Cuda Compute Capability 2.0?

Bestätigt, dass „TF_UNOFFICIAL_SETTING=1 ./configure“ auf einem Macbook Pro mit GeForce GT 750M funktioniert. Danke!

Gibt es eine ETA für den offiziellen Fix? Es ist wirklich mühsam, es in der Produktion zu warten (z. B. Bilder mit unserer eigenen Dockerdatei zu erstellen).

Mein Laptop gibt mir dieses Protokoll, wenn ich versuche, mnist sample auszuführen:
"Ignorieren des GPU-Geräts (Gerät: 0, Name: GeForce GT 635M, PCI-Bus-ID) mit Cuda-Rechenfunktion 2.1. Die mindestens erforderliche Cuda-Funktion ist 3.0. "
Bedeutet das also, dass ich die GPU-Version nicht verwenden kann, weil die Mindest-Cuda für Tensorflow 3.0 ist?
Danke

Wenn Sie die vorgefertigten Binärdateien verwenden, ja. Wenn Sie aus der Quelle bauen, können Sie
Build mit Cuda 2.1-Unterstützung, aber ich weiß nicht, ob das tatsächlich funktioniert. Es ist
wahrscheinlich ist das effektive Minimum cuda 3.0.
Am Samstag, 10. September 2016 um 11:51 Uhr Mojtaba Tabatabaie [email protected]
schrieb:

Mein Laptop gibt mir dieses Protokoll, wenn ich versuche, mnist sample auszuführen:
"Ignorieren des GPU-Geräts (Gerät: 0, Name: GeForce GT 635M, PCI-Bus-ID) mit Cuda
Rechenleistung 2.1. Die mindestens erforderliche Cuda-Fähigkeit ist 3.0 . "
Bedeutet dies also, dass ich die GPU-Version nicht verwenden kann, da die Mindestversion von Cuda
für Tensorflow ist 3,0 ?
Danke


Sie erhalten dies, weil Sie den Öffnungs-/Schließstatus geändert haben.
Antworten Sie direkt auf diese E-Mail und zeigen Sie sie auf GitHub an
https://github.com/tensorflow/tensorflow/issues/25#issuecomment -246128896,
oder den Thread stumm schalten
https://github.com/notifications/unsubscribe-auth/AAjO_RvNrRMQEmsueXWoaU5FX4tWHZq3ks5qovwegaJpZM4Ge0kc
.

@smtabatabaie Haben Sie versucht, cuDNN aus der Quelle zu erstellen, wie von @martinwicke vorgeschlagen, ich stehe vor genau den gleichen Problemen wie Sie und es würde mir sehr helfen, wenn Sie Ihre Erfahrungen teilen würden?

Etwas Hilfe bitte. Ich erhalte die gleiche Fehlermeldung mit "Ignorieren des sichtbaren GPU-Geräts (Gerät: 0, Name: GeForce GT 750M, PCI-Bus-ID: 0000:01:00.0) mit Cuda-Rechenfunktion 3.0. Die mindestens erforderliche Cuda-Funktion ist 3.5."

Ich habe die Posts von anderen gelesen, das einzige Problem ist, dass dies eine direkte Windows-Installation ist und nicht auf AWS, wie ich annehme, dass die meisten Leute hier haben. Auf der Tensorflow-Website wird angegeben, dass mindestens 3.0 erforderlich ist. Warum kann ich dies nicht verwenden? und wie kann ich das umgehen?

Vorschläge, wie dies zu tun ist, sind willkommen.

@gunan @mrry sind die Windows-Pakete nicht mit cuda 3.0 erstellt? Ist das Warum
sie sind so klein?

@martinwicke Die Nightlies sind und rc1 sollte es auch sein.

Nachtwäsche ja.
rc0 war glaube ich 3.5.
Haben wir uns für die Änderung entschieden, 3.0 auf r0.12 zu verwenden?

Wir haben uns die Änderung ausgesucht.
@cydal Sie können die nächtlichen Builds hier verwenden:
http://ci.tensorflow.org/view/Nightly/job/nightly-win/14/DEVICE=gpu ,OS=windows/artifact/cmake_build/tf_python/dist/tensorflow_gpu-0.12.0rc0-cp35-cp35m-win_amd64. whl

Oder Sie können auf 0.12.0rc1 warten, das in ein paar Tagen landen sollte.

Danke Jungs für die schnelle Antwort, ich habe zumindest eine Weile nicht damit gerechnet. Tut mir leid, wenn das wie eine ziemlich dumme Frage klingt, wie installiere ich das? muss ich es einfach per Pip installieren? (Wenn ja, habe ich die vorherige Tensorflow-GPU entfernt? Oder geschieht dies automatisch?) oder muss sie heruntergeladen und auf irgendeine Weise manuell installiert werden? Betrachten Sie mich als einen kleinen Neuling.

Der Link verweist auf ein "PIP-Paket".
Wenn Sie den Befehl pip install verwendet haben, sollten Sie in der Lage sein, denselben Befehl mit dem Flag --upgrade zu verwenden.
Oder Sie können pip uninstall tensorflow ausführen und dann das oben aufgeführte Paket installieren.
Sobald Sie pip command die URL geben, wird es automatisch heruntergeladen und installiert.

Dies ist alles, was ich mit begrenztem Wissen über Ihr System, Ihre Python-Distribution usw. geben kann.
Erwägen Sie, eine Google-Suche durchzuführen, um weitere Informationen darüber zu erhalten, wie die Installation des Pip-Pakets mit Ihrer Python-Distribution funktioniert.

Hallo, ich habe einfach das vorherige deinstalliert und neu installiert und es funktioniert! Vielen Dank, Sie haben mir den Kauf eines neuen Laptops erspart.

Hi @gunan mit der letzten Änderung für 3.5-Kompatibilität erhalte ich folgendes Protokoll:

>>>> sess = tf.Session()
I c:\tf_jenkins\home\workspace\nightly-win\device\gpu\os\windows\tensorflow\core
\common_runtime\gpu\gpu_device.cc:885] Found device 0 with properties:
name: Quadro K4100M
major: 3 minor: 0 memoryClockRate (GHz) 0.7055
pciBusID 0000:01:00.0
Total memory: 4.00GiB
Free memory: 3.69GiB
I c:\tf_jenkins\home\workspace\nightly-win\device\gpu\os\windows\tensorflow\core
\common_runtime\gpu\gpu_device.cc:906] DMA: 0
I c:\tf_jenkins\home\workspace\nightly-win\device\gpu\os\windows\tensorflow\core
\common_runtime\gpu\gpu_device.cc:916] 0:   Y
I c:\tf_jenkins\home\workspace\nightly-win\device\gpu\os\windows\tensorflow\core
\common_runtime\gpu\gpu_device.cc:975] Creating TensorFlow device (/gpu:0) -> (d
evice: 0, name: Quadro K4100M, pci bus id: 0000:01:00.0)
E c:\tf_jenkins\home\workspace\nightly-win\device\gpu\os\windows\tensorflow\core
\common_runtime\gpu\gpu_device.cc:586] Could not identify NUMA node of /job:loca
lhost/replica:0/task:0/gpu:0, defaulting to 0.  Your kernel may not have been bu
ilt with NUMA support.

Wie kann ich es umgehen? Vorschläge, wie dies zu tun ist, sind sehr willkommen.

@kay10 Es sieht so aus, als hätte es funktioniert. Diese Fehlermeldung in der letzten Zeile ist harmlos und wird in der Veröffentlichung entfernt.

Wie ich in diesem Thread sehe, hat jeder eine Kompatibilitätsstufe 3. Gibt es für diejenigen, die eine Kompatibilität von 2 haben, eine Lösung, ohne den Quellcode zu kompilieren?
Ich habe den von @gunan geteilten nächtlichen Build ausprobiert und den Fehler erhalten:
tensorflow_gpu-0.12.0rc0-cp35-cp35m-win_amd64.whl is not a supported wheel on this platform.
es ist kein linux-rad und ich habe es bald gemerkt.

Aktuelle Situation auf einem 16.04 Ubuntu.
I tensorflow/core/common_runtime/gpu/gpu_device.cc:948] Ignoring visible gpu device (device: 0, name: GeForce GTX 590, pci bus id: 0000:03:00.0) with Cuda compute capability 2.0. The minimum required Cuda capability is 3.0. I tensorflow/core/common_runtime/gpu/gpu_device.cc:948] Ignoring visible gpu device (device: 1, name: GeForce GTX 590, pci bus id: 0000:04:00.0) with Cuda compute capability 2.0. The minimum required Cuda capability is 3.0.

@batuhandayioglugil Zu viele unserer GPU-Kernel verlassen sich auf Funktionen, die nur in 3.0 und höher verfügbar sind, daher benötigen Sie leider eine neuere GPU. Sie können auch einen der Cloud-Dienste ausprobieren.

@vrv Ich bin zu diesem Punkt gekommen, nachdem ich ziemlich viel Zeit mit diesen Problemen verbracht und ein neues Netzteil gekauft habe, was mich viel gekostet hat. Um weitere Zeitverschwendung zu vermeiden, möchte ich eine Frage stellen: Es gibt mindestens 15 Deep-Learning-Bibliotheken, die ich gehört habe. Cuda und cuDNN waren für Tensorflow notwendig. Ist diese Situation (Rechenfähigkeit) speziell für die cuda-Bibliothek? Darf ich noch andere Chancen haben? Wenn nicht, werde ich aufgeben und weiter mit der CPU arbeiten (verzeihen Sie meine Ignoranz).

Ich denke, es wird mehr Mühe geben, als es wert ist, zu versuchen, Ihre 2.0-Karte zum Laufen zu bringen - es ist möglich, dass Ihre vorhandene CPU so schnell oder schneller ist als Ihre spezifische GPU, und viel weniger Probleme beim Einstieg. Ich weiß leider nicht, was andere Bibliotheken benötigen.

Wird GPU Compute 3.0 bereits unterstützt?

Jawohl.

@martinwicke Danke für die schnelle Antwort. Muss ich es immer noch aus dem Quellcode erstellen oder einfach direkt per Pip installieren? Ich bin auf Arch Linux und habe Mühe, es aus der Quelle zu erstellen, die einen Fehler mit dem c-Compiler verursacht.

Ich denke, es sollte von binär funktionieren.

Ich habe das gleiche Problem: "Ignorieren des GPU-Geräts (Gerät: 0, Name: GeForce GT 635M, PCI-Bus-ID) mit Cuda-Rechenfunktion 2.1. Die mindestens erforderliche Cuda-Funktion ist 3.0." . @smtabatabaie @martinwicke @alphajatin. Hilfe !!!!

Compute Capability 2.1 ist zu gering, um TensorFlow auszuführen. Sie benötigen eine neuere (oder leistungsstärkere) Grafikkarte, um TensorFlow auf einer GPU auszuführen.

Die URL der Antwort auf die Frage ist ungültig. Können Sie es aktualisieren?

Für nächtliche Pip-Pakete empfiehlt sich die Installation mit dem Befehl pip install tf-nightly .
ci.tensorflow.org ist veraltet.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen