cuda和tensorflow-gpu对应版本的安装及测试

版本

CUDA、cuDNN 和 tensorflow-gpu 版本的推荐配置:configure page

在这里插入图片描述


在这里插入图片描述


查看自己的 CUDA 和 cudnn 的版本:

1)直接用 nvcc --version 查看:

在这里插入图片描述


2)CUDA 一般安装在 /usr/local/cuda/ 路径下,该路径下有一个version.txt文档,里面记录了 CUDA 的版本信息,执行语句:

cat /usr/local/cuda/version.txt 

3)cuDNN 的信息在其头文件里,执行语句:

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

在这里插入图片描述


这里可以到看到 CUDA 版本是 9.0,cuDNN 版本是 7.0.5,官方推荐的 tensorflow 对应版本是:1.5 / 1.6 / 1.7 / 1.8 / 1.9 / 1.10 / 1.11 / 1.12

如果报错版本不对的话,可以按照下面的解决方法:

pip uninstall tensorflow-gup==1.0.1
pip install tensorflow-gpu==1.5.0

测试

安装好以后,可以进行如下测试,如果没有报错就没问题:

import tensorflow as tf
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))

查看日志信息若包含gpu信息,就是使用了gpu。

import tensorflow as tf
tf.test.is_gpu_available()

>>>
True

其他方法:跑计算量大的代码,通过 nvidia-smi 命令查看gpu的内存使用量。

多版本CUDA的切换

如果安装了多个版本的 CUDA,可以在 /usr/local/ 目录下看到自己安装了哪些版本:

在这里插入图片描述


cuda 是一个软链接,它指向我们指定的 cuda 版本(在设置环境变量时,也使用的是 cuda,而不是 cuda-具体版本,这主要是为了方便我们切换 cuda 版本,可以让我们不用每次都去该环境变量的值)

进入 local 文件夹下,使用 stat 命令查看当前 cuda 软链接指向的哪个 cuda 版本:

在这里插入图片描述


可以看到,cuda 软链接的文件类型是symbolic link,指向的目录是 /usr/local/cuda-9.0,当我们想使用 cuda-8.0 版本时,只需要删除该软链接,然后重新建立指向 cuda-8.0 版本的软链接即可(注意名称还是cuda,因为要与 bashrc 文件里设置的保持一致)

sudo rm -rf cuda
sudo ln -s /usr/local/cuda-8.0 /usr/local/cuda

需要修改的只是上面的版本号而已。

CUDA驱动程序版本跟CUDA的运行时版本不匹配

如果报错:

InternalError: cudaGetDevice() failed. Status: CUDA driver version is insufficient for CUDA runtime version

说明 CUDA 驱动程序版本跟 CUDA 的运行时版本不匹配。

(1)查看 CUDA driver version(驱动版本):就是NVIDIA GPU的驱动程序版本

查看命令:nvidia-smi

看以看到 Driver Version:384.111

在这里插入图片描述


(2)查看 CUDA runtime version(运行时版本):在 python 中安装的 cudatoolkit 和cudnn 程序包的版本

查看命令:pip list / conda list

在这里插入图片描述


可以看到 python 安装的 cudatoolkit 和 cudnn 程序包版本是:9.2

(3)nvidia 驱动和 cuda runtime 版本对应关系

运行时版本 驱动版本
CUDA 9.1 387.xx
CUDA 9.0 384.xx
CUDA 8.0 375.xx (GA2)
CUDA 8.0 367.4x
CUDA 7.5 352.xx
CUDA 7.0 346.xx
CUDA 6.5 340.xx
CUDA 6.0 331.xx
CUDA 5.5 319.xx
CUDA 5.0 304.xx
CUDA 4.2 295.41
CUDA 4.1 285.05.33
CUDA 4.0 270.41.19
CUDA 3.2 260.19.26
CUDA 3.1 256.40
CUDA 3.0 195.36.15

(4)解决

从驱动和运行时的版本对应关系来看,版本为 384.111 的驱动程序对应的运行时版本是9.0,也就是说目前在 python 中安装的 cudatoolkit 和 cudnn 程序包版本 9.2 是过高了。

先卸载 python 中安装的 cudatoolkit 和 cudnn 程序包:

pip/conda uninstall cudnn
pip/conda uninstall cudatoolkit

然后安装对应版本的 cudatoolkit 和 cudnn 程序包:

pip install cudatoolkit=9.0
pip install cudnn

(5)出现问题的原因
一般出现这种情况是因为在 python 中安装 tensorflow 的 gpu 版本时,pip 会检查 tensorflow 依赖的其他的包,如果依赖的包没有安装,则会先安装最新版本的依赖包,最终导致 gpu 驱动版本和 cuda 运行时版本不匹配。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐