web-dev-qa-db-fra.com

Grave sous performance de CUDA vs Windows, faire Intel GPU primaire?

J'ai effectué l'installation du tensorflow du processeur graphique sur un système à démarrage double (Windows 10 et Ubuntu 16.04.x)

les deux systèmes d'exploitation ont à peu près les mêmes versions de pilotes

Lenovo P50 laptop with Nvidia Quadro M1000M    

Windows 376.51 nvidia driver version
Ubuntu  375.66 nvidia driver version

Je forme un modèle d'apprentissage en profondeur, chaque ensemble de formation prend un temps très différent

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

L'installation d'Ubuntu a été effectuée via tous les paramètres par défaut de apt-get (installation non des sources) et de pip

Ma seule pensée à ce jour ... est que je dois utiliser le GPU NVIDIA pour peindre les graphiques .. et ne pas utiliser TOUTES les GPU pour le calcul .. y a-t-il un moyen de vérifier cela? J'ai tout installé de la même façon .. y compris les correctifs pour CUDA 8.x

Je ne sais même pas quel est le problème, mais il semble que les pilotes sont configurés pour utiliser Optimus. Peut-être dois-je le changer pour un profil différent?

enter image description here

Idée n ° 1: je pourrais essayer demain de recompiler tensorflow à partir de sources .. avec toutes les optimisations de processeur sous Ubuntu 16.x .. peut-être que l'installation par pip est plus pénible que l'installation par binaire sous Windows ...

Idée Deux: Si ce qui précède ne fait rien, je vais aller dans le BIOS et forcer Intel Integrated Graphics .. Réinstaller le logiciel et essayer d'installer Noveua Graphics .. un peu comme ceci:

On dirait que c’est un ordinateur portable activé "Optimus". Je ne peux pas complètement arrêter le gpu nvidia pour le rendu, seulement activer le mode hybride. Peut-être que je ferai une nouvelle installation .. supprimer tous les pilotes nvidia et voir si je peux faire fonctionner X de cette façon ..?

http://guanghan.info/blog/fr/my-works/building-our-personal-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/) -ce-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.
1
Erik

Après beaucoup de chasse, de recherches, de coercitions, j'ai trouvé le problème et je l'ai résolu Oui, le processeur graphique Intel sous Windows était de plus en plus utilisé alors que sous Linux, il était inutilisé ... forçant le processeur graphique NVIDIA à dessiner l'écran et à perdre des ressources.

J'ai réinstallé une nouvelle clé USB Ubuntu 16.04 sur mon ancien système.

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

Une fois installé, vous devez vérifier que vous êtes en mode de pilote intel nouveau .. au lieu du pilote propriétaire de Nvidia.

Maintenant est venu la partie étrange (s)

Un utilisateur ici avait signalé le même problème .. mais pour les déploiements de bureau

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 - /

fondamentalement...

En résumé, pour que cela fonctionne, vous devez

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

J'ai fait le mode hybride .. puisqu'il n'y a pas d'option seulement Intel

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

ici, vous devez passer les drapeaux

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

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

assurez-vous de désactiver nouveau .. et de toutes les étapes décrites dans les instructions.

principal moyen de savoir que vous êtes bon .. installez glmark2 et assurez-vous toujours qu'il

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.

ce dossier n'existait pas du tout pour moi. J'ai toujours ajouté les valeurs par défaut LD_LIBRARY_PATH et PATH décrites dans les instructions de post-installation cuda.

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

puisque vous auriez dû installer sans installer les fichiers opengl .. c'est peut-être inutile

<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.

cela n'a pas fonctionné pour moi jusqu'à ce que je lance nvidia-modprobe une fois… puis tout à coup, tout a fonctionné.

update: triste un redémarrage a brisé la config. Vous ne savez pas encore comment résoudre le problème ...

3
Erik