【发布时间】:2019-10-17 23:08:38
【问题描述】:
我已经安装了 tensorflow-gpu 1.14,但是我通过预构建的轮子安装了它,所以我不知道它最初构建的 CUDA/CuDNN 版本是什么。如何找出来?
我问这个问题的原因是,就我而言,我想先安装一个特定的 Tensorflow 轮子,然后再安装所需的 CUDA/CuDNN 版本以支持我的 Tensorflow。如果运行时 CUDA/CuDNN 库与 Tensorflow 构建的原始 CuDA/CuDNN 库不匹配,则可能会出现错误“Could not find 'cudart64_80.dll'”或“cudnn 库不匹配,内置于 7.1.5 ,运行时间为 7.0.5"。
特别是在我的情况下,我的错误消息是“tensorflow/stream_executor/platform/default/dso_loader.cc:53] 无法 dlopen 库 'libcudnn.so.7'; dlerror: libcudnn.so.7: 无法打开共享目标文件:没有这样的文件或目录;LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda-9.0/lib64:"
这个错误很奇怪,因为 libcudnn.so.7 已实际安装并正确链接,请参阅
$ sudo ldconfig -p | grep libcudnn.so.7
libcudnn.so.7 (libc6,AArch64) => /usr/local/cuda/lib64/libcudnn.so.7
libcudnn.so.7 (libc6,AArch64) => /usr/lib/aarch64-linux-gnu/libcudnn.so.7
$ ls -alh /usr/local/cuda/lib64/libcudnn.so.7
lrwxrwxrwx 1 root root 44 Oct 17 19:17 /usr/local/cuda/lib64/libcudnn.so.7 -> /usr/lib/aarch64-linux-gnu/libcudnn.so.7.1.4
$ ls -alh /usr/lib/aarch64-linux-gnu/libcudnn.so.7
lrwxrwxrwx 1 root root 44 Oct 17 17:48 /usr/lib/aarch64-linux-gnu/libcudnn.so.7 -> /usr/lib/aarch64-linux-gnu/libcudnn.so.7.1.4
我的调试过程, (1)我试图通过
在我的系统中定位tensorflow包$ python -c "import tensorflow as tf; print(tf.__file__)"
***/lib/python3.5/site-packages/tensorflow/__init__.py
(2) 然后我 cd 到那个目录并试图找出硬编码的构建信息
$ cat python/platform/build_info.py
is_cuda_build = True
cuda_version_number = '9.0'
cudnn_version_number = '7.1'
但是,如果这是真的,我仍然无法理解为什么会发生错误。
注意事项:
1. 引用原始Tensorflow-to-CUDA/CuDNN绑定不起作用,因为我的tensorflow是通过预建的轮子安装的。
2. 检查运行时 CUDA/CuDNN 并不能回答问题,我是在构建阶段询问库。
3. 基于runtime CUDA/CuDNN重新安装Tensorflow不是首选方案。
【问题讨论】:
-
顺便说一句:如果你需要manually install cuDNN
标签: tensorflow arm64