【发布时间】:2020-02-05 18:55:34
【问题描述】:
我有 Ubuntu 18.04。 Python 3.7.3、张量流 2.0.0
这是我的 cuda 版本:
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Nov__3_21:07:56_CDT_2017
Cuda compilation tools, release 9.1, V9.1.85
我的电脑是UX430UQ,显卡是GeForce 940MX
这是 nvidia-smi 的输出:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 418.87.01 Driver Version: 418.87.01 CUDA Version: 10.1 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce 940MX On | 00000000:01:00.0 Off | N/A |
| N/A 45C P0 N/A / N/A | 283MiB / 2004MiB | 9% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 1014 G /usr/lib/xorg/Xorg 24MiB |
| 0 1164 G /usr/bin/gnome-shell 47MiB |
| 0 1440 G /usr/lib/xorg/Xorg 123MiB |
| 0 1615 G /usr/bin/gnome-shell 84MiB |
+-----------------------------------------------------------------------------+
这是我run sudo apt-get install cuda时的输出:
Reading package lists...
Building dependency tree...
Reading state information...
cuda is already the newest version (10.1.243-1).
0 upgraded, 0 newly installed, 0 to remove and 138 not upgraded.
这是我运行tf.test.is_gpu_available()时的输出
2019-10-08 21:04:37.186069: 我 tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:1006] 成功 从 SysFS 读取的 NUMA 节点具有负值 (-1),但必须有 至少有一个 NUMA 节点,所以返回 NUMA 节点零
2019-10-08 21:04:37.188434: 我 tensorflow/core/common_runtime/gpu/gpu_device.cc:1618] 找到设备 0 具有属性:
名称:GeForce 940MX 主要:5 次要:0 memoryClockRate(GHz):1.2415
pciBusID:0000:01:00.0
2019-10-08 21:04:37.188863: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] 可以 不加载动态库'libcudart.so.10.0';错误: libcudart.so.10.0:无法打开共享对象文件:没有这样的文件或 目录; LD_LIBRARY_PATH: /usr/local/cuda-8.0/lib64
2019-10-08 21:04:37.189156: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] 可以 不加载动态库'libcublas.so.10.0';错误: libcublas.so.10.0:无法打开共享对象文件:没有这样的文件或 目录; LD_LIBRARY_PATH: /usr/local/cuda-8.0/lib64
2019-10-08 21:04:37.189426: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] 可以 不加载动态库'libcufft.so.10.0';错误: libcufft.so.10.0:无法打开共享对象文件:没有这样的文件或 目录; LD_LIBRARY_PATH: /usr/local/cuda-8.0/lib64
2019-10-08 21:04:37.189687: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] 可以 不加载动态库'libcurand.so.10.0';错误: libcurand.so.10.0:无法打开共享对象文件:没有这样的文件或 目录; LD_LIBRARY_PATH: /usr/local/cuda-8.0/lib64
2019-10-08 21:04:37.189946: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] 可以 不加载动态库'libcusolver.so.10.0';错误: libcusolver.so.10.0:无法打开共享对象文件:没有这样的文件或 目录; LD_LIBRARY_PATH: /usr/local/cuda-8.0/lib64
2019-10-08 21:04:37.190202: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] 可以 不加载动态库'libcusparse.so.10.0';错误: libcusparse.so.10.0:无法打开共享对象文件:没有这样的文件或 目录; LD_LIBRARY_PATH: /usr/local/cuda-8.0/lib64
2019-10-08 21:04:37.190236: 我 tensorflow/stream_executor/platform/default/dso_loader.cc:44] 成功打开动态库libcudnn.so.7
2019-10-08 21:04:37.190244: W tensorflow/core/common_runtime/gpu/gpu_device.cc:1641] 无法 dlopen 一些 GPU 库。请确保提到的缺失库 如果您想使用 GPU,以上已正确安装。跟着 在https://www.tensorflow.org/install/gpu 指导如何下载 并为您的平台设置所需的库。
跳过注册 GPU 设备...
2019-10-08 21:04:37.190261: 我 tensorflow/core/common_runtime/gpu/gpu_device.cc:1159] 设备 将 StreamExecutor 与强度为 1 的边矩阵互连:
2019-10-08 21:04:37.190268: 我 张量流/核心/common_runtime/gpu/gpu_device.cc:1165] 0
2019-10-08 21:04:37.190276: 我 张量流/核心/common_runtime/gpu/gpu_device.cc:1178] 0:N
【问题讨论】:
-
让我们看看:1 您安装的 TF 需要 CUDA 10.0:
Could not load dynamic library 'libcudart.so.10.0',2.您安装的 CUDA 版本似乎是 9.1:Cuda compilation tools, release 9.1, V9.1.85,以及 3.您的LD_LIBRARY_PATH指向 CUDA 8.0 :LD_LIBRARY_PATH: /usr/local/cuda-8.0/lib64如果您仔细安装 CUDA,可能会解决大部分问题。 CUDA 10.0 linux 安装指南是here。您应该从正确安装 CUDA 10.0 开始。 -
嗨,nvidia-smi 显示我已经安装了 Cuda 10.1,但不知何故 nvcc - 版本是 9.1.85。我只是将 nvidia-smi 的输出包含为编辑
-
nvidia-smi 不会按照您认为的方式告诉您已安装的 CUDA 版本,请参阅here。无论如何,如果您确实正确安装了 CUDA 10.1,那么您只需要正确设置
PATH和LD_LIBRARY_PATH变量即可使用它,这在我已经链接的 CUDA linux 安装指南中有所介绍(步骤 7)。但是,您的 TF 需要 CUDA 10.0,并且您不能使用 CUDA 10.1 作为 TF 的 CUDA 10.0 的替代品/替代品。 -
我只做了两个步骤:1)
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}和 2)export PATH=/usr/local/cuda-10.0/bin${PATH:+:${PATH}}。echo $LD_LIBRARY_PATH的输出是/usr/local/cuda-10.1/lib64,但 tf.test.is_gpu_available() 仍然是LD_LIBRARY_PATH: /usr/local/cuda-8.0/lib64。此外,当我运行sudo apt-get install cuda时,它会显示cuda is already the newest version (10.1.243-1).。 (我刚刚将其编辑到问题中)。对于 TF 的 CUDA 10.1 和 CUDA 10.0,我应该怎么做? -
运行
export PATH=/usr/local/cuda-10.1/bin:/usr/local/cuda-10.1/NsightCompute-2019.1${PATH:+:${PATH}}后,nvcc --version现在显示Cuda compilation tools, release 10.1, V10.1.243。但是,即使 echo $LD_LIBRARY_PATH 的输出为/usr/local/cuda-10.0/lib64,运行tf.test.is_gpu_available()仍会显示LD_LIBRARY_PATH: /usr/local/cuda-8.0/lib64
标签: python tensorflow2.0