为 tensorflow 升级 CUDA 和 cuDNN 的最佳实践

Best practice for upgrading CUDA and cuDNN for tensorflow

我目前负责让 tensorflow-gpu 1.8 在我的机器上运行。直到现在我一直在使用 tf-gpu 1.2,但是由于一些必需的功能,我必须升级我的安装。

在这样做之前,我想检查一下是否有执行此操作的最佳实践。我当前的设置如下所示:

如 tf-homepage 上所写,我必须使用 CUDA v9.0 和 cuDNN v7.1。由于所有这些说明都指的是全新安装而不是更新,我不确定是否最好先卸载旧版本。

如果您遇到过同样的问题,请分享您的经验。谢谢!

参见 this documentation。他们说总是先从 cuda 中删除旧版本。

并且因为 cuda 9.1 需要驱动程序 >= 390 版本(检查 compatibility chart)。最好删除当前的驱动程序。 但不用担心,因为 390 驱动程序在安装时附带了 cuda 9.1。

现在,作为个人建议,我想删除与 nvidia / cuda 相关的几乎所有内容(不包括 python)。由于某些原因,在 Ubuntu.

中安装和设置 CUDA 时很容易搞砸

如果安装后有任何问题,请参阅,这是我之前回答过的post。

感谢@joão gabriel s.f。我能够成功卸载 CUDA 8.0/cuDNN 5.1 并安装最新版本的 tensorflow。由于整个过程对我来说有点混乱,我决定 post 快速浏览一下,也许可以帮助处于相同情况的人。

卸载

首先,我卸载了 cuda 及其所有依赖项。当我通过包管理器安装它时,我使用 apt-get 将其删除。对于 运行 文件安装,您可以检查 this

sudo apt-get --purge remove cuda
sudo apt-get autoremove
dpkg --list |grep "^rc" | cut -d " " -f 3 | xargs sudo dpkg --purge

此外,我检查了 /usr/local/ 中的所有 cuda 文件夹并将其删除。关于cuDNN,通过删除所有cuda文件夹,相应的cuda headers和libs已经删除。

安装

先检查显卡驱动。 CUDA 9.0 使用 v384.111 驱动程序(因此不需要 390.xxx),所以我在这里无事可做。

我下载了 CUDA Toolkit 9.0 here 作为 deb(本地)。在同一个文件夹中,我执行了

dpkg -i cuda-repo-ubuntu1604-9-0-local_9.0.176-1_amd64.deb
sudo apt-key add /var/cuda-repo-9-0-local/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda

然后设置环境变量:

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

之后我按照 here.

的描述验证了我的安装

我从压缩包中下载了 cuDNN 7.1 并通过

安装
tar -xzvf cudnn-9.0-linux-x64-v7.1.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h \ 
/usr/local/cuda/lib64/libcudnn*

启动 Python bash 后,我能够导入 tensorflow 和 运行 一个简单的图形。

再次感谢,祝您度过愉快的一周!