web-dev-qa-db-fra.com

TensorFlow ne parvient pas à compiler

Obtenir les erreurs suivantes qui essaient de compiler TensorFlow à partir de la source . Toute idée serait utile.

bazel-out/Host/bin/_solib_local/_U_S_Stensorflow_Spython_Cgen_Unn_Uops_Upy_Uwrappers_Ucc___Utensorflow/libtensorflow_framework.so: undefined reference to `[email protected]'
bazel-out/Host/bin/_solib_local/_U_S_Stensorflow_Spython_Cgen_Unn_Uops_Upy_Uwrappers_Ucc___Utensorflow/libtensorflow_framework.so: undefined reference to `[email protected]'
bazel-out/Host/bin/_solib_local/_U_S_Stensorflow_Spython_Cgen_Unn_Uops_Upy_Uwrappers_Ucc___Utensorflow/libtensorflow_framework.so: undefined reference to `[email protected]'
bazel-out/Host/bin/_solib_local/_U_S_Stensorflow_Spython_Cgen_Unn_Uops_Upy_Uwrappers_Ucc___Utensorflow/libtensorflow_framework.so: undefined reference to `[email protected]'
bazel-out/Host/bin/_solib_local/_U_S_Stensorflow_Spython_Cgen_Unn_Uops_Upy_Uwrappers_Ucc___Utensorflow/libtensorflow_framework.so: undefined reference to `[email protected]'
bazel-out/Host/bin/_solib_local/_U_S_Stensorflow_Spython_Cgen_Unn_Uops_Upy_Uwrappers_Ucc___Utensorflow/libtensorflow_framework.so: undefined reference to `[email protected]'
bazel-out/Host/bin/_solib_local/_U_S_Stensorflow_Spython_Cgen_Unn_Uops_Upy_Uwrappers_Ucc___Utensorflow/libtensorflow_framework.so: undefined reference to `[email protected]'
bazel-out/Host/bin/_solib_local/_U_S_Stensorflow_Spython_Cgen_Unn_Uops_Upy_Uwrappers_Ucc___Utensorflow/libtensorflow_framework.so: undefined reference to `[email protected]'
bazel-out/Host/bin/_solib_local/_U_S_Stensorflow_Spython_Cgen_Unn_Uops_Upy_Uwrappers_Ucc___Utensorflow/libtensorflow_framework.so: undefined reference to `[email protected]'
bazel-out/Host/bin/_solib_local/_U_S_Stensorflow_Spython_Cgen_Unn_Uops_Upy_Uwrappers_Ucc___Utensorflow/libtensorflow_framework.so: undefined reference to `[email protected]'
bazel-out/Host/bin/_solib_local/_U_S_Stensorflow_Spython_Cgen_Unn_Uops_Upy_Uwrappers_Ucc___Utensorflow/libtensorflow_framework.so: undefined reference to `[email protected]'
bazel-out/Host/bin/_solib_local/_U_S_Stensorflow_Spython_Cgen_Unn_Uops_Upy_Uwrappers_Ucc___Utensorflow/libtensorflow_framework.so: undefined reference to `[email protected]'
bazel-out/Host/bin/_solib_local/_U_S_Stensorflow_Spython_Cgen_Unn_Uops_Upy_Uwrappers_Ucc___Utensorflow/libtensorflow_framework.so: undefined reference to `[email protected]'
bazel-out/Host/bin/_solib_local/_U_S_Stensorflow_Spython_Cgen_Unn_Uops_Upy_Uwrappers_Ucc___Utensorflow/libtensorflow_framework.so: undefined reference to `[email protected]'
4
antoajayraj

Il semble y avoir un bug dans notre construction. J'ai pu reproduire le même sur ma machine. Il semble que la valeur de LD_LIBRARY_PATH ne soit pas toujours correctement propagée lors de la construction de bazel. Dans mon cas, j'ai réussi à construire lorsque j'ai utilisé cette commande:

bazel build  --config=opt --config=cuda tensorflow/tools/pip_package:build_pip_package --action_env="LD_LIBRARY_PATH=${LD_LIBRARY_PATH}"
22
gunan

J'ai rencontré la même erreur hier en essayant de créer tensorflow à partir de la source par rapport à un cuda 9.0 apparemment valide. Dans mon cas, aucune combinaison de git clean et action_env n'aidifié - ld via bazel ne refuserait systématiquement de reconnaître les bibliothèques cuda.

J'ai fini par suivre les instructions de ce fil de discussion : En tant que root, créez un fichier /etc/ld.so.conf.d/cuda.conf avec la ligne

/usr/local/cuda/lib64

(En supposant que votre /usr/local/cuda/ soit lié à votre répertoire cuda concret, par exemple, /usr/local/cuda-9.0/.)

Ensuite, lancez Sudo ldconfig. Avec cela, la construction se poursuit, et tensorflow utilise mon GPU.

2
Hans

Pour tenter de rendre ce problème plus facile à rechercher: Le message d'erreur que j'ai reçu est également inclus en haut:

libcublas.so.9.0, needed by bazel-out/[...]/libtensorflow_framework.so, not found (try using -rpath or -rpath-link)

et ainsi de suite pour libcudnn etc.

Lorsque j'ai rencontré ce problème, j'ai d'abord ajouté /usr/local/cuda/lib64 et /usr/local/cuda/extras/CUPTI/lib64 à mon LD_LIBRARY_PATH et essayé de reconstruire (sans --action_env). N'a pas fonctionné.

J'ai ensuite fait une reconfiguration et une construction propres, là encore sans --action_env, et cela a fonctionné. J'ai nettoyé mon référentiel à l'aide de git clean -xdf, qui, attention, supprimera tous les fichiers de votre référentiel inconnus de git. :)

Peut-être que --action_env aurait évité le besoin de faire une reconstruction propre, je ne sais pas. Mais si les bibliothèques se trouvaient dans votre LD_LIBRARY_PATH avant la toute première construction, je suppose que vous n’auriez pas besoin de --action_env.

0
Justin L.