Starke Leistungseinbußen bei CUDA im Vergleich zu Windows. Soll Intel die primäre GPU sein?

Starke Leistungseinbußen bei CUDA im Vergleich zu Windows. Soll Intel die primäre GPU sein?

Ich habe die GPU-Tensorflow-Installation auf einem Dualboot-System durchgeführt ( Windows 10und Ubuntu 16.04.x)

beide Betriebssysteme haben ungefähr die gleichen Treiberversionen

Lenovo P50 laptop with Nvidia Quadro M1000M    

Windows 376.51 nvidia driver version
Ubuntu  375.66 nvidia driver version

Ich trainiere ein Deep Learning-Modell, jeder Trainingssatz benötigt eine ganz unterschiedliche Zeit

Windows 10   + Tensorflow 1.3 GPU + CUDA =  8 min. per epoch
Ubuntu 16.04 + Tensorflow 1.3 GPU + CUDA = 45 min. per epoch

Die Installation von Ubuntu erfolgte über alle Standardeinstellungen apt-get(keine Installation über Quellen) undpip

Mein einziger Gedanke bisher... ist, dass ich die NVIDIA-GPU verwenden muss, um die Grafiken zu malen... und nicht die GANZE GPU für die Berechnung nutzen kann... gibt es eine Möglichkeit, dies zu überprüfen? Ich habe alles auf beiden gleich installiert... einschließlich der Patches fürCUDA 8.x

Mir ist nicht einmal klar, wo das Problem liegt, aber es sieht so aus, als seien die Treiber für die Verwendung von Optimus eingerichtet. Vielleicht muss ich auf ein anderes Profil umstellen?

Bildbeschreibung hier eingeben

Idee Eins: Ich könnte morgen versuchen, Tensorflow aus den Quellen neu zu kompilieren … mit allen CPU-Optimierungen in Ubuntu 16.x … vielleicht ist die Pip-Installation mühsamer als die Binärinstallation unter Windows …

Idee zwei: Wenn das oben genannte nichts bewirkt, gehe ich ins BIOS und erzwinge die integrierte Intel-Grafik. Führe eine Neuinstallation durch und versuche, die neue Grafik zu installieren, ungefähr so:

Scheint ein Laptop mit „Optimus“-Unterstützung zu sein. Ich kann die NVIDIA-GPU zum Rendern nicht vollständig abschalten, sondern nur den Hybridmodus aktivieren. Vielleicht mache ich eine Neuinstallation, entferne alle NVIDIA-Treiber und schaue, ob ich X auf diese Weise zum Laufen bekomme.?

http://guanghan.info/blog/en/meine-arbeiten/aufbau-unseres-persönlichen-deep-learning-rig-gtx-1080-ubuntu-16-04-cuda-8-0rc-cudnn-7-tensorflowmxnetcaffedarknet/

"So I went to BIOS and set the integrated graphics as default and 
restart. Remember to switch the HDMI from the port on GTX1080 to that 
on the motherboard. Now the display works well. I successfully 
installed Ubuntu following its prompt guides."

https://devtalk.nvidia.com/default/topic/991849/-solved-run-cuda-on-dedicated-nvidia-gpu-while-connecting-monitors-to-intel-hd-graphics-is-this-possible-/

When installing the NVIDIA display driver, be sure to:

1. not install the openGL libs (there are command line options with 
driver runfile installers or CUDA runfile installers to allow this)
2. make sure not to make any changes to the xorg.conf configuration.

Antwort1

Nach langem Suchen, Suchen ... Zusammenfügen ... habe ich das Problem erfolgreich gefunden und behoben! Ja, die Intel-GPU in Windows wurde verwendet, während sie in Linux ungenutzt blieb ... was die NVIDIA-GPU zwang, den Bildschirm zu zeichnen und Ressourcen zu verlieren.

Ich habe einen neuen Ubuntu 16.04 USB-Stick auf meinem vorherigen System neu installiert.

During reinstallation choose updates, but don't use 3rd party libraries

Nach der Installation sollten Sie überprüfen, ob Sie sich im Intel Nouveau-Treibermodus befinden und nicht im proprietären Treiber von Nvidia.

Jetzt kam der seltsame Teil (die seltsamen Teile)

Ein Benutzer hier hatte auf das gleiche Problem hingewiesen.. aber für Desktop-Bereitstellungen

https://devtalk.nvidia.com/default/topic/991849/cuda-setup-and-installation/-solved-run-cuda-on-dedicated-nvidia-gpu-while-connecting-monitors-to-intel-hd-graphics-is-this-possible-/

grundsätzlich...

Zusammenfassend lässt sich sagen, dass Sie, damit dies funktioniert, Folgendes tun müssen:

1. make sure you have enabled onboard graphics in the BIOS settings (or set it as primary)

Ich habe den Hybridmodus verwendet, da es keine Option nur für Intel gibt.

2. install both xorg intel driver and nvidia/cuda drivers

hier müssen Sie die Flaggen passieren

--no-opengl-files //for the driver install I choose latest (384)

--no-openfl-libs // cuda 8.0 + patch here ..

Deaktivieren Sie unbedingt Nouveau und befolgen Sie alle in der Anleitung beschriebenen Schritte.

Hauptweg, um zu wissen, dass Sie gut sind.. installieren glmark2und immer sicherstellen, dass es Intel ausgibt

3. start nvidia-settings, and go to the PRIME settings page, set Intel (Power Saving Mode) as default
4. modify your .bashrc and set LD_LIBRARY_PATH to at least contain /usr/local/cuda/lib64:/usr/lib/nvidia-XXX where XXX in my case is 375.

dieser Ordner existierte bei mir überhaupt nicht. Ich habe trotzdem den Standardordner hinzugefügt LD_LIBRARY_PATHund PATHin den Anweisungen nach der Installation von Cuda beschrieben

4. logout to restart X or reboot
5. run glmark2 to confirm GL status

da Sie ohne Installation von OpenGL-Dateien installiert haben sollten.. das ist vielleicht unnötig

<strike>6. (update) if the libGL printed from step 5 points to nvidia's driver folder, you need to remove/rename the libGL.so*/libGLX.so*/libGLdispatch.so* under nvidia driver folder so that your OS can pick up the mesa libGL library.</strike>


7. run nvidia-smi to list your dedicated NVIDIA GPU, and run your CUDA program, you should not see any errors.

das hat bei mir nicht funktioniert, bis ich es nvidia-modprobeeinmal ausgeführt habe... dann hat plötzlich alles funktioniert.

Update: Leider hat ein Neustart die Konfiguration beschädigt. Ich bin mir noch nicht sicher, wie ich das Problem beheben kann ...

verwandte Informationen