如何在Ubuntu 16.04上安装CuDNN?

对于TensorFlow,我想安装cuda和CuDNN。 我如何在Ubuntu 16.04上做到这一点?

步骤0:从标准存储库安装cuda。 (请参阅如何在Ubuntu 16.04上安装CUDA? )

第1步:注册一个nvidia开发者帐户并在这里下载cudnn (约80 MB)

第2步:检查您的cuda安装位置。 对于从存储库的安装,它是/usr/lib/.../usr/include 。 否则,它将是/usr/local/cuda//usr/local/cuda- 。 您可以使用which nvccldconfig -p | grep cuda来检查它 ldconfig -p | grep cuda

第3步:复制文件:

存储库安装:

 $ cd folder/extracted/contents $ sudo cp -P include/cudnn.h /usr/include $ sudo cp -P lib64/libcudnn* /usr/lib/x86_64-linux-gnu/ $ sudo chmod a+r /usr/lib/x86_64-linux-gnu/libcudnn* 

Runfile安装:

 $ cd folder/extracted/contents $ sudo cp include/cudnn.h /usr/local/cuda/include $ sudo cp lib64/libcudnn* /usr/local/cuda/lib64 $ sudo chmod a+r /usr/local/cuda/lib64/libcudnn* 

从5.1开始,您无法根据@Martin提到的内容进行安装。 从nvidia网站下载libcudnn6_6.0.21-1+cuda8.0_amd64.deb, libcudnn6-dev_6.0.21-1+cuda8.0_amd64.deb, libcudnn6-doc_6.0.21-1+cuda8.0_amd64.deb并逐个安装。

  sudo dpkg -i .deb 
  1. 在NVidia的网站上注册。 它们可能需要一天或两天才能获得您的帐户批准。 至少在我注册时曾经是这种情况。
  2. 从NVidia下载并安装最新的CUDA ,或者适合您将使用的软件的最新版本(如果有的话),在这种情况下是您的T-Flow版本。

    请注意,通过点击可能无法通过ubuntu的标准软件包管理器进行安装。

    相反,您可能必须在终端中按照这些说明安装.deb pakage。 之后,你必须在.bashrc 添加几行 ,或者在你的情况下适当的地方。 例如,如果您正在配置服务器,它可能会在您的应用程序自动启动之前的某个位置,因为.bashrc在这种情况下可能无法执行。

  3. 从NVidia下载CuDNN

    我使用的是“Library for Linux”版本,与.deb包没有太大的关系。

  4. 你可以通过which nvcc找到CUDA所在的位置。 通常/usr/local/cuda/将是您当前安装的版本的符号链接。

  5. 打开CuDNN存档并将适当的内容复制到CUDA安装文件夹( cuda/lib64/cuda/include/ )中的适当位置。 我通常sudo nautilus并从视觉上做到这一点。

快进2018年,NVIDIA现在提供cuDNN 7.x供下载。 安装步骤仍与@GPrathap描述的步骤类似。 但是,如果要将旧的cuDNN版本替换为较新的版本,则需要在安装之前先将其删除。

回顾一下:

步骤0.确认您已安装CUDA工具包。 如果没有,请继续安装CUDA工具包。

步骤1.访问NVIDIA开发人员门户网站https://developer.nvidia.com/cudnn并下载cuDNN。

步骤2.如果您以前安装了cuDNN,请将其删除

 sudo dpkg -r .deb sudo dpkg -r .deb 

步骤3.使用dpkg安装cuDNN库(runtime,dev,doc)

 sudo dpkg -i .deb sudo dpkg -i .deb sudo ldconfig 

步骤4.如果要查找库的安装位置,可以更新locate索引,然后找到库位置。

 sudo updatedb locate libcudnn 

如果您是专门针对CUDA工具包9.1安装cuDNN 7.x,那么本文提供了更多详细信息,可以提供一些帮助: http : //tech.amikelive.com/node-679/quick-tip-installing-cuda-deep-神经网络-7- cudnn-7-X-库换CUDA的工具包-9-1-上的ubuntu-16-04 /

此外,您可以下载基于Debian的发行版的deb软件包。

在NVIDIA网页上,下一个文件可供开发人员资料使用:

  • cuDNN v5.1 Linux运行时库(Deb)
  • 用于Linux的cuDNN v5.1开发人员库(Deb)
  • cuDNN v5.1代码示例和用户指南Linux(Deb)

我通过Debian(Stretch)和TensorFlow在我的机器上测试了这个!

通过@Martin Thoma和@ÍhorMé为仍然有效的答案添加重要细节:将libcudnn文件复制到cuda目录后,必须更新.bashrc文件:

 export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64" export CUDA_HOME=/usr/local/cuda 

然后,您必须将include目录添加到使用它的任何配置文件中。 Caffe例如有一个配置文件,你必须在编译make之前编辑它。 为此,编辑caffe / Makefile.config以添加这些配置变量的路径(在路径之间添加空格):

 INCLUDE_DIRS: /usr/local/caffe/cuda/include/ LIBRARY_DIRS: /usr/local/cuda/lib64/ 

对于每个当前终端窗口,您希望这些更改生效,请不要忘记执行一次文件!

 . ~/.bashrc 

答案是正确的,但对于cuDNN 5.1,一些名称已被更改。 因此,如果在解压缩cuDNN文件后使用此版本,则会找到两个文件夹:lib和include。 将include文件夹中* .h文件的名称更改为cudnn.h,然后按照https://askubuntu.com/a/767270/641589进行操作 。 如果您想使用cuDNN for Caffe,则需要进行此更改!

在16.04,如果您直接从Nvidia的网站安装CUDA,并且您还要从源代码构建Tensorflow,那么您可以指定要指示为Cudnn的目录。 默认情况下它是:

 /usr/include/x86_64-linux-gnu 

当您构建Tensorflow时,它会询问您要指示您使用哪个版本的Cudnn。 之后,它将询问它位于何处。 只需指出上面的目录,它就可以正常工作。 它应该在那时创建一个wheel文件,你可以用pip安装它。