升级 CUDA 到 9.0、Tensorflow 到1.6

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/leayc/article/details/79687219

Update
注意,官方编译的 TF1.6 尚不支持 cuDNN 7.1.x,下载时请选择 cuDNN 7.0.x。


Tensorflow 最新的 1.6 版本需要 CUDA9.0,原来装的是 8.0 。这就需要卸载一个、安装一个。
虽然 Linux 内核的系统下删除软件给人的印象好像直接删目录就可以,但 CUDA 牵扯太多系统层面的东西,所以官方如果有正式解决方案那肯定优先使用。

官方的方案在这里:
http://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#handle-uninstallation

这里是说处理安装冲突的方法,其实一回事。
卸载 CUDA 使用:

$ sudo /usr/local/cuda-X.Y/bin/uninstall_cuda_X.Y.pl

我要删除的是 8.0 所以 X = 8, Y = 0,这样旧版 CUDA 就解决掉了。最好驱动也一并卸掉,因为新版 CUDA 通常需要装一个新驱动。

$ sudo /usr/bin/nvidia-uninstall

如果提示没找到文件,那就应该

$ sudo yum remove <package_name> # Redhat/CentOS 
$ sudo dnf remove <package_name> # Fedora 
$ sudo zypper remove <package_name> # OpenSUSE/SLES 
$ sudo apt-get --purge remove <package_name> # Ubuntu

下载 CUDA Toolkit 现在需要注册一个 NVIDIA 官方账号。注册完成后在 https://developer.nvidia.com/cuda-release-candidate-download 按照系统、版本选择要下载的包。cuDNN 的安装类似,地址在 https://developer.nvidia.com/rdp/cudnn-download 。不过官方文档表示 cuDNN 的升级不会冲突,直接安装就好。
注意如果要下载 for Ubuntu 版本,需要先安装 runtime 再安装 dev,也就是得下载两个 .deb 。
下载完成后,.deb 的安装也很简单。

sudo dpkg -i cuda-repo-ubuntu1704-9-0-local-rc_9.0.103-1_amd64.deb
sudo apt-key add /var/cuda-repo-9-0-local-rc/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda

该过程也不必须联网。
在装新 CUDA 的时候系统会安装新版驱动。安装完后运行 nvidia-smi 试一下,如果提示 mismatch 就重启。
可以自行编译测试 /usr/local/cuda-X.Y/samples/ 下的例子测试是否安装成功。
最后一步是配置环境变量,官方文档见 http://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#post-installation-actions
添加环境变量

$ export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
$ export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64\
                         ${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

cnDNN 同样直接安装 .deb 文件,不放心的话在下载的时候可以顺便下载一个文档/样例包安装,按照

$cp -r /usr/src/cudnn_samples_v7/ $HOME
$ cd  $HOME/cudnn_samples_v7/mnistCUDNN
$make clean && make
$ ./mnistCUDNN

显示 Test passed! 说明安装没有问题。

Tensorflow 1.6 使用 pip 安装即可。官方页面还有个安装 libcupti-dev library 的说明,说这玩意儿提供了高级分析支持,需要 CUDA 8.0 和更新版本。安装命令是

$ sudo apt-get install cuda-command-line-tools

但我这里会报错。上网查了一下对 CUDA 9.0 和更新版本应该使用新名字 cuda-command-line-tools-9-0(对应9.0版)。运行之后没有报错,但提示已经安装过了。可能是 CUDA 9.0 自带的。

1
1

1

猜你喜欢

转载自blog.csdn.net/leayc/article/details/79687219