2016-08-02 1 views
5

je vais avoir cette erreur lorsque j'utilise le gestionnaire de charge de travail slurm (http://slurm.schedmd.com/). Quand j'exécute des scripts python tensorflow, il y a parfois une erreur (attachée). Il semble qu'il ne peut pas trouver la bibliothèque de cuda installée mais j'exécute des manuscrits qui n'exigent pas des GPUs. Par conséquent, je trouve très déroutant pourquoi cuda serait un problème du tout. Pourquoi l'installation de cuda est-elle un problème si je n'en ai pas besoin?Pourquoi les jobs dans slurm se figent-ils indéfiniment lorsqu'ils sont des scripts TensorFlow?

La seule information utile que je suis arrivé à partir du fichier slurm-job_id était la suivante:

I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcublas.so locally 
I tensorflow/stream_executor/dso_loader.cc:102] Couldn't open CUDA library libcudnn.so. LD_LIBRARY_PATH: /cm/shared/openmind/cuda/7.5/lib64:/cm/shared/openmind/cuda/7.5/lib 
I tensorflow/stream_executor/cuda/cuda_dnn.cc:2092] Unable to load cuDNN DSO 
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcufft.so locally 
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcuda.so locally 
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcurand.so locally 
E tensorflow/stream_executor/cuda/cuda_driver.cc:491] failed call to cuInit: CUDA_ERROR_NO_DEVICE 
I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:153] retrieving CUDA diagnostic information for host: node047 
I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:160] hostname: node047 
I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:185] libcuda reported version is: Not found: was unable to find libcuda.so DSO loaded into this program 
I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:347] driver version file contents: """NVRM version: NVIDIA UNIX x86_64 Kernel Module 352.63 Sat Nov 7 21:25:42 PST 2015 
GCC version: gcc version 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC) 
""" 
I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:189] kernel reported version is: 352.63.0 
I tensorflow/core/common_runtime/gpu/gpu_init.cc:81] No GPU devices available on machine. 

J'ai toujours pensé que tensorflow aurait pas besoin de GPU. Donc, je suppose que la dernière erreur indiquant qu'il n'y a pas de GPU ne provoque PAS l'erreur (corrigez-moi si je me trompe).

Je ne comprends pas pourquoi je dois la bibliothèque CUDA. J'essaye d'exécuter mes travaux avec le GPU, pourquoi aurais-je besoin de la bibliothèque de cuda si mes travaux sont des travaux de CPU?


J'ai essayé la connexion au noeud directement et à partir tensorflow mais je m'y suis pas d'erreur apparente:

I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcublas.so locally 
I tensorflow/stream_executor/dso_loader.cc:102] Couldn't open CUDA library libcudnn.so. LD_LIBRARY_PATH: /cm/shared/openmind/cuda/7.5/lib64:/cm/shared/openmind/cuda/7.5/lib 
I tensorflow/stream_executor/cuda/cuda_dnn.cc:2092] Unable to load cuDNN DSO 
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcufft.so locally 
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcuda.so locally 
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcurand.so locally 

si je pensais l'erreur:

I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcublas.so locally 
I tensorflow/stream_executor/dso_loader.cc:102] Couldn't open CUDA library libcudnn.so. LD_LIBRARY_PATH: /cm/shared/openmind/cuda/7.5/lib64:/cm/shared/openmind/cuda/7.5/lib 
I tensorflow/stream_executor/cuda/cuda_dnn.cc:2092] Unable to load cuDNN DSO 
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcufft.so locally 
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcuda.so locally 
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcurand.so locally 
E tensorflow/stream_executor/cuda/cuda_driver.cc:491] failed call to cuInit: CUDA_ERROR_NO_DEVICE 
I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:153] retrieving CUDA diagnostic information for host: node047 
I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:160] hostname: node047 
I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:185] libcuda reported version is: Not found: was unable to find libcuda.so DSO loaded into this program 
I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:347] driver version file contents: """NVRM version: NVIDIA UNIX x86_64 Kernel Module 352.63 Sat Nov 7 21:25:42 PST 2015 
GCC version: gcc version 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC) 
""" 
I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:189] kernel reported version is: 352.63.0 
I tensorflow/core/common_runtime/gpu/gpu_init.cc:81] No GPU devices available on machine. 

J'ai aussi fait un problème git officiel dans la bibliothèque tensorflow:

https://github.com/tensorflow/tensorflow/issues/3632

+1

En réponse à la question "Pourquoi est-ce possible?": Tensorflow de l'environnement slurm ne peut pas trouver libcuda.so: 'la version rapportée de libcuda est: introuvable: n'a pas pu trouver libcuda.so' –

+0

@RobertCrovella donc l'erreur n'est pas dû à 'la version rapportée de libcuda est: Non trouvé: n'a pas pu trouver libcuda.so' J'ai toujours pensé que s'il ne pouvait pas trouver un GPU il ne l'utiliserait pas et cela n'aurait pas d'importance. –

+0

fait un problème git officiel pour voir si quelqu'un peut m'aider avec ce problème: https://github.com/tensorflow/tensorflow/issues/3632 –

Répondre

1

Il y a un bug dans tensorflow fonctionnant avec soumission slurm via un travail par lots.

Actuellement, je contourner en exécutant srun sur slurm.

Il apparaît également dans votre cas que vous avez installé la version GPU de tensorflow et sont en cours d'exécution sur une machine qui ne dispose pas d'un GPU. Ce qui provoque une autre erreur dans votre cas.

+0

que voulez-vous dire par là que vous utilisez srun? Cela vous dérange-t-il de clarifier cela? Malheureusement, je dois exécuter environ 30 scripts à la fois, ce que ne fait pas srun. Je suppose que je suis coincé avec Sbatch avec GPU (qui est coincé mais moins). –

+0

"srun --pty bash" vous donnera une session interactive. Quand ils le répareront ou que j'en saurai la raison, je le posterai mais tout ce que je sais, c'est qu'il y a un bug avec la soumission des jobs de sbatch. – Steven

+0

alors quand vous lancez srun et bash, vous exécutez ensuite les travaux et tout fonctionne comme prévu? (Juste comme une mise à jour, il semble que cela soit parfois bloqué sur les GPUs) –

0

J'ai eu un problème similaire, et je réussi à faire bouillir jusqu'à la pendaison de veille lors de l'écriture du modèle au système de fichiers lustre. Toujours en attente d'une solution réelle cependant.