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

为tensorflow升级CUDA和cuDNN的最佳实践,tensorflow,cuda,upgrade,cudnn,Tensorflow,Cuda,Upgrade,Cudnn,我目前负责让tensorflow gpu 1.8在我的机器上工作。到目前为止,我一直在使用TFGPU1.2,但由于一些必需的功能,我必须升级我的安装 在这样做之前,我想检查一下是否有这样做的最佳实践。我当前的设置如下所示: Ubuntu 16.04 英伟达GeForce GTX 1080 Ti NVIDIA驱动程序版本:384.111 用于Python 3的Anaconda 4.4.0 CUDA v8.0 cudnnv5.1 tensorflow gpu v1.2 正如tf主页上所写,我必须

我目前负责让tensorflow gpu 1.8在我的机器上工作。到目前为止,我一直在使用TFGPU1.2,但由于一些必需的功能,我必须升级我的安装

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

  • Ubuntu 16.04
  • 英伟达GeForce GTX 1080 Ti
  • NVIDIA驱动程序版本:384.111
  • 用于Python 3的Anaconda 4.4.0
  • CUDA v8.0
  • cudnnv5.1
  • tensorflow gpu v1.2
正如tf主页上所写,我必须使用CUDA v9.0以及cuDNN v7.1。由于所有这些说明都是指干净的安装,而不是更新,我不确定是否最好先卸载旧版本

如果你已经有同样的问题,请分享你的经验。谢谢大家!

见。他们说总是先从cuda删除旧版本

由于cuda 9.1需要大于等于390版本的驱动程序(请检查)。最好删除当前的驱动程序。 但不用担心,因为390驱动程序在安装时附带CUDA9.1

现在,作为个人建议,我想说的是删除几乎所有与nvidia/cuda相关的内容(不包括python)。由于某些原因,在Ubuntu中安装和设置CUDA时很容易搞糟


如果您在安装后遇到任何问题,请参阅,这是我刚才回答的帖子。

谢谢@joão gabriel s.f。我成功地卸载了CUDA 8.0/cuDNN 5.1并安装了最新版本的tensorflow。由于整个过程让我有点困惑,我决定发布一个快速演练,也许可以帮助处于相同情况的人

卸载

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

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

安装

首先检查图形卡的驱动程序。CUDA9.0使用v384.111驱动程序(因此不需要390.xxx),所以我在这里无事可做

我下载了CUDA Toolkit 9.0作为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
之后,我按照描述验证了我的安装

我以tarball的形式从档案中下载了cudnn7.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并运行一个简单的图形


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

谢谢,我听从了你的建议,一切都很顺利。但是:对于CUDA9.0,您不必将驱动程序升级到390.xxx,它可以与384.xxx一起使用。我在回答中提到了这一点。对不起,我指的是cuda 9.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*