欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

升级 CUDA 到 9.0、Tensorflow 到1.6

程序员文章站 2022-05-29 08:19:41
...

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